summaryrefslogtreecommitdiff
path: root/chimere/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-03-18 20:03:26 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-03-18 20:03:26 +0100
commit64956fbaf18a8e687d8f0fffc79889a277f42fcd (patch)
treee4c92902db6e39eb1bb458eb04e148035f450d82 /chimere/models.py
parent318bfc901e262a8d35323f42eb71b364497dc27c (diff)
downloadChimère-64956fbaf18a8e687d8f0fffc79889a277f42fcd.tar.bz2
Chimère-64956fbaf18a8e687d8f0fffc79889a277f42fcd.zip
Better management of extra pages
Diffstat (limited to 'chimere/models.py')
-rw-r--r--chimere/models.py39
1 files changed, 31 insertions, 8 deletions
diff --git a/chimere/models.py b/chimere/models.py
index 8ce88ef..80bf0f3 100644
--- a/chimere/models.py
+++ b/chimere/models.py
@@ -42,7 +42,7 @@ from django.contrib.postgres.search import SearchVectorField, SearchVector, \
SearchQuery
from django.core.files import File
from django.core.exceptions import ObjectDoesNotExist
-from django.core.urlresolvers import reverse
+from django.core.urlresolvers import reverse, NoReverseMatch
from django.db.models import Q, Count
from django.db.models.signals import post_save, pre_save
from django.template import defaultfilters
@@ -58,16 +58,25 @@ class Page(models.Model):
"""Simple extra pages
"""
title = models.CharField(_("Name"), max_length=150)
- mnemonic = models.CharField(_("Mnemonic"), max_length=10, blank=True,
+ image = models.ImageField(
+ _("Image"), blank=True, null=True, upload_to='maps',
+ help_text=_("If an image is provided, this image replace the title on"
+ "the menu"))
+ mnemonic = models.CharField(_("Mnemonic"), max_length=150, blank=True,
null=True)
available = models.BooleanField(_("Available"), default=True)
- order = models.IntegerField(_("Order"), default=10, blank=True, null=True)
template_path = models.CharField(_("Template path"), max_length=150,
blank=True, null=True)
- content = models.TextField(blank=True, null=True)
+ url = models.URLField(_("Url"), blank=True, null=True,
+ help_text=_("Target to an external link (do not fill "
+ "content if you want to point to an "
+ "external link)"))
+ content = models.TextField(
+ _("Content"), blank=True, null=True,
+ help_text=_("Content of the page (do not fill external link if you "
+ "want to display this content."))
class Meta:
- ordering = ["order"]
verbose_name = _("Page")
verbose_name_plural = _("Page")
@@ -2009,9 +2018,10 @@ class Area(models.Model, SimpleArea):
show_directory = models.BooleanField(
_("Show directory"), default=True
)
- # logo = models.ImageField(_("Logo"), upload_to='logos', blank=True,
- # null=True)
- favicon = models.ImageField(_(u"Favicon"), blank=True, null=True)
+ favicon = models.ImageField(_(u"Favicon"), upload_to='maps', blank=True,
+ null=True)
+ logo = models.ImageField(_("Logo"), upload_to='maps', blank=True,
+ null=True)
upper_left_corner = models.PointField(
_("Upper left corner"), default='POINT(0 0)',
srid=settings.CHIMERE_EPSG_DISPLAY_PROJECTION)
@@ -2024,6 +2034,8 @@ class Area(models.Model, SimpleArea):
through='AreaLayers', blank=True)
overlays = models.ManyToManyField(Overlay, related_name='overlays',
through='AreaOverlays', blank=True)
+ pages = models.ManyToManyField(Page, related_name='areas',
+ through='AreaPages', blank=True)
default_subcategories = models.ManyToManyField(
SubCategory, blank=True,
verbose_name=_("Sub-categories checked by default"))
@@ -2240,6 +2252,17 @@ class AreaOverlays(models.Model):
verbose_name_plural = _("Areas - Overlays")
+class AreaPages(models.Model):
+ area = models.ForeignKey(Area)
+ page = models.ForeignKey(Page)
+ order = models.IntegerField(_("Order"))
+
+ class Meta:
+ ordering = ('order',)
+ verbose_name = _("Area - Page")
+ verbose_name_plural = _("Areas - Pages")
+
+
slug_help = _(u"The slug is the standardized version of the name. It contains "
u"only lowercase letters, numbers and hyphens. Each slug must "
u"be unique.")