mirror of
https://github.com/evennia/evennia.git
synced 2026-03-29 12:07:17 +02:00
32 lines
931 B
Python
32 lines
931 B
Python
|
|
"""
|
||
|
|
Custom manager for ServerConfig objects.
|
||
|
|
"""
|
||
|
|
from django.db import models
|
||
|
|
|
||
|
|
class ServerConfigManager(models.Manager):
|
||
|
|
"""
|
||
|
|
This gives some access methods to search and edit
|
||
|
|
the configvalue database.
|
||
|
|
|
||
|
|
If no match is found, return default.
|
||
|
|
"""
|
||
|
|
def conf(self, key=None, value=None, delete=False, default=None):
|
||
|
|
"""
|
||
|
|
Access and manipulate config values
|
||
|
|
"""
|
||
|
|
if not key:
|
||
|
|
return self.all()
|
||
|
|
elif delete == True:
|
||
|
|
for conf in self.filter(db_key=key):
|
||
|
|
conf.delete()
|
||
|
|
elif value != None:
|
||
|
|
conf = self.filter(db_key=key)
|
||
|
|
if not conf:
|
||
|
|
conf = self.model(db_key=key)
|
||
|
|
conf.value = value # this will pickle
|
||
|
|
else:
|
||
|
|
conf = self.filter(db_key=key)
|
||
|
|
if not conf:
|
||
|
|
return default
|
||
|
|
return conf[0].value
|