diff options
| -rw-r--r-- | archaeological_files/models.py | 15 | ||||
| -rw-r--r-- | archaeological_operations/models.py | 27 | ||||
| -rw-r--r-- | ishtar_common/models.py | 2 | 
3 files changed, 24 insertions, 20 deletions
| diff --git a/archaeological_files/models.py b/archaeological_files/models.py index 4483e6401..391a3e8ce 100644 --- a/archaeological_files/models.py +++ b/archaeological_files/models.py @@ -32,6 +32,8 @@ from ishtar_common.models import GeneralType, BaseHistorizedItem, \      HistoricalRecords, OwnPerms, Person, Organization, Department, Town, \      Dashboard, DashboardFormItem, IshtarUser, ValueGetter, ShortMenuItem +from archaeological_operations.models import get_values_town_related +  class FileType(GeneralType):      class Meta:          verbose_name = _(u"Archaeological file type") @@ -232,18 +234,7 @@ class File(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,      def get_values(self, prefix=''):          values = super(File, self).get_values(prefix=prefix) -        values['adminact_associated_file_towns_count'] = unicode( -                                                            self.towns.count()) -        values['adminact_associated_file_towns'] = u", ".join( -                                   [unicode(town)for town in self.towns.all()]) - -        values[prefix+'towns'] = '' -        values[prefix+'towns_count'] = unicode(self.towns.count()) -        if self.towns.count(): -            values[prefix+'towns'] = u", ".join([town.name -                                 for town in self.towns.all().order_by('name')]) -        values[prefix+'parcellist'] = self.render_parcels() -        return values +        return get_values_town_related(self, prefix, values)      def render_parcels(self):          from archaeological_operations.models import Parcel diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 0823118e0..b4ff1809f 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -132,6 +132,25 @@ class ArchaeologicalSite(BaseHistorizedItem):              name += u" %s %s" % (settings.JOINT, self.name)          return name +def get_values_town_related(item, prefix, values): +    values[prefix+'parcellist'] = item.render_parcels() +    values[prefix+'towns'] = '' +    values[prefix+'departments'] = '' +    values[prefix+'departments_number'] = '' +    values[prefix+'towns_count'] = unicode(item.towns.count()) +    if item.towns.count(): +        values[prefix+'towns'] = u", ".join([town.name +                             for town in item.towns.all().order_by('name')]) +        if settings.COUNTRY == 'fr': +            dpts_num = set([town.numero_insee[:2] for town in item.towns.all()]) +            values[prefix+'departments_number'] = u", ".join( +                                                        list(sorted(dpts_num))) +            values[prefix+'departments'] = u", ".join([ +                        Department.objects.get(number=dpt).label +                for dpt in sorted(dpts_num) if Department.objects.filter( +                                                        number=dpt).count()]) +    return values +  class Operation(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,                  DashboardFormItem):      TABLE_COLS = ['year_index', 'operation_type', 'remains', 'towns', @@ -245,13 +264,7 @@ class Operation(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,      def get_values(self, prefix=''):          values = super(Operation, self).get_values(prefix=prefix) -        values[prefix+'towns'] = '' -        values[prefix+'towns_count'] = unicode(self.towns.count()) -        if self.towns.count(): -            values[prefix+'towns'] = u", ".join([town.name -                                 for town in self.towns.all().order_by('name')]) -        values[prefix+'parcellist'] = self.render_parcels() -        return values +        return get_values_town_related(self, prefix, values)      @property      def short_class_name(self): diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 4aa5e4949..460612e17 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -762,7 +762,7 @@ class DocumentTemplate(models.Model):          if empty_first:              yield ('', '----------')          items = cls.objects.filter(**dct) -        for item in items.order_by(*cls._meta.ordering).all(): +        for item in items.distinct().order_by(*cls._meta.ordering).all():              yield (item.pk, _(unicode(item)))      def publish(self, c_object): | 
