diff options
| -rw-r--r-- | ishtar_common/admin.py | 11 | ||||
| -rw-r--r-- | ishtar_common/lookups.py | 15 | ||||
| -rw-r--r-- | ishtar_common/migrations/0047_auto_20180418_1802.py | 30 | ||||
| -rw-r--r-- | ishtar_common/models.py | 2 | 
4 files changed, 57 insertions, 1 deletions
| diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py index 726238f5b..637669f13 100644 --- a/ishtar_common/admin.py +++ b/ishtar_common/admin.py @@ -764,6 +764,17 @@ class AdministrationTaskAdmin(admin.ModelAdmin):  admin_site.register(models.AdministrationTask, AdministrationTaskAdmin) +class UserProfileAdmin(admin.ModelAdmin): +    list_display = ['person', 'profile_type'] +    list_filter = ['profile_type'] +    search_fields = ['person__raw_name'] +    model = models.UserProfile +    form = make_ajax_form(model, {'areas': 'area'}) + + +admin_site.register(models.UserProfile, UserProfileAdmin) + +  basic_models = [models.DocumentTemplate]  for model in basic_models: diff --git a/ishtar_common/lookups.py b/ishtar_common/lookups.py index f409536da..181fc97a1 100644 --- a/ishtar_common/lookups.py +++ b/ishtar_common/lookups.py @@ -2,7 +2,8 @@ from ajax_select import register, LookupChannel as BaseLookupChannel  from django.conf import settings  from django.db.models import Q -from ishtar_common.models import Person, Organization, IshtarUser, Town, Author +from ishtar_common.models import Area, Person, Organization, IshtarUser, Town, \ +    Author  class LookupChannel(BaseLookupChannel): @@ -105,3 +106,15 @@ class UserLookup(LookupChannel):      def format_item_display(self, item):          return u"<span class='ajax-label'>%s</span>" % unicode(item.person) + + +@register('area') +class AreaLookup(LookupChannel): +    model = Area + +    def get_query(self, q, request): +        query = Q(label__icontains=q) +        return self.model.objects.filter(query).order_by('label')[:20] + +    def format_item_display(self, item): +        return u"<span class='ajax-label'>%s</span>" % unicode(item) diff --git a/ishtar_common/migrations/0047_auto_20180418_1802.py b/ishtar_common/migrations/0047_auto_20180418_1802.py new file mode 100644 index 000000000..4a02e3041 --- /dev/null +++ b/ishtar_common/migrations/0047_auto_20180418_1802.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.10 on 2018-04-18 18:02 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + +    dependencies = [ +        ('ishtar_common', '0046_create_default_areas'), +    ] + +    operations = [ +        migrations.AlterModelOptions( +            name='area', +            options={'ordering': ('parent__label', 'label'), 'verbose_name': 'Area', 'verbose_name_plural': 'Areas'}, +        ), +        migrations.AddField( +            model_name='userprofile', +            name='areas', +            field=models.ManyToManyField(blank=True, related_name='profiles', to='ishtar_common.Area', verbose_name='Areas'), +        ), +        migrations.AlterField( +            model_name='area', +            name='parent', +            field=models.ForeignKey(blank=True, help_text='Only four level of parent are managed.', null=True, on_delete=django.db.models.deletion.CASCADE, to='ishtar_common.Area', verbose_name='Parent'), +        ), +    ] diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 1825335fd..ca4055fb2 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -2675,6 +2675,8 @@ post_delete.connect(post_save_cache, sender=ProfileType)  class UserProfile(models.Model):      profile_type = models.ForeignKey(          ProfileType, verbose_name=_(u"Profile type")) +    areas = models.ManyToManyField("Area", verbose_name=_(u"Areas"), +                                   blank=True, related_name='profiles')      current = models.BooleanField(_(u"Current profile"), default=False)      person = models.ForeignKey(          Person, verbose_name=_(u"Person"), related_name='profiles') | 
