summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2013-12-17 00:57:26 +0100
committerÉtienne Loks <etienne.loks@peacefrogs.net>2013-12-17 00:57:26 +0100
commit6f9b96da3256afe3acb4bf15e7a2df4502e3f45f (patch)
tree5e64004d9a476a349ff0aca85174cfc795072970
parentab08f491d15667aae9e49cb3c6f4c21afd6c6fbe (diff)
parentfc78e69c19e1d2c8e5e0d7fab1436dd9a6da436c (diff)
downloadIshtar-6f9b96da3256afe3acb4bf15e7a2df4502e3f45f.tar.bz2
Ishtar-6f9b96da3256afe3acb4bf15e7a2df4502e3f45f.zip
Merge branch 'master' of lysithea.proxience.net:/home/proxience/git/ishtar
-rw-r--r--archaeological_files/forms.py3
-rw-r--r--archaeological_files/management/__init__.py0
-rw-r--r--archaeological_files/management/commands/__init__.py0
-rw-r--r--archaeological_files/management/commands/fix_permittype.py33
-rw-r--r--ishtar_common/models.py22
5 files changed, 51 insertions, 7 deletions
diff --git a/archaeological_files/forms.py b/archaeological_files/forms.py
index 88d6cdcfa..4e0273e77 100644
--- a/archaeological_files/forms.py
+++ b/archaeological_files/forms.py
@@ -183,7 +183,8 @@ class FileFormPreventive(forms.Form):
super(FileFormPreventive, self).__init__(*args, **kwargs)
self.fields['saisine_type'].choices = models.SaisineType.get_types()
self.fields['saisine_type'].help_text = models.SaisineType.get_help()
- self.fields['permit_type'].choices = models.PermitType.get_types()
+ self.fields['permit_type'].choices = models.PermitType.get_types(
+ default='NP')
self.fields['permit_type'].help_text = models.PermitType.get_help()
class FinalFileClosingForm(FinalForm):
diff --git a/archaeological_files/management/__init__.py b/archaeological_files/management/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archaeological_files/management/__init__.py
diff --git a/archaeological_files/management/commands/__init__.py b/archaeological_files/management/commands/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archaeological_files/management/commands/__init__.py
diff --git a/archaeological_files/management/commands/fix_permittype.py b/archaeological_files/management/commands/fix_permittype.py
new file mode 100644
index 000000000..909952634
--- /dev/null
+++ b/archaeological_files/management/commands/fix_permittype.py
@@ -0,0 +1,33 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+import csv
+import datetime, time
+
+from django.conf import settings
+from django.core.management.base import BaseCommand, CommandError
+
+from archaeological_files.models import File, PermitType
+
+replaced = (('cu', 'CU'),
+ ('pc', 'PC'),
+ ('ei', 'EI'),
+ ('', 'NP')
+ )
+
+
+class Command(BaseCommand):
+ help = "Update file types"
+
+ def handle(self, *args, **options):
+ self.stdout.write("* Update file types\n")
+ for origin, dest in replaced:
+ permit_type = PermitType.objects.get(txt_idx=dest)
+ if origin:
+ File.objects.filter(permit_type__txt_idx=origin).update(
+ permit_type=permit_type)
+ PermitType.objects.filter(txt_idx=origin).update(available=False)
+ else:
+ File.objects.filter(permit_type__isnull=True).update(
+ permit_type=permit_type)
+
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 29906adef..611a6089c 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -239,20 +239,30 @@ class GeneralType(models.Model):
return u""
@classmethod
- def get_types(cls, dct={}, instances=False, exclude=[], empty_first=True):
+ def get_types(cls, dct={}, instances=False, exclude=[], empty_first=True,
+ default=None):
base_dct = dct.copy()
if hasattr(cls, 'parent'):
return cls._get_parent_types(base_dct, instances, exclude=exclude,
- empty_first=empty_first)
+ empty_first=empty_first, default=default)
return cls._get_types(base_dct, instances, exclude=exclude,
- empty_first=empty_first)
+ empty_first=empty_first, default=default)
@classmethod
- def _get_types(cls, dct={}, instances=False, exclude=[], empty_first=True):
+ def _get_types(cls, dct={}, instances=False, exclude=[], empty_first=True,
+ default=None):
dct['available'] = True
- if not instances and empty_first:
+ if not instances and empty_first and not default:
yield ('', '--')
+ if default:
+ try:
+ default = cls.objects.get(txt_idx=default)
+ yield(default.pk, _(unicode(default)))
+ except cls.DoesNotExist:
+ pass
items = cls.objects.filter(**dct)
+ if default:
+ exclude.append(default.txt_idx)
if exclude:
items = items.exclude(txt_idx__in=exclude)
for item in items.order_by(*cls._meta.ordering).all():
@@ -286,7 +296,7 @@ class GeneralType(models.Model):
@classmethod
def _get_parent_types(cls, dct={}, instances=False, exclude=[],
- empty_first=True):
+ empty_first=True, default=None):
dct['available'] = True
if not instances and empty_first:
yield ('', '--')