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): |