diff options
| -rw-r--r-- | chimere/main/admin.py | 7 | ||||
| -rw-r--r-- | chimere/main/forms.py | 2 | ||||
| -rw-r--r-- | chimere/main/models.py | 29 | ||||
| -rw-r--r-- | chimere/main/widgets.py | 7 | ||||
| -rw-r--r-- | docs/en/INSTALL.t2t | 4 |
5 files changed, 28 insertions, 21 deletions
diff --git a/chimere/main/admin.py b/chimere/main/admin.py index 31c9d5c..0f8231f 100644 --- a/chimere/main/admin.py +++ b/chimere/main/admin.py @@ -49,6 +49,7 @@ class MarkerAdmin(admin.ModelAdmin): search_fields = ("name",) list_display = ('name', 'subcategory', 'status') list_filter = ('status', 'subcategory') + exclude = ['height', 'width'] form = MarkerAdminForm def queryset(self, request): @@ -71,6 +72,7 @@ class RouteAdmin(admin.ModelAdmin): search_fields = ("name",) list_display = ('name', 'subcategory', 'status') list_filter = ('status', 'subcategory') + exclude = ['height', 'width'] form = RouteAdminForm def queryset(self, request): @@ -119,10 +121,13 @@ class ColorInline(admin.TabularInline): class ColorThemeAdmin(admin.ModelAdmin): inlines = [ColorInline,] +class IconAdmin(admin.ModelAdmin): + exclude = ['height', 'width'] + # register of differents database fields admin.site.register(News, NewsAdmin) admin.site.register(Category, CategoryAdmin) -admin.site.register(Icon) +admin.site.register(Icon, IconAdmin) admin.site.register(SubCategory, SubCategoryAdmin) admin.site.register(Marker, MarkerAdmin) admin.site.register(Route, RouteAdmin) diff --git a/chimere/main/forms.py b/chimere/main/forms.py index f2490da..2eff8b1 100644 --- a/chimere/main/forms.py +++ b/chimere/main/forms.py @@ -247,8 +247,10 @@ class AreaAdminForm(forms.ModelForm): """ Custom save method in order to manage area """ + print 1 new_area = super(AreaAdminForm, self).save(*args, **keys) area = self.cleaned_data['area'] + print 2 new_area.upper_left_corner = 'POINT(%s %s)' % (area[0][0], area[0][1]) new_area.lower_right_corner = 'POINT(%s %s)' % (area[1][0], area[1][1]) diff --git a/chimere/main/models.py b/chimere/main/models.py index 3efc1bc..5744529 100644 --- a/chimere/main/models.py +++ b/chimere/main/models.py @@ -27,8 +27,7 @@ from django.contrib.gis.gdal import SpatialReference from django.contrib import admin from chimere import settings -from chimere.main.widgets import PointField, RouteField, \ - ManyToManyField_NoSyncdb +from chimere.main.widgets import PointField, RouteField class News(models.Model): """News of the site @@ -42,6 +41,7 @@ class News(models.Model): return self.title class Meta: verbose_name = _("News") + verbose_name_plural = _("News") class TinyUrl(models.Model): """Tinyfied version of permalink parameters @@ -122,6 +122,8 @@ class Icon(models.Model): name = models.CharField(_("Name"), max_length=150) image = models.ImageField(_("Image"), upload_to='icons', height_field='height', width_field='width') + height = models.IntegerField(_("Height")) + width = models.IntegerField(_("Width")) def __unicode__(self): return self.name class Meta: @@ -163,8 +165,8 @@ class SubCategory(models.Model): if area_name: area = Area.objects.get(urn=area_name) # if there some restrictions with categories limit them - if area.subcategories.count(): - sub_ids = [sub.id for sub in area.subcategories.all()] + if area.subcategory_set.count(): + sub_ids = [sub.id for sub in area.subcategory_set.all()] # if no area is defined for a category don't filter it sub_ids += [sub.id for sub in subcategories if not sub.areas.count()] @@ -184,9 +186,11 @@ class Marker(models.Model): ''' name = models.CharField(_("Name"), max_length=150) subcategory = models.ForeignKey(SubCategory, verbose_name=_("Subcategory")) - point = PointField(_("Localisation")) + point = PointField(_("Localisation"), srid=settings.EPSG_DISPLAY_PROJECTION) picture = models.ImageField(_("Image"), upload_to='upload', blank=True, - height_field='height', width_field='width') + null=True, height_field='height', width_field='width') + height = models.IntegerField(_("Height"), blank=True, null=True) + width = models.IntegerField(_("Width"), blank=True, null=True) STATUS = (('S', _('Submited')), ('A', _('Available')), ('D', _('Disabled')),) @@ -252,9 +256,11 @@ class Route(models.Model): ''' name = models.CharField(_("Name"), max_length=150) subcategory = models.ForeignKey(SubCategory, verbose_name=_("Subcategory")) - route = RouteField(_("Route")) + route = RouteField(_("Route"), srid=settings.EPSG_DISPLAY_PROJECTION) picture = models.ImageField(_("Image"), upload_to='upload', blank=True, - height_field='height', width_field='width') + null=True, height_field='height', width_field='width') + height = models.IntegerField(_("Height"), blank=True, null=True) + width = models.IntegerField(_("Width"), blank=True, null=True) STATUS = (('S', _('Submited')), ('A', _('Available')), ('D', _('Disabled')),) @@ -391,15 +397,12 @@ class Area(models.Model, SimpleArea): name = models.CharField(_("Name"), max_length=150) urn = models.SlugField(_("Area urn"), max_length=50, blank=True, unique=True) - subcategories = ManyToManyField_NoSyncdb(SubCategory, - related_name='subcategories', blank=True, null=True, - db_table=u'subcategory_areas') order = models.IntegerField(_("Order")) available = models.BooleanField(_("Available")) upper_left_corner = models.PointField(_("Upper left corner"), - default='POINT(0 0)') + default='POINT(0 0)', srid=settings.EPSG_DISPLAY_PROJECTION) lower_right_corner = models.PointField(_("Lower right corner"), - default='POINT(0 0)') + default='POINT(0 0)', srid=settings.EPSG_DISPLAY_PROJECTION) objects = models.GeoManager() def __unicode__(self): diff --git a/chimere/main/widgets.py b/chimere/main/widgets.py index 4ad6475..e3977a1 100644 --- a/chimere/main/widgets.py +++ b/chimere/main/widgets.py @@ -33,11 +33,6 @@ URL_OSM_CSS = ["http://www.openlayers.org/api/theme/default/style.css"] URL_OSM_JS = ["http://www.openlayers.org/api/OpenLayers.js", "http://www.openstreetmap.org/openlayers/OpenStreetMap.js"] -class ManyToManyField_NoSyncdb(models.ManyToManyField): - def __init__(self, *args, **kwargs): - super(ManyToManyField_NoSyncdb, self).__init__(*args, **kwargs) - self.creates_table = False - def getMapJS(area_name=''): '''Variable initialization for drawing the map ''' @@ -136,7 +131,7 @@ class PointField(models.PointField): keys.update(defaults) return super(PointField, self).formfield(**keys) - def clean(self, value): + def clean(self, value, instance=None): if len(value) != 2 and self.required: raise ValidationError(_("Invalid point")) return value diff --git a/docs/en/INSTALL.t2t b/docs/en/INSTALL.t2t index 01ddd9a..9cfdd25 100644 --- a/docs/en/INSTALL.t2t +++ b/docs/en/INSTALL.t2t @@ -30,7 +30,7 @@ Optionaly (but recommanded): - [tinymce http://tinymce.moxiecode.com/] -The simpliest way to obtain these packages is to get them from your favorite Linux distribution repositories (for instance python, python-django, tinymce, apache2, libapache2-mod-python, libgeos-3.0.0, proj, gdal-bin, python-psycopg2, python-imaging, postgresql-8.3 and postgresql-8.3-postgis packages for Debian Lenny). If these packages do not exist in your distribution's repository, please refer to the applications' websites. +The simpliest way to obtain these packages is to get them from your favorite Linux distribution repositories (for instance python, python-django, tinymce, apache2, libapache2-mod-python, libgeos-3.2.0, proj, gdal-bin, python-psycopg2, python-imaging, postgresql-8.4 and postgresql-8.4-postgis packages for Debian Squeeze). If these packages do not exist in your distribution's repository, please refer to the applications' websites. +++ Database configuration +++ @@ -57,6 +57,8 @@ Another solution is to get the last git version: ``` git clone git://www.peacefrogs.net/git/chimere +git tag -l # list tagged versions +git checkout v1.0.0 # checkout the desired version ``` +++ Install the sources +++ |
