summaryrefslogtreecommitdiff
path: root/ishtar_common/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@proxience.com>2015-05-12 21:11:23 +0200
committerÉtienne Loks <etienne.loks@proxience.com>2015-05-12 21:11:23 +0200
commit0d4f06d918dd82212403d41b9d88a53080ba724e (patch)
tree20f5f9c00c92450e5db4dd7d063efcb6cc575ebd /ishtar_common/models.py
parent35b163e7626a0f556ad32b303c1b9fa94cdf1d3e (diff)
downloadIshtar-0d4f06d918dd82212403d41b9d88a53080ba724e.tar.bz2
Ishtar-0d4f06d918dd82212403d41b9d88a53080ba724e.zip
Imports: add YearFormater formater - fix required columns management
Diffstat (limited to 'ishtar_common/models.py')
-rw-r--r--ishtar_common/models.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 23c2f3ac7..e79eb4253 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -58,7 +58,8 @@ from ishtar_common.ooo_replace import ooo_replace
from ishtar_common.model_merging import merge_model_objects
from ishtar_common.utils import get_cache
from ishtar_common.data_importer import Importer, ImportFormater, \
- IntegerFormater, FloatFormater, UnicodeFormater, DateFormater, TypeFormater
+ IntegerFormater, FloatFormater, UnicodeFormater, DateFormater, \
+ TypeFormater, YearFormater
def post_save_user(sender, **kwargs):
user = kwargs['instance']
@@ -1040,6 +1041,7 @@ class ImporterType(models.Model):
column.regexp_pre_filter.regexp)
formater_kwargs['duplicate_fields'] = [field.field_name
for field in column.duplicate_fields.all()]
+ formater_kwargs['required'] = column.required
formater = ImportFormater(targets, formater_types,
**formater_kwargs)
LINE_FORMAT.append(formater)
@@ -1154,7 +1156,8 @@ class Regexp(models.Model):
verbose_name = _(u"Importer - Regular expression")
verbose_name_plural = _(u"Importer - Regular expressions")
-IMPORTER_TYPES = []
+ def __unicode__(self):
+ return self.name
class ImportTarget(models.Model):
"""
@@ -1239,6 +1242,7 @@ IMPORTER_TYPES = (
('UnicodeFormater', _(u"String")),
('DateFormater', _(u"Date")),
('TypeFormater', _(u"Type")),
+ ('YearFormater', _(u"Year")),
)
IMPORTER_TYPES_DCT = {
@@ -1247,6 +1251,7 @@ IMPORTER_TYPES_DCT = {
'UnicodeFormater':UnicodeFormater,
'DateFormater':DateFormater,
'TypeFormater':TypeFormater,
+ 'YearFormater':YearFormater,
}
DATE_FORMATS = (
@@ -1269,6 +1274,7 @@ class FormaterType(models.Model):
verbose_name = _(u"Importer - Formater type")
verbose_name_plural = _(u"Importer - Formater types")
unique_together = ('formater_type', 'options', 'many_split')
+ ordering = ('formater_type', 'options')
def __unicode__(self):
return u" - ".join([unicode(dict(IMPORTER_TYPES)[self.formater_type])
@@ -1295,10 +1301,6 @@ class FormaterType(models.Model):
else:
model = import_class(self.options)
return TypeFormater(model, **kwargs)
- elif self.formater_type == 'IntegerFormater':
- return IntegerFormater(**kwargs)
- elif self.formater_type == 'FloatFormater':
- return FloatFormater(**kwargs)
elif self.formater_type == 'UnicodeFormater':
try:
return UnicodeFormater(int(self.options.strip()), **kwargs)
@@ -1306,6 +1308,8 @@ class FormaterType(models.Model):
return
elif self.formater_type == 'DateFormater':
return DateFormater(self.options, **kwargs)
+ else:
+ return IMPORTER_TYPES_DCT[self.formater_type](**kwargs)
IMPORT_STATE = (("C", _(u"Created")),
("AP", _(u"Analyse in progress")),