diff -r 8bde4b6584eb -r 54d72b4da009 src/cm/models.py --- a/src/cm/models.py Tue Jun 25 16:27:14 2013 +0200 +++ b/src/cm/models.py Tue Jun 25 17:58:49 2013 +0200 @@ -26,75 +26,6 @@ from django.db import connection from datetime import datetime -# default conf values -DEFAULT_CONF = { - 'workspace_name' : 'Workspace', - 'site_url' : settings.SITE_URL, - 'email_from' : settings.DEFAULT_FROM_EMAIL, - } - -from cm.role_models import change_role_model - -class ConfigurationManager(models.Manager): - def set_workspace_name(self, workspace_name): - if workspace_name: - self.set_key('workspace_name', workspace_name) - - def get_key(self, key, default_value=None): - try: - return self.get(key=key).value - except Configuration.DoesNotExist: - return DEFAULT_CONF.get(key, default_value) - - def del_key(self, key): - try: - self.get(key=key).delete() - except Configuration.DoesNotExist: - return None - - def set_key(self, key, value): - conf, created = self.get_or_create(key=key) - if created or conf.value != value: - conf.value = value - conf.save() - if key == 'workspace_role_model': - change_role_model(value) - - def __getitem__(self, key): - if not key.startswith('f_'): - return self.get_key(key, None) - else: - return getattr(self,key)() - - def f_get_logo_url(self): - key = self.get_key('workspace_logo_file_key', None) - if key: - attach = Attachment.objects.get(key=key) - return attach.data.url - else: - return None - -import base64 - -class Configuration(models.Model): - key = models.TextField(blank=False) # , unique=True cannot be added: creates error on mysql (?) - raw_value = models.TextField(blank=False) - - def get_value(self): - return pickle.loads(base64.b64decode(self.raw_value.encode('utf8'))) - - def set_value(self, value): - self.raw_value = base64.b64encode(pickle.dumps(value, 0)).encode('utf8') - - value = property(get_value, set_value) - - objects = ConfigurationManager() - - def __unicode__(self): - return '%s: %s' % (self.key, self.value) - -ApplicationConfiguration = Configuration.objects - class TextManager(Manager): def create_text(self, title, format, content, note, name, email, tags, user=None, state='approved', **kwargs): content = on_content_receive(content, format) @@ -419,6 +350,75 @@ # http://docs.djangoproject.com/en/dev/topics/files/#topics-files +# default conf values +DEFAULT_CONF = { + 'workspace_name' : 'Workspace', + 'site_url' : settings.SITE_URL, + 'email_from' : settings.DEFAULT_FROM_EMAIL, + } + +from cm.role_models import change_role_model + +class ConfigurationManager(models.Manager): + def set_workspace_name(self, workspace_name): + if workspace_name: + self.set_key('workspace_name', workspace_name) + + def get_key(self, key, default_value=None): + try: + return self.get(key=key).value + except Configuration.DoesNotExist: + return DEFAULT_CONF.get(key, default_value) + + def del_key(self, key): + try: + self.get(key=key).delete() + except Configuration.DoesNotExist: + return None + + def set_key(self, key, value): + conf, created = self.get_or_create(key=key) + if created or conf.value != value: + conf.value = value + conf.save() + if key == 'workspace_role_model': + change_role_model(value) + + def __getitem__(self, key): + if not key.startswith('f_'): + return self.get_key(key, None) + else: + return getattr(self,key)() + + def f_get_logo_url(self): + key = self.get_key('workspace_logo_file_key', None) + if key: + attach = Attachment.objects.get(key=key) + return attach.data.url + else: + return None + +import base64 + +class Configuration(models.Model): + key = models.TextField(blank=False) # , unique=True cannot be added: creates error on mysql (?) + raw_value = models.TextField(blank=False) + + def get_value(self): + return pickle.loads(base64.b64decode(self.raw_value.encode('utf8'))) + + def set_value(self, value): + self.raw_value = base64.b64encode(pickle.dumps(value, 0)).encode('utf8') + + value = property(get_value, set_value) + + objects = ConfigurationManager() + + def __unicode__(self): + return '%s: %s' % (self.key, self.value) + +ApplicationConfiguration = Configuration.objects + class AttachmentManager(KeyManager): def create_attachment(self, text_version, filename, data): attach = self.create(text_version=text_version)