2011-04-12 21:43:57 +00:00
|
|
|
"""
|
|
|
|
|
Custom manager for ServerConfig objects.
|
|
|
|
|
"""
|
|
|
|
|
from django.db import models
|
|
|
|
|
|
2013-11-14 19:31:17 +01:00
|
|
|
|
2011-04-12 21:43:57 +00:00
|
|
|
class ServerConfigManager(models.Manager):
|
|
|
|
|
"""
|
2012-03-30 23:57:04 +02:00
|
|
|
This ServerConfigManager implements methods for searching
|
2012-03-29 19:42:08 +02:00
|
|
|
and manipulating ServerConfigs directly from the database.
|
|
|
|
|
|
2012-03-30 23:57:04 +02:00
|
|
|
These methods will all return database objects
|
2012-03-29 19:42:08 +02:00
|
|
|
(or QuerySets) directly.
|
|
|
|
|
|
2012-03-30 23:57:04 +02:00
|
|
|
ServerConfigs are used to store certain persistent settings for the
|
2012-03-29 19:42:08 +02:00
|
|
|
server at run-time.
|
|
|
|
|
|
|
|
|
|
Evennia-specific:
|
2012-03-30 23:57:04 +02:00
|
|
|
conf
|
2011-04-12 21:43:57 +00:00
|
|
|
|
|
|
|
|
"""
|
|
|
|
|
def conf(self, key=None, value=None, delete=False, default=None):
|
|
|
|
|
"""
|
|
|
|
|
Access and manipulate config values
|
|
|
|
|
"""
|
|
|
|
|
if not key:
|
|
|
|
|
return self.all()
|
2013-11-14 19:31:17 +01:00
|
|
|
elif delete is True:
|
2011-04-12 21:43:57 +00:00
|
|
|
for conf in self.filter(db_key=key):
|
|
|
|
|
conf.delete()
|
2013-11-14 19:31:17 +01:00
|
|
|
elif value is not None:
|
2011-04-12 21:43:57 +00:00
|
|
|
conf = self.filter(db_key=key)
|
2011-04-12 22:22:04 +00:00
|
|
|
if conf:
|
|
|
|
|
conf = conf[0]
|
|
|
|
|
else:
|
2012-03-30 23:57:04 +02:00
|
|
|
conf = self.model(db_key=key)
|
2013-11-14 19:31:17 +01:00
|
|
|
conf.value = value # this will pickle
|
2011-04-12 21:43:57 +00:00
|
|
|
else:
|
|
|
|
|
conf = self.filter(db_key=key)
|
|
|
|
|
if not conf:
|
|
|
|
|
return default
|
|
|
|
|
return conf[0].value
|
2013-05-14 19:15:58 +02:00
|
|
|
|
|
|
|
|
def get_mysql_db_version(self):
|
|
|
|
|
"""
|
2013-11-14 19:31:17 +01:00
|
|
|
This is a helper method for getting the version string
|
|
|
|
|
of a mysql database.
|
2013-05-14 19:15:58 +02:00
|
|
|
"""
|
|
|
|
|
from django.db import connection
|
|
|
|
|
conn = connection.cursor()
|
|
|
|
|
conn.execute("SELECT VERSION()")
|
|
|
|
|
version = conn.fetchone()
|
|
|
|
|
return version and str(version[0]) or ""
|