diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-08-17 19:31:14 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-08-17 19:31:14 +0200 | 
| commit | 585c1206ce9d32ed70a74c0c4d25b510164389f2 (patch) | |
| tree | 5a05340c85d5a3d0d6bae556f8020d9ef914fede | |
| parent | 8c077c5d9c392e5eb7358610f4a843d4f74f3e72 (diff) | |
| download | Ishtar-585c1206ce9d32ed70a74c0c4d25b510164389f2.tar.bz2 Ishtar-585c1206ce9d32ed70a74c0c4d25b510164389f2.zip | |
Warehouse: fix division form int and save
| -rw-r--r-- | archaeological_warehouse/forms.py | 1 | ||||
| -rw-r--r-- | archaeological_warehouse/models.py | 10 | ||||
| -rw-r--r-- | archaeological_warehouse/templates/ishtar/sheet_warehouse.html | 1 | ||||
| -rw-r--r-- | ishtar_common/wizards.py | 14 | 
4 files changed, 21 insertions, 5 deletions
| diff --git a/archaeological_warehouse/forms.py b/archaeological_warehouse/forms.py index 350e48814..57992c7e2 100644 --- a/archaeological_warehouse/forms.py +++ b/archaeological_warehouse/forms.py @@ -76,7 +76,6 @@ SelectedDivisionFormset = formset_factory(  SelectedDivisionFormset.form_label = _(u"Divisions")  SelectedDivisionFormset.form_admin_name = _(u"Warehouse - 020 - Divisions")  SelectedDivisionFormset.form_slug = "warehouse-020-divisions" -SelectedDivisionFormset.form_through_name = "divisions"  class WarehouseSelect(TableSelect): diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py index bf7ea1eb6..bbcdd93d7 100644 --- a/archaeological_warehouse/models.py +++ b/archaeological_warehouse/models.py @@ -106,6 +106,14 @@ class Warehouse(Address, DashboardFormItem, OwnPerms):          return u"{}/{}".format(self.SLUG, slugify(self.name))      @property +    def location_types(self): +        return [ +            wd.division.label +            for wd in WarehouseDivisionLink.objects.filter( +                warehouse=self).order_by('order').all() +        ] + +    @property      def associated_filename(self):          return datetime.date.today().strftime('%Y-%m-%d') + '-' + \              slugify(unicode(self)) @@ -254,6 +262,8 @@ post_delete.connect(post_save_cache, sender=WarehouseDivision)  class WarehouseDivisionLink(models.Model): +    RELATED_SET_NAME = "divisions" +    RELATED_ATTRS = ["order"]      RELATIVE_MODELS = {Warehouse: 'warehouse'}      warehouse = models.ForeignKey(Warehouse, related_name='divisions')      division = models.ForeignKey(WarehouseDivision) diff --git a/archaeological_warehouse/templates/ishtar/sheet_warehouse.html b/archaeological_warehouse/templates/ishtar/sheet_warehouse.html index 84eb02ae9..1b16819b6 100644 --- a/archaeological_warehouse/templates/ishtar/sheet_warehouse.html +++ b/archaeological_warehouse/templates/ishtar/sheet_warehouse.html @@ -32,6 +32,7 @@      {% field_flex "Person in charge" item.person_in_charge %}      {% include "ishtar/blocks/sheet_creation_section.html" %}      {% include "ishtar/blocks/sheet_address_section.html" %} +    {% field_flex "Divisions" item.location_types|join:", " %}      {% field_flex_full "Comment" item.comment "<pre>" "</pre>" %}      {% include "ishtar/blocks/sheet_json.html" %}  </div> diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py index 6209a16c3..9a068063b 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -705,8 +705,11 @@ class Wizard(IshtarWizard):              related_model = getattr(obj, model + 's')              # manage through              if hasattr(related_model, 'through') and related_model.through: -                related_set_name = str( -                    related_model.through.__name__ + '_set').lower() +                if hasattr(related_model.through, "RELATED_SET_NAME"): +                    related_set_name = related_model.through.RELATED_SET_NAME +                else: +                    related_set_name = str( +                        related_model.through.__name__ + '_set').lower()                  if hasattr(obj, related_set_name):                      related_model = getattr(obj, related_set_name)              # clear real m2m @@ -732,6 +735,9 @@ class Wizard(IshtarWizard):                              (field.related_model == related_model.model or                               isinstance(obj, field.related_model)):                          continue +                    if field.name in getattr( +                            related_model.through, 'RELATED_ATTRS', []): +                        continue                      related_data[field.name] = None              if key not in m2m_items: @@ -1320,8 +1326,8 @@ class Wizard(IshtarWizard):          # manage through          through = False          if hasattr(related, 'through') and related.through: -            if hasattr(c_form, "form_through_name"): -                related_set_name = c_form.form_through_name +            if hasattr(related.through, "RELATED_SET_NAME"): +                related_set_name = related.through.RELATED_SET_NAME              else:                  related_set_name = str(                      related.through.__name__ + '_set').lower() | 
