src/cm/models.py
changeset 160 0c01050f9717
parent 156 6d447220fd1e
child 175 4f072edc51a1
equal deleted inserted replaced
159:4ec5ae89a7b0 160:0c01050f9717
   384     def get_key(self, key, default_value=None):
   384     def get_key(self, key, default_value=None):
   385         try:
   385         try:
   386             return self.get(key=key).value
   386             return self.get(key=key).value
   387         except Configuration.DoesNotExist:
   387         except Configuration.DoesNotExist:
   388             return DEFAULT_CONF.get(key, default_value)
   388             return DEFAULT_CONF.get(key, default_value)
       
   389 
       
   390     def del_key(self, key):
       
   391         try:
       
   392             self.get(key=key).delete()
       
   393         except Configuration.DoesNotExist:
       
   394             return None
   389         
   395         
   390     def set_key(self, key, value):
   396     def set_key(self, key, value):
   391         conf, created = self.get_or_create(key=key)
   397         conf, created = self.get_or_create(key=key)
   392         if created or conf.value != value:
   398         if created or conf.value != value:
   393             conf.value = value
   399             conf.value = value
   394             conf.save()
   400             conf.save()
   395             if key == 'workspace_role_model':
   401             if key == 'workspace_role_model':
   396                 change_role_model(value)
   402                 change_role_model(value)
   397 
   403 
   398     def __getitem__(self, key):
   404     def __getitem__(self, key):
   399         return self.get_key(key, None)
   405         if not key.startswith('f_'):
       
   406             return self.get_key(key, None)
       
   407         else:
       
   408             return getattr(self,key)()
       
   409     
       
   410     def f_get_logo_url(self):
       
   411         key = self.get_key('workspace_logo_file_key', None)
       
   412         if key:
       
   413             attach = Attachment.objects.get(key=key)
       
   414             return attach.data.url
       
   415         else:
       
   416             return None 
   400     
   417     
   401 import base64
   418 import base64
   402 
   419 
   403 class Configuration(models.Model):
   420 class Configuration(models.Model):
   404     key = models.TextField(blank=False) # , unique=True cannot be added: creates error on mysql (?)
   421     key = models.TextField(blank=False) # , unique=True cannot be added: creates error on mysql (?)
   426         attach.data.save(filename, ff)
   443         attach.data.save(filename, ff)
   427         return attach
   444         return attach
   428     
   445     
   429 class Attachment(KeyModel):
   446 class Attachment(KeyModel):
   430     data = models.FileField(upload_to="attachments/%Y/%m/%d/", max_length=1000)
   447     data = models.FileField(upload_to="attachments/%Y/%m/%d/", max_length=1000)
   431     text_version = models.ForeignKey(TextVersion)
   448     text_version = models.ForeignKey(TextVersion, null=True)
   432 
   449 
   433     objects = AttachmentManager()
   450     objects = AttachmentManager()
   434     
   451     
   435 class NotificationManager(KeyManager):
   452 class NotificationManager(KeyManager):
   436     def create_notification(self, text, type, active, email_or_user):
   453     def create_notification(self, text, type, active, email_or_user):