summaryrefslogtreecommitdiff
path: root/chimere
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2012-08-23 12:49:23 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2012-08-23 12:49:23 +0200
commite7ef3771c1aaefdf49bb79e471535d9d397eb304 (patch)
tree578e5612be2ac2505208799af3a75a9d69eaffd2 /chimere
parentabb6ec27ed2e37aa0dbe87260af9bc84119cb0e3 (diff)
parent206ecac22bd17ec422ab23d7ec56ab49b8d574eb (diff)
downloadChimère-e7ef3771c1aaefdf49bb79e471535d9d397eb304.tar.bz2
Chimère-e7ef3771c1aaefdf49bb79e471535d9d397eb304.zip
Merge branch 'master' into saclay
Diffstat (limited to 'chimere')
-rw-r--r--chimere/forms.py2
-rw-r--r--chimere/models.py25
-rw-r--r--chimere/static/chimere/css/styles.css2
-rw-r--r--chimere/static/chimere/js/SimplePanZoom.js6
-rw-r--r--chimere/templates/chimere/blocks/head_chimere.html2
-rw-r--r--chimere/templates/chimere/blocks/map_params.html2
-rw-r--r--chimere/templatetags/chimere_tags.py22
-rw-r--r--chimere/views.py3
8 files changed, 49 insertions, 15 deletions
diff --git a/chimere/forms.py b/chimere/forms.py
index f49a903..20171df 100644
--- a/chimere/forms.py
+++ b/chimere/forms.py
@@ -163,8 +163,6 @@ class MarkerAdminFormBase(forms.ModelForm):
if not pm.mandatory or self.cleaned_data[pm.getNamedId()]:
continue
pm_cats = pm.subcategories.all()
- print self.cleaned_data['categories']
- print pm_cats
if not pm_cats or \
[submited_cat for submited_cat in self.cleaned_data['categories']
if submited_cat in pm_cats]:
diff --git a/chimere/models.py b/chimere/models.py
index ca608e8..936353d 100644
--- a/chimere/models.py
+++ b/chimere/models.py
@@ -23,9 +23,8 @@ Models description
import os, string, re
import simplejson as json
from lxml import etree
-from datetime import datetime, timedelta
+import datetime
from subprocess import Popen, PIPE
-import unidecode
from django.conf import settings
from django.contrib.gis.db import models
@@ -36,6 +35,7 @@ from django.core.exceptions import ValidationError
from django.core.urlresolvers import reverse
from django.db.models.signals import post_save
from django import forms
+from django.template import defaultfilters
from django.utils.translation import ugettext_lazy as _
from chimere.widgets import PointField, RouteField, SelectMultipleField, \
@@ -308,10 +308,10 @@ class Marker(GeographicItem):
super(Marker, self).__init__(*args, **kwargs)
# add read attributes for properties
for property in self.getProperties():
- attr_name = unidecode.unidecode(property.propertymodel.name).lower()
- attr_name = re.sub(r'\W+','_', attr_name.strip())
+ attr_name = defaultfilters.slugify(property.propertymodel.name)
+ attr_name = re.sub(r'-','_', attr_name)
if not hasattr(self, attr_name):
- setattr(self, attr_name, property.value)
+ setattr(self, attr_name, property.python_value)
def get_init_multi(self):
multis = [forms.model_to_dict(multi)
@@ -701,8 +701,9 @@ def getDateCondition():
'''
if not settings.CHIMERE_DAYS_BEFORE_EVENT:
return ""
- now = datetime.now().strftime('%Y-%m-%d')
- after = (datetime.now() + timedelta(settings.CHIMERE_DAYS_BEFORE_EVENT)
+ now = datetime.datetime.now().strftime('%Y-%m-%d')
+ after = (datetime.datetime.now() + \
+ datetime.timedelta(settings.CHIMERE_DAYS_BEFORE_EVENT)
).strftime('%Y-%m-%d')
date_condition = " and %(alias)s.start_date is null or "
date_condition += "(%(alias)s.start_date >= '" + now + "' and "
@@ -938,3 +939,13 @@ class Property(models.Model):
class Meta:
verbose_name = _(u"Property")
+ @property
+ def python_value(self):
+ if self.propertymodel.type == 'D':
+ try:
+ return datetime.date(*[int(val) for val in self.value.split('-')])
+ except:
+ return ""
+ else:
+ return self.value
+
diff --git a/chimere/static/chimere/css/styles.css b/chimere/static/chimere/css/styles.css
index ceb3b60..25ee6e8 100644
--- a/chimere/static/chimere/css/styles.css
+++ b/chimere/static/chimere/css/styles.css
@@ -132,6 +132,8 @@ legend{
font-weight:bold;
}
+a img {border: none;}
+
h2{
font-size:16px;
text-align:center;
diff --git a/chimere/static/chimere/js/SimplePanZoom.js b/chimere/static/chimere/js/SimplePanZoom.js
index e42dc54..45619c3 100644
--- a/chimere/static/chimere/js/SimplePanZoom.js
+++ b/chimere/static/chimere/js/SimplePanZoom.js
@@ -92,6 +92,11 @@ OpenLayers.Control.SimplePanZoom = OpenLayers.Class(OpenLayers.Control.PanZoom,
buttons: null,
/**
+ * Top position of the slider: change if the Y position of the slider have change
+ */
+ startTop: 75,
+
+ /**
* APIMethod: destroy
*/
destroy: function() {
@@ -200,7 +205,6 @@ OpenLayers.Control.SimplePanZoom = OpenLayers.Class(OpenLayers.Control.PanZoom,
this.zoombarDiv = div;
this.div.appendChild(div);
- this.startTop = 75;
this.div.appendChild(slider);
this.map.events.register("zoomend", this, this.moveZoomBar);
diff --git a/chimere/templates/chimere/blocks/head_chimere.html b/chimere/templates/chimere/blocks/head_chimere.html
index 4ef1ae1..4031ac4 100644
--- a/chimere/templates/chimere/blocks/head_chimere.html
+++ b/chimere/templates/chimere/blocks/head_chimere.html
@@ -2,7 +2,7 @@
<link rel="stylesheet" href="{{ css_url }}" />{% endfor %}
{% for js_url in OSM_JS_URLS %}
<script src="{{ js_url }}"></script>{% endfor %}
-
+<script src="{{ STATIC_URL }}chimere/js/jquery.chimere.js"></script>
<script type="text/javascript">
/* Global variables */
var STATIC_URL = static_url = "{{ STATIC_URL }}";
diff --git a/chimere/templates/chimere/blocks/map_params.html b/chimere/templates/chimere/blocks/map_params.html
index 1afd722..27762a3 100644
--- a/chimere/templates/chimere/blocks/map_params.html
+++ b/chimere/templates/chimere/blocks/map_params.html
@@ -1,5 +1,7 @@
{% load i18n %}
<script type="text/javascript">
+ {% if single_category %}
+ $(function() {$('#panel').hide()});{% endif %}
var chimere_init_options = {};
chimere_init_options["default_icon"] = '{{STATIC_URL}}img/marker-green.png';
chimere_init_options["map_layers"] = [{{map_layers|safe|escape}}];
diff --git a/chimere/templatetags/chimere_tags.py b/chimere/templatetags/chimere_tags.py
index 946e769..132af09 100644
--- a/chimere/templatetags/chimere_tags.py
+++ b/chimere/templatetags/chimere_tags.py
@@ -10,7 +10,7 @@ from django.conf import settings
from django.core.exceptions import ObjectDoesNotExist
from django.core.urlresolvers import reverse
-from chimere.models import Marker, Area, News
+from chimere.models import Marker, Area, News, SubCategory
from chimere.widgets import get_map_layers
log = getLogger(__name__)
@@ -136,7 +136,7 @@ def map_params(context):
context_data['map_layers'] = ", ".join(map_layers)
if default_area:
context_data['selected_map_layer'] = default_area
- context_data['p_checked_categories'] = "[]"
+ context_data['p_checked_categories'] = None
area = None
if area_name:
try:
@@ -156,7 +156,12 @@ def map_params(context):
unicode(area.upper_left_corner.y),
unicode(area.lower_right_corner.x),
unicode(area.lower_right_corner.y)))
- context_data['p_checked_categories'] = unicode([subcategory.pk
+ if area.subcategories.filter(available=True).count() == 1:
+ context_data['single_category'] = True
+ context_data['p_checked_categories'] = "[%d]" % \
+ area.subcategories.all()[0].pk
+ elif area.default_subcategories.count():
+ context_data['p_checked_categories'] = unicode([subcategory.pk
for subcategory in area.default_subcategories.all()])
if area.restrict_to_extent:
context_data['restricted_extent'] = """
@@ -165,6 +170,17 @@ bounds.extend(new OpenLayers.LonLat(%f, %f));
bounds.extend(new OpenLayers.LonLat(%f, %f));
""" % (area.upper_left_corner.x, area.upper_left_corner.y,
area.lower_right_corner.x, area.lower_right_corner.y)
+
+ if SubCategory.objects.filter(available=True).count() <= 1:
+ context_data['single_category'] = True
+ if not context_data['p_checked_categories']:
+ cat = ''
+ if SubCategory.objects.filter(available=True).count():
+ cat = unicode(SubCategory.objects.filter(available=True
+ ).all()[0].pk)
+ context_data['p_checked_categories'] = "[%s]" % cat
+ if not context_data['p_checked_categories']:
+ context_data['p_checked_categories'] = "[]"
context_data['dynamic_categories'] = 'true' \
if area and area.dynamic_categories else 'false'
if 'request' not in context:
diff --git a/chimere/views.py b/chimere/views.py
index dd3f89a..59f6a8c 100644
--- a/chimere/views.py
+++ b/chimere/views.py
@@ -92,6 +92,7 @@ def get_base_response(area_name=""):
area_name = area.urn
except ObjectDoesNotExist:
pass
+
base_response_dct['area'] = area
base_response_dct['area_name'] = area_name
if area and area.external_css:
@@ -125,7 +126,7 @@ def index(request, area_name=None, default_area=None, simple=False):
if settings.CHIMERE_ENABLE_ROUTING:
response_dct['itinerary_form'] = RoutingForm()
response_dct.update({
- 'actions':actions, 'action_selected':('view',),
+ 'actions':actions, 'action_selected':('view',),
'error_message':'',
'news_visible': news_visible,
'areas_visible': settings.CHIMERE_DISPLAY_AREAS,