diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-08-03 17:59:59 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2017-08-03 17:59:59 +0200 |
commit | 1df2033c836d763e0ec85501e26ace2abbd05edf (patch) | |
tree | c334490e42c8c9e70de4984eb7a0bee82589e058 /ishtar_common | |
parent | 989a900b776ef343554c91dc2183cdd78384786f (diff) | |
download | Ishtar-1df2033c836d763e0ec85501e26ace2abbd05edf.tar.bz2 Ishtar-1df2033c836d763e0ec85501e26ace2abbd05edf.zip |
Admin: improve files and common
* Town admin: OSM overlay
* add a File lookup
* improve considerably File edition (make it usable)
Diffstat (limited to 'ishtar_common')
-rw-r--r-- | ishtar_common/admin.py | 13 | ||||
-rw-r--r-- | ishtar_common/lookups.py | 22 |
2 files changed, 31 insertions, 4 deletions
diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py index 897ceaa6e..90f3067e3 100644 --- a/ishtar_common/admin.py +++ b/ishtar_common/admin.py @@ -17,9 +17,6 @@ # See the file COPYING for details. -""" -Admin description -""" import csv from ajax_select import make_ajax_form @@ -28,6 +25,7 @@ from django.conf import settings from django.contrib import admin from django.contrib.auth.admin import GroupAdmin, UserAdmin from django.contrib.auth.models import Group, User +from django.contrib.gis.forms import PointField, OSMWidget from django.http import HttpResponseRedirect, HttpResponse from django.shortcuts import render_to_response from django.template import RequestContext @@ -172,6 +170,14 @@ class PersonAdmin(HistorizedObjectAdmin): admin_site.register(models.Person, PersonAdmin) +class AdminTownForm(forms.ModelForm): + class Meta: + model = models.Town + exclude = [] + center = PointField(label=_(u"center"), required=False, + widget=OSMWidget) + + class TownAdmin(admin.ModelAdmin): list_display = ['name', ] search_fields = ['name'] @@ -181,6 +187,7 @@ class TownAdmin(admin.ModelAdmin): list_filter = ("departement",) readonly_fields = ['imports'] model = models.Town + form = AdminTownForm admin_site.register(models.Town, TownAdmin) diff --git a/ishtar_common/lookups.py b/ishtar_common/lookups.py index a031af9b3..ef2ff81f1 100644 --- a/ishtar_common/lookups.py +++ b/ishtar_common/lookups.py @@ -1,7 +1,27 @@ from ajax_select import register, LookupChannel +from django.conf import settings from django.db.models import Q -from ishtar_common.models import Person, Organization, IshtarUser +from ishtar_common.models import Person, Organization, IshtarUser, Town + + +@register('town') +class TownLookup(LookupChannel): + model = Town + + def get_query(self, q, request): + if settings.COUNTRY == 'fr': + query = Q() + for term in q.strip().split(' '): + query &= ( + Q(name__icontains=term) | Q(numero_insee__icontains=term) + ) + else: + query = Q(name__icontains=q) + return self.model.objects.filter(query).order_by('name')[:20] + + def format_item_display(self, item): + return u"<span class='ajax-label'>%s</span>" % unicode(item) @register('organization') |