From 7bb8089c6faeaa7ee74328b32aaf7ef22a7f3078 Mon Sep 17 00:00:00 2001 From: Joaquim Nallar Date: Thu, 9 Jan 2025 21:41:38 +0100 Subject: [PATCH] feat: some stats on territory sheet (#540) --- atlas/atlasRoutes.py | 7 +++ atlas/messages.pot | 28 ++++++++++- .../modeles/repositories/tZonesRepository.py | 39 +++++++++++++++ .../repositories/vmOrganismsRepository.py | 13 +++++ .../vmStatsStatutTaxonCommRepository.py | 46 ++++++++++++++++++ atlas/static/css/territorySheet.css | 20 ++++++++ .../static/custom/images/logo_protection.png | Bin 0 -> 3355 bytes atlas/templates/areaSheet/_main.html | 39 +++++++++------ atlas/templates/core/statHierarchy.html | 36 ++++++++++++++ atlas/translations/en/LC_MESSAGES/messages.mo | Bin 5664 -> 5936 bytes atlas/translations/en/LC_MESSAGES/messages.po | 28 ++++++++++- atlas/translations/fr/LC_MESSAGES/messages.mo | Bin 6069 -> 6358 bytes atlas/translations/fr/LC_MESSAGES/messages.po | 28 ++++++++++- atlas/translations/it/LC_MESSAGES/messages.mo | Bin 5938 -> 6213 bytes atlas/translations/it/LC_MESSAGES/messages.po | 28 ++++++++++- docs/changelog.rst | 1 + 16 files changed, 290 insertions(+), 23 deletions(-) create mode 100644 atlas/modeles/repositories/vmStatsStatutTaxonCommRepository.py create mode 100644 atlas/static/css/territorySheet.css create mode 100644 atlas/static/custom/images/logo_protection.png diff --git a/atlas/atlasRoutes.py b/atlas/atlasRoutes.py index cfb247321..783d82b9a 100644 --- a/atlas/atlasRoutes.py +++ b/atlas/atlasRoutes.py @@ -31,6 +31,7 @@ vmMedias, vmCorTaxonAttribut, vmTaxonsMostView, + vmStatsStatutTaxonCommRepository, ) @@ -292,6 +293,9 @@ def ficheZone(id_zone): connection = db.engine.connect() listTaxons = vmTaxonsRepository.getTaxonsZones(connection, id_zone) + taxon_pro_patri = vmStatsStatutTaxonCommRepository.get_nb_taxon_pro_pat_zone(connection, id_zone) + nb_organism = vmOrganismsRepository.get_nb_organism_on_zone(connection, id_zone) + infosCommune = tZonesRepository.get_infos_zone(connection, id_zone) zone = tZonesRepository.getZoneFromIdZone(connection, id_zone) if current_app.config["AFFICHAGE_MAILLE"]: @@ -319,6 +323,9 @@ def ficheZone(id_zone): observers=observers, DISPLAY_EYE_ON_LIST=True, id_zone=id_zone, + taxonProPatri=taxon_pro_patri, + nb_organism = nb_organism, + infosCommune = infosCommune, ) diff --git a/atlas/messages.pot b/atlas/messages.pot index 9fdc21ee8..dac997b14 100644 --- a/atlas/messages.pot +++ b/atlas/messages.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2025-01-08 14:03+0100\n" +"POT-Creation-Date: 2025-01-09 21:50+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -127,7 +127,7 @@ msgstr "" msgid "atlas.presentation" msgstr "" -#: atlas/templates/areaSheet/_main.html:55 +#: atlas/templates/areaSheet/_main.html:63 msgid "last.obs.zone" msgstr "" @@ -274,6 +274,30 @@ msgstr "" msgid "observer" msgstr "" +#: atlas/templates/core/statHierarchy.html:23 +msgid "sources" +msgstr "" + +#: atlas/templates/core/statHierarchy.html:23 +msgid "source" +msgstr "" + +#: atlas/templates/core/statHierarchy.html:28 +msgid "first_observation" +msgstr "" + +#: atlas/templates/core/statHierarchy.html:33 +msgid "last_observation" +msgstr "" + +#: atlas/templates/core/statHierarchy.html:38 +msgid "protected_species" +msgstr "" + +#: atlas/templates/core/statHierarchy.html:44 +msgid "patrimonial_species" +msgstr "" + #: atlas/templates/core/tabTaxons.html:7 msgid "group" msgstr "" diff --git a/atlas/modeles/repositories/tZonesRepository.py b/atlas/modeles/repositories/tZonesRepository.py index a8f5de6c6..b070ea344 100644 --- a/atlas/modeles/repositories/tZonesRepository.py +++ b/atlas/modeles/repositories/tZonesRepository.py @@ -81,3 +81,42 @@ def getZonesObservationsChilds(connection, cd_ref): municipality = {"id_zone": r.id_zone, "area_name": r.area_name} municipalities.append(municipality) return municipalities + +def get_infos_zone(connection, id_zone): + """ + Get zone info: + yearmin: fisrt observation year + yearmax: last observation year + id_parent: id parent zone + area_name: name parent zone + area_type_name: type parent zone + """ + sql = """ +SELECT + MIN(extract(YEAR FROM o.dateobs)) AS yearmin, + MAX(extract(YEAR FROM o.dateobs)) AS yearmax, + z.id_parent, + (SELECT area_name FROM atlas.zoning WHERE id_zone = z.id_parent) AS area_parent_name, + (SELECT type.type_name + FROM atlas.zoning AS zone + JOIN ref_geo.bib_areas_types type + ON type.id_type = zone.id_zoning_type + WHERE zone.id_zone = z.id_parent) AS area_parent_type_name +FROM atlas.vm_observations o + JOIN atlas.zoning z ON z.id_zone = o.id_zone +WHERE o.id_zone = :id_zone +GROUP BY z.id_parent + """ + + result = connection.execute(text(sql), id_zone=id_zone) + info_zone = dict() + for r in result: + info_zone = { + 'yearmin': r.yearmin, + 'yearmax': r.yearmax, + 'id_parent': r.id_parent, + 'parent_name': r.area_parent_name, + 'parent_type_name': r.area_parent_type_name + } + + return info_zone diff --git a/atlas/modeles/repositories/vmOrganismsRepository.py b/atlas/modeles/repositories/vmOrganismsRepository.py index e29abf5dc..05bfdd243 100644 --- a/atlas/modeles/repositories/vmOrganismsRepository.py +++ b/atlas/modeles/repositories/vmOrganismsRepository.py @@ -88,3 +88,16 @@ def getTaxonRepartitionOrganism(connection, id_organism): temp = {"group2_inpn": r.group2_inpn, "nb_obs_group": int(r.nb_obs_group)} ListGroup.append(temp) return ListGroup + +def get_nb_organism_on_zone(connection, id_zone): + sql = """SELECT DISTINCT COUNT(cto.nom_organism) AS nb_organism +FROM atlas.vm_observations o +JOIN atlas.vm_cor_taxon_organism cto ON cto.cd_ref = o.cd_ref +WHERE o.id_zone = :id_zone + """ + res = connection.execute(text(sql), id_zone=id_zone) + result = dict() + for r in res: + result = r.nb_organism + return result + diff --git a/atlas/modeles/repositories/vmStatsStatutTaxonCommRepository.py b/atlas/modeles/repositories/vmStatsStatutTaxonCommRepository.py new file mode 100644 index 000000000..94be03373 --- /dev/null +++ b/atlas/modeles/repositories/vmStatsStatutTaxonCommRepository.py @@ -0,0 +1,46 @@ +# -*- coding:utf-8 -*- + +from sqlalchemy.sql import text + + +# get nombre taxons protégés et nombre taxons patrimoniaux par communes +def get_nb_taxon_pro_pat_zone(connection, id_zone): + sql = """ +SELECT + COUNT(t.patrimonial) AS nb_taxon_patrimonial, COUNT(t.protection_stricte) AS nb_taxon_protege +FROM atlas.vm_observations o + JOIN atlas.vm_taxons t ON t.cd_ref=o.cd_ref + JOIN atlas.zoning zone ON st_intersects(o.the_geom_point, zone.the_geom_4326) +WHERE zone.id_zone = :thisIdZone + """ + req = connection.execute(text(sql), thisIdZone=id_zone) + taxonProPatri = dict() + for r in req: + taxonProPatri = { + 'nbTaxonPro': r.nb_taxon_protege, + 'nbTaxonPatri': r.nb_taxon_patrimonial + } + return taxonProPatri + + +# # get stats sur les statuts des taxons par communes +# def getStatsStatutsTaxonsCommunes(connection, insee): +# sql = """ +# SELECT +# nb_taxon_que_pro, +# nb_taxon_que_patri, +# nb_taxon_pro_et_patri, +# nb_taxon_sans_statut +# FROM atlas.vm_stats_statut_taxon_comm a +# WHERE a.insee = :thisinsee +# """.encode('UTF-8') +# +# mesStatutsTaxons = connection.execute(text(sql), thisinsee=insee) +# for inter in mesStatutsTaxons: +# return [ +# {'label': "Taxons protégés", 'y': inter.nb_taxon_que_pro}, +# {'label': "Taxons patrimoniaux", 'y': inter.nb_taxon_que_patri}, +# {'label': "Taxons protégés et patrimoniaux", 'y': inter.nb_taxon_pro_et_patri}, +# {'label': "Autres taxons", 'y': inter.nb_taxon_sans_statut}, +# ] +# diff --git a/atlas/static/css/territorySheet.css b/atlas/static/css/territorySheet.css new file mode 100644 index 000000000..43b98fa03 --- /dev/null +++ b/atlas/static/css/territorySheet.css @@ -0,0 +1,20 @@ +img.patrimonial_img { + width: 1rem; +} + +.info_zone_card { + width: 100%; + justify-items: center; + padding: 1rem; +} + +.specie_list_map_block { + display: flex; + height: 100%; +} + +.stats_block { + display: flex; + flex-direction: column; + height: 100%; +} diff --git a/atlas/static/custom/images/logo_protection.png b/atlas/static/custom/images/logo_protection.png new file mode 100644 index 0000000000000000000000000000000000000000..628610893650c3c59c4250592bbf23a348bc9dcb GIT binary patch literal 3355 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 literal 0 HcmV?d00001 diff --git a/atlas/templates/areaSheet/_main.html b/atlas/templates/areaSheet/_main.html index 3106b4d8b..e225c4ac8 100644 --- a/atlas/templates/areaSheet/_main.html +++ b/atlas/templates/areaSheet/_main.html @@ -18,6 +18,7 @@ + {% endblock %} @@ -39,26 +40,34 @@ {% block content %} {# Ajoutez ici coeur de la page #} -
-
-
- {% if configuration.EXTENDED_AREAS %} - {% include 'templates/areaSheet/surrounding_areas.html' %} - {% endif %} +
+ +
+

{{ areaInfos.typeName }} - {{ areaInfos.areaName }}

{% include 'templates/core/statHierarchy.html' %}
- {% include 'templates/core/listTaxons.html' %}
-
-
-
{{ configuration.NB_LAST_OBS }} {{ _('last.obs.zone') }} - {{ areaInfos.areaName }}
+
+ +
+
+ {% if configuration.EXTENDED_AREAS %} + {% include 'templates/areaSheet/surrounding_areas.html' %} + {% endif %} +
+ {% include 'templates/core/listTaxons.html' %}
-
-
- {% include 'templates/core/loaderSpinner.html' %} -
+
+
+
{{ configuration.NB_LAST_OBS }} {{ _('last.obs.zone') }} + {{ areaInfos.areaName }}
+
+
+
+ {% include 'templates/core/loaderSpinner.html' %} +
+
diff --git a/atlas/templates/core/statHierarchy.html b/atlas/templates/core/statHierarchy.html index f65fd8216..837094d91 100644 --- a/atlas/templates/core/statHierarchy.html +++ b/atlas/templates/core/statHierarchy.html @@ -16,6 +16,42 @@
{{ observers | length | pretty }}
{{ _('observers')|lower if observers|length > 1 else _('observer')|lower }}
+ +
+ +
{{ nb_organism }} +
{{ _('sources')|lower if nb_organism > 1 else _('source')|lower }} +
+
+ +
{{ infosCommune.yearmin }} +
{{ _('first_observation')|lower }} +
+
+ +
{{ infosCommune.yearmax}} +
{{ _('last_observation')|lower }} +
+
+ +
{{ taxonProPatri.nbTaxonPatri }} +
{{ _('protected_species')|lower }} +
+ {% if configuration.DISPLAY_PATRIMONIALITE %} +
+ +
{{ taxonProPatri.nbTaxonPro }} +
{{ _('patrimonial_species')|lower }} +
+ {% endif %} + + {% if infosCommune.id_parent %} +
+ +
{{ infosCommune.parent_type_name }} +
{{ infosCommune.parent_name }} +
+ {% endif %}
{% endblock %} diff --git a/atlas/translations/en/LC_MESSAGES/messages.mo b/atlas/translations/en/LC_MESSAGES/messages.mo index 3ba22955b1c3fd570c3155c55e7159eb315f678b..ec0b45a13d89864a3f1a30d6e69a12aeb1b80db7 100644 GIT binary patch delta 1904 zcmY+@YiQF~7{~D^Yinzo#x$mBHJwYvdPCj3SD71>2~JQ8^Mat$+WwUcYf2IoyhRiQ zvDuq$REMY(LADoONCl~{oYz)FH`rcGErJzM6qVwT!EoQ7J*!(u^Ev1I&pFTYob%6# zDQBl;`@)6a8-JVlujYSwfqL)%+J>2x(#>HJ9>EcK9Q}C4^}BH-{a)1kKCHs07{!8O zvj~pHAbyPHW?B1;h88wp7@LtbwjBew2Sa!WwZT!;{Bx)PS5b-ep#t|KAA8AHA--|r zf1~yrUNRUbidDq7Ni?)^J!*qhs0^EMIHr(HZ5NKlZ&3k%be?gZcV2W}!ZPMvcm3Z` z3Ef2%`T$1}-v(%CVj0mCD27U8D)PwYxqdxr-cr(; zs?aVRg*}*!(Rk=4yhSYxaIsoYg-W0nd1TYvc%2(xh`QUQsEs{Tz#YzmsC9=?6?dW% zKaYIunxFI6UH(E(l|4e;{eYYB7wSZc$cm;_qBb0hN^}ZedKv4m5*MKoSdV-x$(Ppe zM4eO)wSPP6#C|B{{MG1WKneVWAL0d6V!ylbr>_47bs_^%;uW+9QAwvRZu~ebjQ#L;$@tQWAPR0s3OdkwW#qquD=>9=zoJsbT8_Nze81c z3UyMak&j*AOY?4^=G{ZR%-I(-l$oC>svv~A(`wY)I@68UAs_pKuQ;wiCA1B7_eW6c zPb0ZoH|pqnoOe-$K1b~v;2~zMe6V3rXUrK#ZB&a&aF!dNkK}BhV+TjP40R=sDNFCb zOH?8yl&eZ3s7fc`M_7;KU>h)~-+!8h?qZ*NkV92;?A-*jJaUcpvm3vS+OQw>>v@a1 ziWrL&csgqS0#ss)QCIO5*5X<>z8}l=`){K$4v(QKzKnV)e?=|)11Zw_Q5F1&+9*m? zV%w*vm$w0R_g|w5@=)tqU4I{HzZ@#T4$SH(PtwqxccB*CL?v<`iDl1FSKwok0u-YX z3_7FEF}RZP@u-4!qY~>xC3+ThB3Dqqo?B6FOdG#ofEe}~wXn1@KY7@IFO*27GwYHY z(q3v?V&VAye{49H6^@s`x5^|zt=p}ZSn6Z zOKwdyd6s@hI{(C9?JJ%apD}&@>`(H6KxLtCV?G=@@Ih!ZA>#iDo9_ts`bM_Cj}iYj f#`;K2d21?}@tQJT^U&zt$bsNskfB&b6*1pG9QDE_SNZLxI4Iv#ZU1%!B zq%;xn=z_)u+DkuqJWzkfKSBPj3m00lo$w^G^oX@%E-uplQ^FQ}qo_e-8I+*G0 zGJe(k^Z17ob@u;PoMh(bbPA5Zc{myuV=At3=bJE#^PQ;sn{h0*V-S0A4Bo;~_zW}5 zqBclJ4-R1_dXvrQS~jL(2-9&gD!>BN{gtQ*wxbejMooMOIqWEn7rWi~X;i#k)I2wE zEc07G9R+@a3NVbyFfqlNy|TD)9hnrD4>CFn#a!I#uJ6aF z9z5&@x{z3Q9y#oi8^7+x@1gec3I3}XYQkY>5-$W@3!qk7fJ(3wIjn+43t5fY;;K~Y zuM0IavYti(_M#Fyh|)($Lt*H`ZS`*S*Yt}$XvD(Lm0t6Y{UsTkE~URDrX&P zygBLy&S8LotEfyLp-MP_D%Dq1WqzV2RHOUSQTK&WFXN&Q34KJpgu|%k{-Eyjk(Cn9 zMa3z@f8T#K9qn-gY9&q17F2)^R6-|^l35RGPvfY-k5Lm3AcuXXQK_{mC6eSEg%Qq! zsD$fqHZQ0hr$dr<7PaDQsITD;D$pzBuy-_i@OL2Ip7h-l>r8nXulLn@V((LnVj+K1 syvLv8NuFC+GIRd)8S(pR+1~h<^u~nv?yP=KY;B-0)*5Jw2ZK4DzdFg1m;e9( diff --git a/atlas/translations/en/LC_MESSAGES/messages.po b/atlas/translations/en/LC_MESSAGES/messages.po index 684a367cd..b357d51f1 100644 --- a/atlas/translations/en/LC_MESSAGES/messages.po +++ b/atlas/translations/en/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2025-01-08 14:03+0100\n" +"POT-Creation-Date: 2025-01-09 21:50+0100\n" "PO-Revision-Date: 2021-07-12 12:12+0200\n" "Last-Translator: FULL NAME \n" "Language: en\n" @@ -134,7 +134,7 @@ msgstr "Search by area" msgid "atlas.presentation" msgstr "Atlas presentation" -#: atlas/templates/areaSheet/_main.html:55 +#: atlas/templates/areaSheet/_main.html:63 msgid "last.obs.zone" msgstr "Latest observations in the zone" @@ -284,6 +284,30 @@ msgstr "Observers" msgid "observer" msgstr "Observer" +#: atlas/templates/core/statHierarchy.html:23 +msgid "sources" +msgstr "sources" + +#: atlas/templates/core/statHierarchy.html:23 +msgid "source" +msgstr "source" + +#: atlas/templates/core/statHierarchy.html:28 +msgid "first_observation" +msgstr "first observation" + +#: atlas/templates/core/statHierarchy.html:33 +msgid "last_observation" +msgstr "last observation" + +#: atlas/templates/core/statHierarchy.html:38 +msgid "protected_species" +msgstr "protected species" + +#: atlas/templates/core/statHierarchy.html:44 +msgid "patrimonial_species" +msgstr "patrimonial species" + #: atlas/templates/core/tabTaxons.html:7 msgid "group" msgstr "Group" diff --git a/atlas/translations/fr/LC_MESSAGES/messages.mo b/atlas/translations/fr/LC_MESSAGES/messages.mo index a37cb59bd59e4eb2d5f2212c44fc54c27239a7d1..4ce17fdfb6b71b3b4927641edbbb795e5fae0732 100644 GIT binary patch delta 1901 zcmY+_e@K;A9LMqV%pckHn!k3hH?MQIC{~eEN5kBhFd>+KbSY?zjfT1Fle;6m?mjmI zb6(v3nM}vKOOv5@p~jkt&N|dd}9h}4r3mUVKGji56{{5MJ%U%9W{Ol zLwFB^n6t^4XR#8uU@ev!lQvB}=)*%;hV95V<`nv|A4~8v)C6ZxmSUfki}9pfDE9wU;+(X=S%jd%t1_{EMnc9$E2dDo_({MQ%li;TBPopX|jG8}#s@QlT_1D8B9ZFyppTi5N#1?J;J=fGw!QoNnboAM_%Z8Q`XXBdF6lgId{HROS~^2```$ zx{o?cmDE}D>_eS}S5biuS&!rMwEOTGJhN`vOxTV|R4J#d-=X&MJZj?0sI9t+3h*;( zre#!uw^?ok|3S6O7^DQMQ3>v|Ms5H5SgODOejeBk^95?&Uj5KT#8|qE3AYS!plB zsM6QsE(MH`&vciYK}<;eua^+n(;r-Yq!pl(nUj@y^=lsw855CLqTpAck^ji#-R#b!*wc1*@@oQAJ3!7N}y z4D{d_CZadejG_544l{5%E=C1djkn z3hO`>@CZ5VnVY{x1$>VxU=*p*#!#L4iFz)YYE`%owbE?V!tzlGH{(n!bKlouKo2&# z3s;a>)`lE*$6fDq*LzU!@&*3u7%JhUGlC7l(0r(sW}*r#Kn~l$Ned}Kz2f~b^j}|8 za+1}Y6rcuGSUqa9wV)qwq7puE-#?)nmR=l# zz=r__dhjD=;W+BXB(lmJRI4_jRt27P!DwMlQI?(adx?L{RVL~X)vsD(|S z3J-*Fmn!z5Dk?^8mI_p$TGYF)MH7T_G0+3MQ3;Quem*sB-st9+a1qyUqTc;;Q~_^MfrpW\n" "Language: fr\n" @@ -136,7 +136,7 @@ msgstr "Recherche par zone" msgid "atlas.presentation" msgstr "Présentation de l'atlas" -#: atlas/templates/areaSheet/_main.html:55 +#: atlas/templates/areaSheet/_main.html:63 msgid "last.obs.zone" msgstr "Dernière observations : " @@ -286,6 +286,30 @@ msgstr "Observateurs" msgid "observer" msgstr "Observateur" +#: atlas/templates/core/statHierarchy.html:23 +msgid "sources" +msgstr "sources" + +#: atlas/templates/core/statHierarchy.html:23 +msgid "source" +msgstr "source" + +#: atlas/templates/core/statHierarchy.html:28 +msgid "first_observation" +msgstr "première observation" + +#: atlas/templates/core/statHierarchy.html:33 +msgid "last_observation" +msgstr "dernière observation" + +#: atlas/templates/core/statHierarchy.html:38 +msgid "protected_species" +msgstr "espèces protectégés" + +#: atlas/templates/core/statHierarchy.html:44 +msgid "patrimonial_species" +msgstr "espèces patrimoniales" + #: atlas/templates/core/tabTaxons.html:7 msgid "group" msgstr "Groupe" diff --git a/atlas/translations/it/LC_MESSAGES/messages.mo b/atlas/translations/it/LC_MESSAGES/messages.mo index 8fbc49b84e7f5c49b93df8548d735bfeba450993..78434f80df2f45b2aa3f2c8d877f881aba7d59b5 100644 GIT binary patch delta 1906 zcmY+^O=whC7{>8;ViJ?djERY35|irKR%66yTKi!H1p{hbs9jh@5aXC!<(5otm>DZ- za7qIOYjoitq@`7e(4q@d9WAY0h?TTxH+7*1N)$f|nnkri6jAj5m}8~k=Kjt(_k6tP zJ@?LuxkJs_;mX1T#@`nH>-k?ZPPNy6eZ^*FRQF;LevRdL2*Wt&>Zh@a`UO<~VXVP> zI2p%{H=Bf0a01T5iDp?_OhE%b#!Bo!#@IHD;4ZAdJ*Wx3MfE?9T3`qj*f470+sI}2 zxfSAL*ZvGOUuntMI+L-6^{tVDCT>Mduoe|zJCi(?WHqK$?(8*5c}|sD7(Z8Cj1CB#GK_+O_XQjqgKk zq#w2OA5a@TiM4nhvvm}1xem`!10x))2GpPen1MX9xvqVIYhQ{w+f}HEJ=B6boV!uu z`cXR`Km~pZx$O5a`PW%qq^6zSL7n}m>+l4Xks_j^Xw|3*-$VsEhnrr;1z3$Ap#s>5 zTo!QC_?@Us?M2O>LuKrnGV-s&01XP@D87L|qXN6^+V8pgV^l^Wq-Q$DP!oTMJhDZo zfL35%$ZQ>||KCime*d5{@DLS9ah7mrP>A9=oR4qgBh-%SnN0)U!v2G}M{TcP_)3)YoAFem-W_dMW5P=S$~T&V9(7wjUM9Vbtey6xoao z;yF@$26cqJtg4;uL2cv+Dv+PJX+swRZI)>`le4)MRh!kO63Vu>W8oi zN07^EiAw$Ep^kDf@_yNJRHi;bHfx@%Z%2JayHW3-bAYvK_a^fv#C%{ZwhKf8D| zRN<%6nYLh4+DmxD6cvjf! z_^+A_?}`RnQ|+FmUy{z>4cCXpx5VFlXW{$J`AFo8!ccd7Qf50%|Tbj&p(JQ G3B3TQUfw_e delta 1658 zcmYM!TS(MF6vy$ix^7-eO?S(3H83kn^Ac8)6c~{ZN|8iSkf>e3r-;IEsVq=Rt3?P( zq6>la5V%;PkdanIQPBm0N+HBRdk70MdZ_PD23r36|IGX^bIzHW-N%JJ1)-5tZ>RC8 z<-3q?PPBUeKP!A@33T%@2G`;oT#xZs?fScLF8xEO=bLdJwxJ(yVjA}2Ydd7R$~&+)wq5gDv^Vzz>PQ`Pht}B?FtR1 z!n#oj3?PR+b^X_<0Y9Mgsq(Z7tOT0Ut`PYp) zPO_1c1~`sN>@;e#bzlImp#t7__n)9h{^8b@uqD57iNOw@BZs9j%zLEM6>@Gxd!D=NWm)E?+TE!7}uoOh_g zKB5u{eWjs{r=3Br>VIG(s=`{-)a^&DX%psRJ4Ruzvk&#xG2k3@4k3p<<)j2YpneUb zNXU?l(HLTCf1=i|k0`3>A*zBAR05NzO8#Oxrg2e~R*CEv+lIupy~q^V5!A1u1vOwhYKgi~yT2cm$P3i_pHY=hqQ;#V-2jlwlb4!fjlNcX4LTP@8iU3(*sZwE2E`!X2?MBaLzOp73~lZaA25 uG;%W`!!v75cG0S`!ji~v;wf)rXUf&6NL*TSRCuL7H{9UA6p0CJ@caX_|Cx3G diff --git a/atlas/translations/it/LC_MESSAGES/messages.po b/atlas/translations/it/LC_MESSAGES/messages.po index 4da1e6cce..09803c0a6 100644 --- a/atlas/translations/it/LC_MESSAGES/messages.po +++ b/atlas/translations/it/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" -"POT-Creation-Date: 2025-01-08 14:03+0100\n" +"POT-Creation-Date: 2025-01-09 21:50+0100\n" "PO-Revision-Date: 2021-07-19 09:53+0200\n" "Last-Translator: FULL NAME \n" "Language: it\n" @@ -135,7 +135,7 @@ msgstr "Ricerca per zona" msgid "atlas.presentation" msgstr "Presentazione dell'atlante" -#: atlas/templates/areaSheet/_main.html:55 +#: atlas/templates/areaSheet/_main.html:63 msgid "last.obs.zone" msgstr "Ultime osservazioni: " @@ -285,6 +285,30 @@ msgstr "Osservatori" msgid "observer" msgstr "Osservatori" +#: atlas/templates/core/statHierarchy.html:23 +msgid "sources" +msgstr "fonti" + +#: atlas/templates/core/statHierarchy.html:23 +msgid "source" +msgstr "Origine" + +#: atlas/templates/core/statHierarchy.html:28 +msgid "first_observation" +msgstr "prima osservazione" + +#: atlas/templates/core/statHierarchy.html:33 +msgid "last_observation" +msgstr "ultima osservazione" + +#: atlas/templates/core/statHierarchy.html:38 +msgid "protected_species" +msgstr "specie protette" + +#: atlas/templates/core/statHierarchy.html:44 +msgid "patrimonial_species" +msgstr "specie del patrimonio" + #: atlas/templates/core/tabTaxons.html:7 msgid "group" msgstr "Gruppo" diff --git a/docs/changelog.rst b/docs/changelog.rst index 49c168165..1e937784a 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -10,6 +10,7 @@ CHANGELOG - Ajout du lien "Données personelles" dans le pied de page (#527 @juggler31) - Suppression du support des installations sans TaxHub - Changement de la notion de "commune" en notion de "zoning" (#545 @juggler31) +- Ajout de statistique sur la fiche de "zoning" (#540 @juggler31) 🐛 **Corrections**