diff options
Diffstat (limited to 'ishtar_common/views.py')
| -rw-r--r-- | ishtar_common/views.py | 20 | 
1 files changed, 15 insertions, 5 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 9d5256df5..d019da8ba 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -2733,7 +2733,7 @@ class GeoPreCreateView(IshtarMixin, LoginRequiredMixin, FormView):  class GeoFormMixin(IshtarMixin, LoginRequiredMixin):      form_class = forms.GISForm -    template_name = "ishtar/forms/base_related_items.html" +    template_name = "ishtar/forms/geo_form.html"      model = models.GeoVectorData      def _get_source(self, request): @@ -2776,22 +2776,32 @@ class GeoEditView(GeoFormMixin, UpdateView):          ):              value = getattr(geo, k)              if hasattr(value, "all"): -                value = ",".join([str(v.pk) for v in value.all()]) +                value = ",".join([str(v.pk) for v in value.all().order_by("pk")])              if hasattr(value, "pk"):                  value = value.pk              initial[k] = value          kwargs["main_items_fields"] = {} +        kwargs["too_many"] = {} +        LIMIT = 10          for k in models.GeoVectorData.RELATED_MODELS:              kwargs["main_items_fields"][k] = [] -            for related_item in getattr(geo, k).all(): -                key = "{}_{}_main_item".format(k, related_item.pk) +            values = [] +            for idx, related_item in enumerate(getattr(geo, k).all()): +                if idx >= LIMIT: +                    if k not in kwargs["too_many"]: +                        kwargs["too_many"][k] = [] +                    kwargs["too_many"][k].append(related_item.pk) +                    continue +                pk = str(related_item.pk) +                values.append(pk) +                key = "{}_{}_main_item".format(k, pk)                  kwargs["main_items_fields"][k].append(                      (key, "{} - {}".format(_("Main geo item for"), related_item))                  )                  if related_item.main_geodata == geo:                      initial[key] = True - +            initial[k] = ",".join(values)          kwargs["initial"] = initial          kwargs["user"] = self.request.user          return kwargs  | 
