models.py 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. from importlib import import_module
  2. from django.db import models
  3. from django.utils import timezone
  4. from django.utils.translation import ugettext_lazy as _
  5. class Bookmark(models.Model):
  6. url = models.URLField(verbose_name=_('URL'))
  7. title = models.CharField(verbose_name=_('title'), max_length=255)
  8. user = models.PositiveIntegerField(verbose_name=_('user'))
  9. date_add = models.DateTimeField(verbose_name=_('date created'), default=timezone.now)
  10. class Meta:
  11. verbose_name = _('bookmark')
  12. verbose_name_plural = _('bookmarks')
  13. ordering = ('date_add',)
  14. def __unicode__(self):
  15. return self.title
  16. class PinnedApplication(models.Model):
  17. app_label = models.CharField(verbose_name=_('application name'), max_length=255)
  18. user = models.PositiveIntegerField(verbose_name=_('user'))
  19. date_add = models.DateTimeField(verbose_name=_('date created'), default=timezone.now)
  20. class Meta:
  21. verbose_name = _('pinned application')
  22. verbose_name_plural = _('pinned applications')
  23. ordering = ('date_add',)
  24. def __unicode__(self):
  25. return self.app_label
  26. class UserDashboardModule(models.Model):
  27. title = models.CharField(verbose_name=_('Title'), max_length=255)
  28. module = models.CharField(verbose_name=_('module'), max_length=255)
  29. app_label = models.CharField(verbose_name=_('application name'), max_length=255, null=True, blank=True)
  30. user = models.PositiveIntegerField(verbose_name=_('user'))
  31. column = models.PositiveIntegerField(verbose_name=_('column'))
  32. order = models.IntegerField(verbose_name=_('order'))
  33. settings = models.TextField(verbose_name=_('settings'), default='', blank=True)
  34. children = models.TextField(verbose_name=_('children'), default='', blank=True)
  35. collapsed = models.BooleanField(verbose_name=_('collapsed'), default=False)
  36. class Meta:
  37. verbose_name = _('user dashboard module')
  38. verbose_name_plural = _('user dashboard modules')
  39. ordering = ('column', 'order')
  40. def __unicode__(self):
  41. return self.module
  42. def load_module(self):
  43. package, module_name = self.module.rsplit('.', 1)
  44. package = import_module(package)
  45. module = getattr(package, module_name)
  46. return module