diff --git a/src/fellchensammlung/models.py b/src/fellchensammlung/models.py index 87608a7..38a5834 100644 --- a/src/fellchensammlung/models.py +++ b/src/fellchensammlung/models.py @@ -193,6 +193,17 @@ class RescueOrganization(models.Model): def adoption_notices(self): return AdoptionNotice.objects.filter(organization=self) + @property + def adoption_notices_in_hierarchy(self, adoption_notices=None): + """ + Shows all adoption notices of this rescue organization and all child organizations. + """ + adoption_notices_discovered = list(self.adoption_notices) + if self.child_organizations: + for child in self.child_organizations: + adoption_notices_discovered.extend(child.adoption_notices_in_hierarchy) + return adoption_notices_discovered + @property def position(self): if self.location: @@ -233,6 +244,7 @@ class RescueOrganization(models.Model): self.exclude_from_check = True self.save() + @property def child_organizations(self): return RescueOrganization.objects.filter(parent_org=self) diff --git a/src/fellchensammlung/templates/fellchensammlung/details/detail-rescue-organization.html b/src/fellchensammlung/templates/fellchensammlung/details/detail-rescue-organization.html index 02d9e54..305d6ab 100644 --- a/src/fellchensammlung/templates/fellchensammlung/details/detail-rescue-organization.html +++ b/src/fellchensammlung/templates/fellchensammlung/details/detail-rescue-organization.html @@ -76,7 +76,7 @@

{% translate 'Vermittlungen der Organisation' %}

{% if org.adoption_notices %} - {% for adoption_notice in org.adoption_notices %} + {% for adoption_notice in org.adoption_notices_in_hierarchy %} {% include "fellchensammlung/partials/partial-adoption-notice-minimal.html" %} {% endfor %} {% else %} diff --git a/src/fellchensammlung/templates/fellchensammlung/partials/partial-adoption-notice-minimal.html b/src/fellchensammlung/templates/fellchensammlung/partials/partial-adoption-notice-minimal.html index cc691de..8f78b56 100644 --- a/src/fellchensammlung/templates/fellchensammlung/partials/partial-adoption-notice-minimal.html +++ b/src/fellchensammlung/templates/fellchensammlung/partials/partial-adoption-notice-minimal.html @@ -15,13 +15,24 @@
-

- - {% if adoption_notice.location %} - {{ adoption_notice.location }} - {% else %} - {{ adoption_notice.location_string }} - {% endif %}

+ {% if adoption_notice.organization %} + + {% else %} +

+ + {% if adoption_notice.location %} + {{ adoption_notice.location }} + {% else %} + {{ adoption_notice.location_string }} + {% endif %} +

+ {% endif %}
{% include "fellchensammlung/partials/sex-overview.html" %}