diff options
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 |
commit | 64956fbaf18a8e687d8f0fffc79889a277f42fcd (patch) | |
tree | e4c92902db6e39eb1bb458eb04e148035f450d82 /chimere/models.py | |
parent | 318bfc901e262a8d35323f42eb71b364497dc27c (diff) | |
download | Chimère-64956fbaf18a8e687d8f0fffc79889a277f42fcd.tar.bz2 Chimère-64956fbaf18a8e687d8f0fffc79889a277f42fcd.zip |
Better management of extra pages
Diffstat (limited to 'chimere/models.py')
-rw-r--r-- | chimere/models.py | 39 |
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.") |