diff options
Diffstat (limited to 'ishtar_common')
-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") |