diff options
author | etienne <etienne@9215b0d5-fb2c-4bbd-8d3e-bd2e9090e864> | 2010-02-21 18:05:23 +0000 |
---|---|---|
committer | etienne <etienne@9215b0d5-fb2c-4bbd-8d3e-bd2e9090e864> | 2010-02-21 18:05:23 +0000 |
commit | ad04991edd7b474184e68a5c3d550689191a38d7 (patch) | |
tree | 37e7408c9e2e95880c95ffa1081415f6dd99a1c9 | |
parent | ba7feec28d19e83abab9c178718a2ffb99af935b (diff) | |
download | Chimère-ad04991edd7b474184e68a5c3d550689191a38d7.tar.bz2 Chimère-ad04991edd7b474184e68a5c3d550689191a38d7.zip |
Evolution in database for dynamic management of categories and dynamic urls by areas
git-svn-id: http://www.peacefrogs.net/svn/chimere/trunk@62 9215b0d5-fb2c-4bbd-8d3e-bd2e9090e864
-rw-r--r-- | chimere/main/models.py | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/chimere/main/models.py b/chimere/main/models.py index b35ddb9..f6148cd 100644 --- a/chimere/main/models.py +++ b/chimere/main/models.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2008 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2008-2010 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as @@ -107,25 +107,25 @@ class SubCategory(models.Model): ordering = ["category", "order"] verbose_name = _("Subcategory") - def getAvailable(item_types=None): + @classmethod + def getAvailable(cls, item_types=None): '''Get list of tuples with first the category and second the associated subcategories ''' sub_categories = {} subcategories = None if not item_types: - subcategories = SubCategory.objects.filter(category__available=True, - available=True) + subcategories = cls.objects.filter(category__available=True, + available=True) else: - subcategories = SubCategory.objects.filter(category__available=True, - item_type__in=item_types) + subcategories = cls.objects.filter(category__available=True, + item_type__in=item_types) for sub_category in subcategories: if sub_category.category not in sub_categories: sub_categories[sub_category.category] = [] sub_categories[sub_category.category].append(sub_category) return [(category, sub_cats) for category, sub_cats \ in sub_categories.items()] - getAvailable = staticmethod(getAvailable) class Marker(models.Model): '''Marker for a POI @@ -266,8 +266,10 @@ class Area(models.Model): """Rectangular area of the map """ name = models.CharField(_("Name"), max_length=150) + url = models.CharField(_("Url"), max_length=100, blank=True) order = models.IntegerField(_("Order")) available = models.BooleanField(_("Available")) + subcategories = models.ManyToManyFields(SubCategory, related_name='areas') upper_left_corner = models.PointField(_("Upper left corner"), default='POINT(0 0)') lower_right_corner = models.PointField(_("Lower right corner"), @@ -281,11 +283,11 @@ class Area(models.Model): ordering = ('order', 'name') verbose_name = _("Area") - def getAvailable(): + @classmethod + def getAvailable(cls): '''Get available areas ''' - return Area.objects.filter(available=True) - getAvailable = staticmethod(getAvailable) + return cls.objects.filter(available=True) class PropertyModel(models.Model): '''Model for a property |