summaryrefslogtreecommitdiff
path: root/main/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'main/views.py')
-rw-r--r--main/views.py260
1 files changed, 0 insertions, 260 deletions
diff --git a/main/views.py b/main/views.py
deleted file mode 100644
index 9de8f4b..0000000
--- a/main/views.py
+++ /dev/null
@@ -1,260 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-# 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
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-
-# You should have received a copy of the GNU General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-# See the file COPYING for details.
-
-"""
-Views of the project
-"""
-
-import datetime
-
-from django.utils.translation import ugettext as _
-from django.shortcuts import render_to_response
-from django.template import loader
-from django.http import HttpResponseRedirect, HttpResponse
-from django.core import serializers
-
-from chimere import settings
-from chimere.main.actions import actions
-from chimere.main.models import Category, SubCategory, PropertyModel, Marker, \
- Route, News, Area, Color
-
-from chimere.main.widgets import getMapJS, PointChooserWidget, \
- RouteChooserWidget, URL_OSM_JS, URL_OSM_CSS
-from chimere.main.forms import MarkerForm, RouteForm, ContactForm, \
- notifySubmission, notifyStaff
-
-def index(request):
- """
- Main page
- """
- subcategories = SubCategory.getAvailable()
- for cat, sub_cats in subcategories:
- for sub_category in sub_cats:
- if sub_category.id in settings.DEFAULT_CATEGORIES:
- sub_category.selected = True
- cat.selected= True
- extra = ""
- tab = " "*4
- for url in URL_OSM_CSS:
- extra += tab + '<link rel="stylesheet" href="%s" />' % url
- for url in URL_OSM_JS + ["%sbase.js" % settings.MEDIA_URL,
- "%smain_map.js" % settings.MEDIA_URL,]:
- extra += tab + '<script src="%s"></script>\n' % url
- extra += tab + '<script src="/' + settings.EXTRA_URL + 'jsi18n/"></script>\n'
- # show the welcome page
- today = datetime.date.today().strftime('%y-%m-%d')
- display_welcome = None
- if not 'last_visit' in request.session or \
- request.session['last_visit'] != today:
- request.session['last_visit'] = today
- display_welcome = True
- response_dct = {'actions':actions, 'action_selected':('view',),
- 'error_message':'',
- 'sub_categories':subcategories,
- 'extra_head':extra + getMapJS(),
- 'media_path':settings.MEDIA_URL,
- 'extra_url':settings.EXTRA_URL,
- 'welcome':welcome(request, display_welcome),
- 'areas':Area.getAvailable(),
- 'map_layer':settings.MAP_LAYER
- }
- # manage permalink
- if request.GET:
- for key in ('zoom', 'lon', 'lat', 'display_submited'):
- if key in request.GET and request.GET[key]:
- response_dct['p_'+key] = request.GET[key]
- else:
- response_dct['p_'+key] = '""'
- if 'checked_categories' in request.GET \
- and request.GET['checked_categories']:
- cats = request.GET['checked_categories'].split('_')
- response_dct['p_checked_categories'] = ",".join(cats)
- else:
- response_dct['p_checked_categories'] = '';
- return render_to_response('main_map.html', response_dct)
-
-def edit(request):
- """
- Edition page
- """
- # If the form has been submited
- if request.method == 'POST':
- form = MarkerForm(request.POST, request.FILES)
- # All validation rules pass
- if form.is_valid():
- marker = form.save()
- # set the submited status
- marker.status = 'S'
- marker.save()
- notifySubmission(marker)
- return HttpResponseRedirect('/' + settings.EXTRA_URL +'submited/edit')
- else:
- # An unbound form
- form = MarkerForm()
- # get the « manualy » declared_fields. Ie: properties
- declared_fields = form.declared_fields.keys()
- response_dct = {'actions':actions, 'action_selected':('contribute', 'edit'),
- 'error_message':'',
- 'media_path':settings.MEDIA_URL,
- 'extra_url':settings.EXTRA_URL,
- 'map_layer':settings.MAP_LAYER,
- 'form':form,
- 'extra_head':form.media,
- 'sub_categories':SubCategory.getAvailable(['M', 'B']),
- 'point_widget':PointChooserWidget().render('point', None),
- 'properties':declared_fields
- }
- # manualy populate the custom widget
- if 'subcategory' in form.data and form.data['subcategory']:
- response_dct['current_category'] = int(form.data['subcategory'])
- return render_to_response('edit.html', response_dct)
-
-def editRoute(request):
- """
- Route edition page
- """
- # If the form has been submited
- if request.method == 'POST':
- form = RouteForm(request.POST, request.FILES)
- # All validation rules pass
- if form.is_valid():
- route = form.save()
- # set the submited status
- route.status = 'S'
- route.save()
- notifySubmission(route)
- return HttpResponseRedirect('/' + settings.EXTRA_URL + \
- 'submited/edit_route')
- else:
- # An unbound form
- form = RouteForm()
- # get the « manualy » declared_fields. Ie: properties
- declared_fields = form.declared_fields.keys()
- response_dct = {'actions':actions,
- 'action_selected':('contribute', 'edit_route'),
- 'error_message':'',
- 'media_path':settings.MEDIA_URL,
- 'map_layer':settings.MAP_LAYER,
- 'form':form,
- 'extra_head':form.media,
- 'extra_url':settings.EXTRA_URL,
- 'sub_categories':SubCategory.getAvailable(['R', 'B']),
- 'route_widget':RouteChooserWidget().render('route', None),
- 'properties':declared_fields
- }
- # manualy populate the custom widget
- if 'subcategory' in form.data and form.data['subcategory']:
- response_dct['current_category'] = int(form.data['subcategory'])
- return render_to_response('edit_route.html', response_dct)
-
-def welcome(request, display=None):
- """
- Welcome string
- """
- response_dct = {'display':display}
- response_dct['news_lst'] = News.objects.filter(available=True)
- return loader.render_to_string('welcome.html', response_dct)
-
-def submited(request, action):
- """
- Successful submission page
- """
- response_dct = {'actions':actions, 'action_selected':action,
- 'media_path':settings.MEDIA_URL,}
- return render_to_response('submited.html', response_dct)
-
-def contactus(request):
- """
- Contact page
- """
- form = None
- msg = ''
- # If the form has been submited
- if request.method == 'POST':
- form = ContactForm(request.POST)
- # All validation rules pass
- if form.is_valid():
- response = notifyStaff(_(u"Comments/request on the map"),
- form.cleaned_data['content'], form.cleaned_data['email'])
- if response:
- msg = _(u"Thank you for your contribution. It will be taken \
-into account. If you have left your email you may be contacted soon for more \
-details.")
- else:
- msg = _(u"Temporary error. Renew your message later.")
- else:
- form = ContactForm()
- response_dct = {'actions':actions, 'action_selected':('contact',),
- 'media_path':settings.MEDIA_URL,'contact_form':form, 'message':msg}
- return render_to_response('contactus.html', response_dct)
-
-def getDetail(request, marker_id):
- '''
- Get the detail for a marker
- '''
- try:
- marker = Marker.objects.filter(id=int(marker_id), status='A')[0]
- except (ValueError, IndexError):
- return HttpResponse('no results')
- response_dct= {'media_path':settings.MEDIA_URL, 'marker':marker}
- return render_to_response('detail.html', response_dct)
-
-def getDescriptionDetail(request, category_id):
- '''
- Get the description for a category
- '''
- try:
- category = Category.objects.filter(id=int(category_id))[0]
- except (ValueError, IndexError):
- return HttpResponse('no results')
- response_dct= {'media_path':settings.MEDIA_URL, 'category':category}
- return render_to_response('category_detail.html', response_dct)
-
-def getGeoObjects(request, category_ids, status='A'):
- '''
- Get the JSON for a route
- '''
- status = status.split('_')
- try:
- query = Route.objects.filter(status__in=status,
- subcategory__in=category_ids.split('_'))
- except:
- return HttpResponse('no results')
- query.order_by('subcategory')
- routes = list(query)
- jsons = []
- current_cat, colors, idx = None, None, 0
- for route in routes:
- if not current_cat or current_cat != route.subcategory:
- idx = 0
- current_cat = route.subcategory
- colors = list(Color.objects.filter(color_theme=\
- route.subcategory.color_theme))
- jsons.append(route.getGeoJSON(color=colors[idx % len(colors)].code))
- idx += 1
- try:
- query = Marker.objects.filter(status__in=status,
- subcategory__in=category_ids.split('_'))
- except:
- return HttpResponse('no results')
- jsons += [geo_object.getGeoJSON() for geo_object in list(query)]
- if not jsons:
- return HttpResponse('no results')
- data = '{"type": "FeatureCollection", "features":[%s]}' % ",".join(jsons)
- return HttpResponse(data)