summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py70
1 files changed, 29 insertions, 41 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 674e42538..74b2f4221 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -1464,6 +1464,7 @@ CURRENCY = ((u"€", _(u"Euro")),
(u"$", _(u"US dollar")))
FIND_INDEX_SOURCE = ((u"O", _(u"Operations")),
(u"CR", _(u"Context records")))
+SITE_LABELS = [('site', _(u"Site")), ('entity', _(u"Archaeological entity"))]
class IshtarSiteProfile(models.Model, Cached):
@@ -1471,18 +1472,16 @@ class IshtarSiteProfile(models.Model, Cached):
label = models.TextField(_(u"Name"))
slug = models.SlugField(_(u"Slug"), unique=True)
description = models.TextField(_(u"Description"), null=True, blank=True)
- base_color = models.CharField(
- _(u"CSS color code for base module"),
- default=u'rgba(0, 0, 0, 0)', max_length=200)
files = models.BooleanField(_(u"Files module"), default=False)
- files_color = models.CharField(
- _(u"CSS color code for files module"),
- default=u'rgba(0, 32, 210, 0.1)', max_length=200)
+ archaeological_site = models.BooleanField(
+ _(u"Archaeological site module"), default=False)
+ archaeological_site_label = models.CharField(
+ _(u"Archaeological site type"), max_length=200,
+ choices=SITE_LABELS,
+ default='site'
+ )
context_record = models.BooleanField(_(u"Context records module"),
default=False)
- context_record_color = models.CharField(
- _(u"CSS color code for context record module"),
- default=u'rgba(210,200,0,0.2)', max_length=200)
find = models.BooleanField(_(u"Finds module"), default=False,
help_text=_(u"Need context records module"))
find_index = models.CharField(
@@ -1490,21 +1489,12 @@ class IshtarSiteProfile(models.Model, Cached):
choices=FIND_INDEX_SOURCE,
help_text=_(u"To prevent irrelevant indexes, change this parameter "
u"only if there is no find in the database"))
- find_color = models.CharField(
- _(u"CSS color code for find module"),
- default=u'rgba(210,0,0,0.15)', max_length=200)
warehouse = models.BooleanField(
_(u"Warehouses module"), default=False,
help_text=_(u"Need finds module"))
- warehouse_color = models.CharField(
- _(u"CSS code for warehouse module"), default=u'rgba(10,20,200,0.15)',
- max_length=200)
preservation = models.BooleanField(_(u"Preservation module"),
default=False)
mapping = models.BooleanField(_(u"Mapping module"), default=False)
- mapping_color = models.CharField(
- _(u"CSS code for mapping module"), default=u'rgba(72, 236, 0, 0.15)',
- max_length=200)
homepage = models.TextField(
_(u"Home page"), null=True, blank=True,
help_text=_(u"Homepage of Ishtar - if not defined a default homepage "
@@ -1579,18 +1569,26 @@ class IshtarSiteProfile(models.Model, Cached):
def __unicode__(self):
return unicode(self.label)
- def get_raw_css(self):
- css = ''
- for attr, css_name in (('base_color', 'operation'),
- ('files_color', 'file'),
- ('context_record_color', 'context-record'),
- ('find_color', 'find'),
- ('warehouse_color', 'warehouse')):
- css += '''
-.menu-%s{
- background-color: %s;
-}''' % (css_name, getattr(self, attr))
- return css
+ @classmethod
+ def get_current_profile(cls, force=False):
+ cache_key, value = get_cache(cls, ['is-current-profile'])
+ if value and not force:
+ return value
+ q = cls.objects.filter(active=True)
+ if not q.count():
+ obj = cls.objects.create(
+ label="Default profile", slug='default', active=True)
+ else:
+ obj = q.all()[0]
+ cache.set(cache_key, obj, settings.CACHE_TIMEOUT)
+ return obj
+
+ @classmethod
+ def get_default_site_label(cls):
+ return cls.get_current_profile().get_site_label()
+
+ def get_site_label(self):
+ return unicode(dict(SITE_LABELS)[self.archaeological_site_label])
def save(self, *args, **kwargs):
raw = False
@@ -1621,17 +1619,7 @@ class IshtarSiteProfile(models.Model, Cached):
def get_current_profile(force=False):
- cache_key, value = get_cache(IshtarSiteProfile, ['is-current-profile'])
- if value and not force:
- return value
- q = IshtarSiteProfile.objects.filter(active=True)
- if not q.count():
- obj = IshtarSiteProfile.objects.create(
- label="Default profile", slug='default', active=True)
- else:
- obj = q.all()[0]
- cache.set(cache_key, obj, settings.CACHE_TIMEOUT)
- return obj
+ return IshtarSiteProfile.get_current_profile(force=force)
def cached_site_changed(sender, **kwargs):