summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-08-29 16:56:27 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-08-29 16:56:27 +0200
commit2d810b66963245d12ac9e7d754a1f9e134f5a507 (patch)
treee5f20a49e83b7a4c8d1bc117fdf2513543ec3edc
parent7d337092ccd6a10ab2dcd6eb6f58c2e07bcf7a34 (diff)
downloadIshtar-2d810b66963245d12ac9e7d754a1f9e134f5a507.tar.bz2
Ishtar-2d810b66963245d12ac9e7d754a1f9e134f5a507.zip
Import models: add target key groups to manage target key by group (self explanatory)
-rw-r--r--ishtar_common/admin.py7
-rw-r--r--ishtar_common/migrations/0010_auto_20170829_1655.py39
-rw-r--r--ishtar_common/models.py4
-rw-r--r--ishtar_common/models_imports.py24
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")