summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoretienne <etienne@9215b0d5-fb2c-4bbd-8d3e-bd2e9090e864>2010-02-21 18:05:23 +0000
committeretienne <etienne@9215b0d5-fb2c-4bbd-8d3e-bd2e9090e864>2010-02-21 18:05:23 +0000
commitad04991edd7b474184e68a5c3d550689191a38d7 (patch)
tree37e7408c9e2e95880c95ffa1081415f6dd99a1c9
parentba7feec28d19e83abab9c178718a2ffb99af935b (diff)
downloadChimè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.py22
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