diff options
| -rw-r--r-- | ishtar_common/admin.py | 7 | ||||
| -rw-r--r-- | ishtar_common/migrations/0010_auto_20170829_1655.py | 39 | ||||
| -rw-r--r-- | ishtar_common/models.py | 4 | ||||
| -rw-r--r-- | ishtar_common/models_imports.py | 24 | 
4 files changed, 70 insertions, 4 deletions
| diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py index 4af60fa90..a5d9624ee 100644 --- a/ishtar_common/admin.py +++ b/ishtar_common/admin.py @@ -295,6 +295,13 @@ class ImportAdmin(admin.ModelAdmin):  admin_site.register(models.Import, ImportAdmin) +class TargetKeyGroupAdmin(admin.ModelAdmin): +    list_display = ('name', 'all_user_can_use', 'all_user_can_modify', +                    'available') +    search_fields = ('name',) +admin_site.register(models.TargetKeyGroup, TargetKeyGroupAdmin) + +  class TargetKeyAdmin(admin.ModelAdmin):      list_display = ('target', 'importer_type', 'column_nb', 'key',                      'value', 'is_set') diff --git a/ishtar_common/migrations/0010_auto_20170829_1655.py b/ishtar_common/migrations/0010_auto_20170829_1655.py new file mode 100644 index 000000000..ee57865cb --- /dev/null +++ b/ishtar_common/migrations/0010_auto_20170829_1655.py @@ -0,0 +1,39 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11 on 2017-08-29 16:55 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + +    dependencies = [ +        ('ishtar_common', '0009_auto_20170829_1651'), +    ] + +    operations = [ +        migrations.CreateModel( +            name='TargetKeyGroup', +            fields=[ +                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), +                ('name', models.TextField(unique=True, verbose_name='Name')), +                ('all_user_can_use', models.BooleanField(default=False, verbose_name='All user can user it')), +                ('all_user_can_modify', models.BooleanField(default=False, verbose_name='All user can modify it')), +                ('available', models.BooleanField(default=True, verbose_name='Available')), +            ], +            options={ +                'verbose_name': 'Importer - Target key group', +                'verbose_name_plural': 'Importer - Target key groups', +            }, +        ), +        migrations.AddField( +            model_name='targetkey', +            name='associated_group', +            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='ishtar_common.TargetKeyGroup'), +        ), +        migrations.AlterUniqueTogether( +            name='targetkey', +            unique_together=set([('target', 'key', 'associated_user', 'associated_import', 'associated_group')]), +        ), +    ] diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 0c06f0b4d..c6643100f 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -63,12 +63,12 @@ from ishtar_common.utils import get_cache, disable_for_loaddata, create_slug,\  from ishtar_common.models_imports import ImporterModel, ImporterType, \      ImporterDefault, ImporterDefaultValues, ImporterColumn, \      ImporterDuplicateField, Regexp, ImportTarget, TargetKey, FormaterType, \ -    Import +    Import, TargetKeyGroup  __all__ = [      'ImporterModel', 'ImporterType', 'ImporterDefault', 'ImporterDefaultValues',      'ImporterColumn', 'ImporterDuplicateField', 'Regexp', 'ImportTarget', -    'TargetKey', 'FormaterType', 'Import' +    'TargetKey', 'FormaterType', 'Import', 'TargetKeyGroup'  ]  logger = logging.getLogger(__name__) diff --git a/ishtar_common/models_imports.py b/ishtar_common/models_imports.py index d638c76f1..065dfa4de 100644 --- a/ishtar_common/models_imports.py +++ b/ishtar_common/models_imports.py @@ -493,12 +493,31 @@ class ImportTarget(models.Model):          return self.associated_model.get_types() +class TargetKeyGroup(models.Model): +    """ +    Group of target keys for imports. +    """ +    name = models.TextField(_(u"Name"), unique=True) +    all_user_can_use = models.BooleanField(_(u"All user can user it"), +                                           default=False) +    all_user_can_modify = models.BooleanField(_(u"All user can modify it"), +                                              default=False) +    available = models.BooleanField(_(u"Available"), default=True) + +    class Meta: +        verbose_name = _(u"Importer - Target key group") +        verbose_name_plural = _(u"Importer - Target key groups") + +    def __unicode__(self): +        return self.name + +  class TargetKey(models.Model):      """      User's link between import source and ishtar database.      Also temporary used for GeneralType to point missing link before adding      them in ItemKey table. -    A targetkey connection can be create to be applied to on particular +    A targetkey connection can be create to be applied to one particular      import (associated_import), one particular user (associated_user) or to all      imports (associated_import and associated_user are empty).      """ @@ -508,10 +527,11 @@ class TargetKey(models.Model):      is_set = models.BooleanField(_(u"Is set"), default=False)      associated_import = models.ForeignKey('Import', blank=True, null=True)      associated_user = models.ForeignKey('IshtarUser', blank=True, null=True) +    associated_group = models.ForeignKey(TargetKeyGroup, blank=True, null=True)      class Meta:          unique_together = ('target', 'key', 'associated_user', -                           'associated_import') +                           'associated_import', 'associated_group')          verbose_name = _(u"Importer - Target key")          verbose_name_plural = _(u"Importer - Targets keys") | 
