Compare commits

...

4 Commits

Author SHA1 Message Date
mpeltriaux c795d22e68 Merge pull request '535_Support_foreign_key_lookup_on_API_requests' (#536) from 535_Support_foreign_key_lookup_on_API_requests into master
Reviewed-on: #536
2026-05-10 10:13:13 +00:00
mpeltriaux 591527b048 # GET external identifier
* adds external_identifiers list to GET output
2026-05-10 12:10:15 +02:00
mpeltriaux 3de6a905e1 # External ID mapping deduction and KOM
* adds support for external id usage on deduction creation for both ecoaccount and intervention
* adds support for external id usage on compensation's intervention reference
2026-05-10 12:05:32 +02:00
mpeltriaux 9632e59456 # Bugfix
* fixes bug on rendering table rpp selection due to changed behaviour of Django's querystring template tag on recent version upgrade
2026-05-10 11:39:54 +02:00
4 changed files with 22 additions and 1 deletions
+5
View File
@@ -88,6 +88,11 @@ class CompensationAPISerializerV1(AbstractModelAPISerializerV1, AbstractCompensa
# Nothing to do here
return obj
# Transform a potential external identifier into an internal one
intervention_ext_id = self._get_external_identifier(intervention_id)
if intervention_ext_id:
intervention_id = intervention_ext_id.internal_id
intervention = Intervention.objects.get(
id=intervention_id,
)
+8
View File
@@ -62,6 +62,14 @@ class DeductionAPISerializerV1(AbstractModelAPISerializerV1,
if surface <= 0:
raise ValueError("Surface must be > 0 m²")
# Check if external identifiers need to be mapped onto internal ones
acc_ext_id = self._get_external_identifier(acc_id)
intervention_ext_id = self._get_external_identifier(intervention_id)
if acc_ext_id:
acc_id = acc_ext_id.internal_id
if intervention_ext_id:
intervention_id = intervention_ext_id.internal_id
acc = EcoAccount.objects.get(
id=acc_id,
deleted__isnull=True,
+8
View File
@@ -40,12 +40,20 @@ class AbstractModelAPISerializerV1(AbstractModelAPISerializer):
else:
geom = MultiPolygon().geojson
geo_json = json.loads(geom)
ext_ids = list(
ExternalIdentifier.objects.filter(
internal_id=entry.id
).values_list(
"external_id", flat=True
)
)
self.properties_data = {
"id": entry.id,
"identifier": entry.identifier,
"title": entry.title,
"created_on": self._created_on_to_json(entry),
"modified_on": self._modified_on_to_json(entry),
"external_identifiers": ext_ids,
}
self._extend_properties_data(entry)
geo_json["properties"] = self.properties_data
+1 -1
View File
@@ -70,7 +70,7 @@
</div>
<div class="dropdown-menu dropdown-menu-right">
{% for rpp_option in table.results_per_page_choices %}
<a class="dropdown-item {% if table.results_per_page_chosen == rpp_option %}selected{% endif %}" href="{% querystring table.results_per_page_parameter=rpp_option %}">
<a class="dropdown-item {% if table.results_per_page_chosen == rpp_option %}selected{% endif %}" href="{% querystring %}&{{ table.results_per_page_parameter}}={{rpp_option }}">
{{ rpp_option }}
</a>
{% endfor %}