1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- 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):
- package, module_name = self.module.rsplit('.', 1)
- package = import_module(package)
- module = getattr(package, module_name)
- return module
|