123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- from importlib import import_module
- from django.db import models
- from django.utils import timezone
- from django.utils.encoding import python_2_unicode_compatible
- from django.utils.translation import ugettext_lazy as _
- @python_2_unicode_compatible
- class Bookmark(models.Model):
- url = models.URLField(verbose_name=_('URL'))
- title = models.CharField(verbose_name=_('title'), max_length=255)
- user = models.PositiveIntegerField(verbose_name=_('user'))
- date_add = models.DateTimeField(verbose_name=_('date created'), default=timezone.now)
- class Meta:
- verbose_name = _('bookmark')
- verbose_name_plural = _('bookmarks')
- ordering = ('date_add',)
- def __str__(self):
- return self.title
- @python_2_unicode_compatible
- class PinnedApplication(models.Model):
- app_label = models.CharField(verbose_name=_('application name'), max_length=255)
- user = models.PositiveIntegerField(verbose_name=_('user'))
- date_add = models.DateTimeField(verbose_name=_('date created'), default=timezone.now)
- class Meta:
- verbose_name = _('pinned application')
- verbose_name_plural = _('pinned applications')
- ordering = ('date_add',)
- def __str__(self):
- return self.app_label
- @python_2_unicode_compatible
- class UserDashboardModule(models.Model):
- title = models.CharField(verbose_name=_('Title'), max_length=255)
- module = models.CharField(verbose_name=_('module'), max_length=255)
- app_label = models.CharField(verbose_name=_('application name'), max_length=255, null=True, blank=True)
- user = models.PositiveIntegerField(verbose_name=_('user'))
- column = models.PositiveIntegerField(verbose_name=_('column'))
- order = models.IntegerField(verbose_name=_('order'))
- settings = models.TextField(verbose_name=_('settings'), default='', blank=True)
- children = models.TextField(verbose_name=_('children'), default='', blank=True)
- collapsed = models.BooleanField(verbose_name=_('collapsed'), default=False)
- class Meta:
- verbose_name = _('user dashboard module')
- verbose_name_plural = _('user dashboard modules')
- ordering = ('column', 'order')
- def __str__(self):
- return self.module
- def load_module(self):
- try:
- package, module_name = self.module.rsplit('.', 1)
- package = import_module(package)
- module = getattr(package, module_name)
- return module
- except AttributeError:
- return None
|