localcosmos-app-kit 0.9.14__py3-none-any.whl → 0.9.15__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -916,10 +916,10 @@ class AppReleaseBuilder(AppBuilderBase):
916
916
 
917
917
  # detect duplicates by name
918
918
  all_taxon_profiles = TaxonProfile.objects.filter(taxon_profiles=taxon_profiles)
919
- for taxon_profile in all_taxon_profiles:
919
+ for taxon_profile in all_taxon_profiles:
920
920
  duplicates = TaxonProfile.objects.filter(taxon_profiles=taxon_profiles,
921
921
  taxon_source=taxon_profile.taxon_source, taxon_latname=taxon_profile.taxon_latname,
922
- taxon_author=taxon_profile.taxon_author).exclude(pk=taxon_profile.pk)
922
+ taxon_author=taxon_profile.taxon_author, morphotype=taxon_profile.morphotype).exclude(pk=taxon_profile.pk)
923
923
  if duplicates.exists():
924
924
  warning_message = _('The taxon profile of %(taxon_latname)s has duplicates.') % {
925
925
  'taxon_latname':taxon_profile.taxon_latname}
@@ -69,8 +69,8 @@
69
69
  },
70
70
  "cordova" : {
71
71
  "platforms" : {
72
- "android" : "android@13.0.0",
73
- "ios" : "ios@7.1.0",
72
+ "android" : "android@14.0.1",
73
+ "ios" : "ios@8.0.0",
74
74
  "browser" : "browser@7.0.0"
75
75
  },
76
76
  "plugins" : [
@@ -5,7 +5,7 @@ from django import forms
5
5
 
6
6
  from localcosmos_server.forms import LocalizeableForm
7
7
 
8
- from .models import MatrixFilter
8
+ from .models import MatrixFilter, IDENTIFICATION_MODE_POLYTOMOUS
9
9
  from .matrix_filters import MATRIX_FILTER_TYPES
10
10
 
11
11
  from .forms import is_active_field
@@ -63,6 +63,22 @@ class MatrixFilterManagementForm(LocalizeableForm):
63
63
  raise forms.ValidationError(_('A matrix filter with this name already exists.'))
64
64
 
65
65
  return name
66
+
67
+
68
+ def clean(self):
69
+ cleaned_data = super().clean()
70
+
71
+ identification_mode = self.meta_node.identification_mode
72
+
73
+ if identification_mode == IDENTIFICATION_MODE_POLYTOMOUS and not self.matrix_filter:
74
+
75
+ filter_exists = MatrixFilter.objects.filter(meta_node=self.meta_node).exists()
76
+
77
+ if filter_exists:
78
+ raise forms.ValidationError(_('In polytomous identification mode, only one matrix filter is allowed.'))
79
+
80
+
81
+ return cleaned_data
66
82
 
67
83
 
68
84
  class MatrixFilterManagementFormWithUnit(MatrixFilterManagementForm):
@@ -1130,6 +1130,7 @@ class CrosslinkManager:
1130
1130
 
1131
1131
  is_circular = False
1132
1132
 
1133
+ # you may not link a node to one of its parents
1133
1134
  if crosslink[0].startswith(crosslink[1]):
1134
1135
  is_circular = True
1135
1136
 
@@ -1156,17 +1157,17 @@ class CrosslinkManager:
1156
1157
 
1157
1158
  if is_circular == False:
1158
1159
 
1159
- found_connection = True
1160
-
1161
1160
  for crosslink in crosslinks:
1162
1161
 
1163
1162
  # start a new chain
1164
1163
  chain = [crosslink]
1164
+ found_connection = True
1165
1165
 
1166
1166
  while found_connection == True and is_circular == False:
1167
1167
 
1168
1168
  for crosslink_2 in crosslinks:
1169
1169
 
1170
+ # get the last nuid in the chain, which is a list of 2-tuples
1170
1171
  chain_end = chain[-1][1]
1171
1172
 
1172
1173
  found_connection = False
@@ -1212,6 +1213,8 @@ class NatureGuideCrosslinks(models.Model):
1212
1213
 
1213
1214
  all_crosslinks.append(crosslink_tuple)
1214
1215
 
1216
+ print('Checking crosslinks for circularity:')
1217
+ print(all_crosslinks)
1215
1218
  crosslink_manager = CrosslinkManager()
1216
1219
  is_circular = crosslink_manager.check_circularity(all_crosslinks)
1217
1220
 
@@ -10,15 +10,22 @@
10
10
  {% endblock %}
11
11
 
12
12
  {% block body %}
13
- <p>
14
- <div>
15
- {% render_bootstrap_form form %}
16
- </div>
17
- </p>
18
- {% if success is True %}
19
- <div class="alert alert-success">
20
- {% trans 'Successfully saved matrix filter.' %}
13
+
14
+ {% if adding_allowed == False and not matrix_filter %}
15
+ <div class="alert alert-warning">
16
+ {% trans "In dichotomous or polytomous identification mode, only one matrix filter is allowed." %}
21
17
  </div>
18
+ {% else %}
19
+ <p>
20
+ <div>
21
+ {% render_bootstrap_form form %}
22
+ </div>
23
+ </p>
24
+ {% if success is True %}
25
+ <div class="alert alert-success">
26
+ {% trans 'Successfully saved matrix filter.' %}
27
+ </div>
28
+ {% endif %}
22
29
  {% endif %}
23
30
  {% endblock %}
24
31
 
@@ -819,6 +819,14 @@ class ManageMatrixFilter(FormLanguageMixin, MetaAppMixin, FormView):
819
819
  context['meta_node'] = self.meta_node
820
820
  context['filter_type'] = self.filter_type
821
821
  context['matrix_filter'] = self.matrix_filter
822
+
823
+ adding_allowed = True
824
+ if self.meta_node.identification_mode == IDENTIFICATION_MODE_POLYTOMOUS:
825
+ existing_filters_count = MatrixFilter.objects.filter(meta_node=self.meta_node).count()
826
+ if existing_filters_count >= 1:
827
+ adding_allowed = False
828
+
829
+ context['adding_allowed'] = adding_allowed
822
830
 
823
831
  # fallback
824
832
  verbose_filter_name = self.filter_type
@@ -63,7 +63,7 @@
63
63
  {% endif %}
64
64
  {% endfor %}
65
65
  {% if form.has_categories %}
66
- </div>
66
+ <!--</div>-->
67
67
  {% endif %}
68
68
  </div>
69
69
 
@@ -260,6 +260,7 @@ class TaxonProfilesZipImporter(GenericContentZipImporter):
260
260
 
261
261
 
262
262
  def validate_external_media(self, url, col_letter, row_index):
263
+
263
264
  validator = URLValidator()
264
265
 
265
266
  is_valid = True
@@ -566,6 +567,9 @@ class TaxonProfilesZipImporter(GenericContentZipImporter):
566
567
  elif column_type == ColumnType.EXTERNAL_MEDIA.value:
567
568
 
568
569
  external_media_url = cell_value
570
+
571
+ if not external_media_url:
572
+ continue
569
573
 
570
574
  external_media_data = self.get_external_media_data_from_external_media_sheet(external_media_url)
571
575
 
Binary file
@@ -2091,7 +2091,7 @@ msgstr "Matrix"
2091
2091
 
2092
2092
  #: features/nature_guides/forms.py:416
2093
2093
  msgid "Dichotomous or Polytomous"
2094
- msgstr ""
2094
+ msgstr "dichotom oder polytom"
2095
2095
 
2096
2096
  #: features/nature_guides/forms.py:425
2097
2097
  msgid "Identification Mode"
@@ -2269,11 +2269,11 @@ msgstr "Farbe"
2269
2269
 
2270
2270
  #: features/nature_guides/matrix_filters.py:45
2271
2271
  msgid "Range of numbers"
2272
- msgstr "Zahlenintervall-Filter"
2272
+ msgstr "Zahlenintervall"
2273
2273
 
2274
2274
  #: features/nature_guides/matrix_filters.py:46
2275
2275
  msgid "Numbers"
2276
- msgstr "Zahlenfilter"
2276
+ msgstr "Zahlen"
2277
2277
 
2278
2278
  #: features/nature_guides/matrix_filters.py:47
2279
2279
  msgid "Text and images"
@@ -2285,11 +2285,11 @@ msgstr "Taxonomischer Filter"
2285
2285
 
2286
2286
  #: features/nature_guides/matrix_filters.py:49
2287
2287
  msgid "Text only"
2288
- msgstr "Textbasierter Filter"
2288
+ msgstr "Textbasiertes Merkmal"
2289
2289
 
2290
2290
  #: features/nature_guides/matrix_filters.py:345
2291
2291
  msgid "Range filter"
2292
- msgstr "Zahlenintervall-Filter"
2292
+ msgstr "Zahlenintervall"
2293
2293
 
2294
2294
  #: features/nature_guides/matrix_filters.py:348
2295
2295
  msgid "What is described by this trait, e.g. 'length of nose'"
@@ -2297,7 +2297,7 @@ msgstr "Was von diesem Merkmal beschrieben wird, z.B. 'Länge der Nase'"
2297
2297
 
2298
2298
  #: features/nature_guides/matrix_filters.py:485
2299
2299
  msgid "Number filter"
2300
- msgstr "Zahlenfilter"
2300
+ msgstr "Zahlen"
2301
2301
 
2302
2302
  #: features/nature_guides/matrix_filters.py:488
2303
2303
  msgid "What is described by this trait, e.g. 'number of legs'"
@@ -2305,7 +2305,7 @@ msgstr "Was von diesem Merkmal beschrieben wird, z.B. 'Anzahl der Beine'"
2305
2305
 
2306
2306
  #: features/nature_guides/matrix_filters.py:602
2307
2307
  msgid "Color filter"
2308
- msgstr "Farbfilter"
2308
+ msgstr "Farben"
2309
2309
 
2310
2310
  #: features/nature_guides/matrix_filters.py:603
2311
2311
  msgid "color"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: localcosmos_app_kit
3
- Version: 0.9.14
3
+ Version: 0.9.15
4
4
  Summary: LocalCosmos App Kit. Web Portal to build Android and iOS apps
5
5
  Home-page: https://github.com/localcosmos/app-kit
6
6
  Author: Thomas Uher
@@ -37,7 +37,7 @@ app_kit/app_kit_api/tests/__pycache__/test_serializers.cpython-311.pyc,sha256=Xv
37
37
  app_kit/app_kit_api/tests/__pycache__/test_views.cpython-311.pyc,sha256=jzyuIXHjnoubiVjdoa5h2YxGSTAomhTxhyxfZBqVf1o,10161
38
38
  app_kit/appbuilder/AppBuilderBase.py,sha256=mDwmMd0Fdl-wedTYWEK8AcHfiAhvjxFBGOkLrGavwTs,29160
39
39
  app_kit/appbuilder/AppPreviewBuilder.py,sha256=C0oSh_i1Cx4vLW01T0qJeo-MrtqqjD72Hh43k4kG5EI,6845
40
- app_kit/appbuilder/AppReleaseBuilder.py,sha256=B2Up0EO2lwjxN65d0pEKStfaR2h8pQOkbK3sNbVuUD0,131102
40
+ app_kit/appbuilder/AppReleaseBuilder.py,sha256=Xh1G8DI5azLLA1_uE-S_4HQDACs2xqxbA87bBGhdBeo,131151
41
41
  app_kit/appbuilder/ContentImageBuilder.py,sha256=k9YdH2d5oIyfbeoA9H_DaUigc1SQ69WnXFy9e00DdfA,7332
42
42
  app_kit/appbuilder/GBIFlib.py,sha256=iGj01hrk0iG-qjEkPM8ez_lNKL_zJedPTS3oUZDd8vg,989
43
43
  app_kit/appbuilder/TaxonBuilder.py,sha256=kzEzlE7pDfK5yBOc1lYuxguBOuzKesK3i8qxdZ90rgA,15424
@@ -84,7 +84,7 @@ app_kit/appbuilder/__pycache__/AppBuilderBase.cpython-313.pyc,sha256=GTLt_n208ej
84
84
  app_kit/appbuilder/__pycache__/AppPreviewBuilder.cpython-311.pyc,sha256=5kKHNjUuOfp31cqB_ZO175x-wGgVVhqX8YkHWSlX--k,8245
85
85
  app_kit/appbuilder/__pycache__/AppPreviewBuilder.cpython-313.pyc,sha256=C7-mLN6yGvDrknbBamjKkI9fxjfT3djrdr3-8Fhc7HQ,7526
86
86
  app_kit/appbuilder/__pycache__/AppReleaseBuilder.cpython-311.pyc,sha256=ZAHDJfyKvQzTsyFHIjvRjCiCn1dzObCPp6XYWCGHZmI,126739
87
- app_kit/appbuilder/__pycache__/AppReleaseBuilder.cpython-313.pyc,sha256=2Ia4GuUPrT4NC-EazlkYyLS0SyZJI8JRsrAwBFYRaKo,129064
87
+ app_kit/appbuilder/__pycache__/AppReleaseBuilder.cpython-313.pyc,sha256=8bJrshzvJDUlDowgZ96tnBvNx6h9zh96m12mAekOwCQ,129137
88
88
  app_kit/appbuilder/__pycache__/ContentImageBuilder.cpython-311.pyc,sha256=EyL2LamJkdU_7O_F0j3vwtTYjInblFSPKmlPLyXvSuE,8920
89
89
  app_kit/appbuilder/__pycache__/ContentImageBuilder.cpython-313.pyc,sha256=K6b-GlHYhM0SWlniDyyFfKdK_QF7kHN8yFahn2ETCa8,8737
90
90
  app_kit/appbuilder/__pycache__/GBIFlib.cpython-311.pyc,sha256=NNB_AHGQnN0ld82WuJHxGn5RthLO_fGkpVAfAHaDyMU,1945
@@ -93,7 +93,7 @@ app_kit/appbuilder/__pycache__/TaxonBuilder.cpython-311.pyc,sha256=7JVnCo4-CVmaX
93
93
  app_kit/appbuilder/__pycache__/TaxonBuilder.cpython-313.pyc,sha256=5tsgpQnOXFPJMr9vzgFcp8oRu0TmQSvFEc5daPk7eIM,16578
94
94
  app_kit/appbuilder/__pycache__/__init__.cpython-311.pyc,sha256=KkcyxSIx1hiGZkOwMG8qWGJQ-RPacWMKpfpnP-naNv4,388
95
95
  app_kit/appbuilder/__pycache__/__init__.cpython-313.pyc,sha256=iHwg7gUn2XzOOz0SNmIeY6GVMxTcc5NKM3gzSz4pLnA,329
96
- app_kit/appbuilder/app/frontends/Multiverse/settings.json,sha256=UyHjz1lJDb3XnRPBECsY5jvipyDUeJPiYCB-rYL6bVk,2026
96
+ app_kit/appbuilder/app/frontends/Multiverse/settings.json,sha256=dCcy0ZGor57YhlrPUJVj-IADrF413gBBWFUfletZW6g,2026
97
97
  app_kit/appbuilder/app/frontends/Multiverse/cordova/config.xml,sha256=Hiyp736MHfIHDK0z7yhOoyk7ZrxEELnUD8hrdA5AHdk,984
98
98
  app_kit/appbuilder/app/frontends/Multiverse/cordova/res/screen/android/splashscreen.xml,sha256=9P-arxE6NGSPbZS8OUMWCNlxgX69Hact2ovoXBUug00,10289
99
99
  app_kit/appbuilder/app/frontends/Multiverse/www/favicon.ico,sha256=23SrC3gzjB93j4OYxF9BA8ma6g6EWjEYp3ULTur9NEU,4286
@@ -317,12 +317,12 @@ app_kit/features/nature_guides/apps.py,sha256=a9nLPX7Bvm1p0vu4L7MCc0wrQTQPONv2C7
317
317
  app_kit/features/nature_guides/definitions.py,sha256=eGnVfFjSc6xUqKgaWsqnhb8JAZmY2_hCk4CRxMbY__U,744
318
318
  app_kit/features/nature_guides/fields.py,sha256=VIl5pdIAVJJKpaNQgCg6ptW-_rMuSxK77E6lJHeDpTM,2655
319
319
  app_kit/features/nature_guides/forms.py,sha256=BEFiy5xTTs3-ZbtlMOEtqvY4yS19UPnU_g-4VNMlIho,18639
320
- app_kit/features/nature_guides/matrix_filter_forms.py,sha256=P5esXEKJEU4nbmG0_DhqG1_kqrFpe4yqJYiDY6f_u9o,7271
320
+ app_kit/features/nature_guides/matrix_filter_forms.py,sha256=OEdYf8g1xd-tRK6a0CjLL4_ubJmaKGGxjbd1ZEI2E-Y,7858
321
321
  app_kit/features/nature_guides/matrix_filter_space_forms.py,sha256=uLF3eD5ccq05WhfIBRpM7YtrCqZM_iRlLFcDgxUJ08Q,2607
322
322
  app_kit/features/nature_guides/matrix_filters.py,sha256=g_2OywyFoLeNPGMbNOvX9laX30XwDs3UmAzIBt63KDE,51772
323
- app_kit/features/nature_guides/models.py,sha256=KByo61xMMJ2e-luvCuxdshmZyiiUmVAee9Fv3d50Qf4,54438
323
+ app_kit/features/nature_guides/models.py,sha256=EJS_all335YzB4eAJUJcnFvb5duKThqTIJbE2HRyOCg,54667
324
324
  app_kit/features/nature_guides/urls.py,sha256=ZTiTH4egfncXS2UI8zDiYtAXjWtgrreOqD_LQyN7ANY,5109
325
- app_kit/features/nature_guides/views.py,sha256=1l-54roJM2Yt7roEUdFq1l_N0McNTzwS1NYk6h6ylLY,59093
325
+ app_kit/features/nature_guides/views.py,sha256=cYL7O7XYu4KaXi-exGX7L60sO32acYLrpYnBgCobIe8,59463
326
326
  app_kit/features/nature_guides/widgets.py,sha256=e7opWWc295VGIFnln7C5o5bG45G4Ek0xg-jMLiVHs-0,8277
327
327
  app_kit/features/nature_guides/zip_import.py,sha256=nMgktVOU8SMB1xNGcse2U8peamT9rGU8jyINzO5tXxU,45060
328
328
  app_kit/features/nature_guides/migrations/0001_initial.py,sha256=TOnJlT2T8CeaSlPTAj0gk3HMDvWLpOcy3VVJ_dRSu0I,11025
@@ -352,7 +352,7 @@ app_kit/features/nature_guides/templates/nature_guides/ajax/delete_overview_imag
352
352
  app_kit/features/nature_guides/templates/nature_guides/ajax/manage_additional_matrix_filter_space_image.html,sha256=oaxDuSS8VeFoliZm-U-gTqc-zhoqnphWpQA9FR83Nyc,496
353
353
  app_kit/features/nature_guides/templates/nature_guides/ajax/manage_color_filter_space.html,sha256=IjzRRL541JweSSjMZpWDJmdD7rEyIRW30YeyFibQxvE,3834
354
354
  app_kit/features/nature_guides/templates/nature_guides/ajax/manage_identification_node_settings.html,sha256=V7dFkqq-DjOqdFnyxMmTN-Pui-Cg6AD0L35dnOwbbvE,603
355
- app_kit/features/nature_guides/templates/nature_guides/ajax/manage_matrix_filter.html,sha256=GZYneXEb2A010Pfw5sU2xWm4I0iu2yMl10A7Yfz5Y4Q,1051
355
+ app_kit/features/nature_guides/templates/nature_guides/ajax/manage_matrix_filter.html,sha256=qajiKAEmFvLEuTaL8geeNXCTftNMC9huv35_py1sTp8,1290
356
356
  app_kit/features/nature_guides/templates/nature_guides/ajax/manage_matrix_filter_restrictions.html,sha256=ZmyMBMX6TpIy2vhMBsqqjOgyKCZwTyELbUp8ERQRQX8,1421
357
357
  app_kit/features/nature_guides/templates/nature_guides/ajax/manage_matrix_filter_space.html,sha256=sLp7xDrsffOphgISGHRjAjSQpayBU0ulul3_yhqecFk,4455
358
358
  app_kit/features/nature_guides/templates/nature_guides/ajax/manage_nodelink_form.html,sha256=9rPovaxDTV-syEl4kmh1E5n-o5ex5--JpBcDNtcuQiE,3147
@@ -402,7 +402,7 @@ app_kit/features/taxon_profiles/forms.py,sha256=T5mU0QGhG_fSNppzuzTxjxb078VA4Ick
402
402
  app_kit/features/taxon_profiles/models.py,sha256=xYDHT_KI_xatFUwYYnkogXeqd70kr9Dp8YVum8hzvRw,24214
403
403
  app_kit/features/taxon_profiles/urls.py,sha256=2zaYLWb3mQyf5qlkWi1559gHeYr_eurSGfp6maVWIzc,10546
404
404
  app_kit/features/taxon_profiles/views.py,sha256=2z6SgIztgJ0x3vsYTa1oY5Ct4c9nEkj2Ag0asR6I5tI,59810
405
- app_kit/features/taxon_profiles/zip_import.py,sha256=9Jk4QBWD1WJXSk2nmRYACu0jBD_p-9AkRUSI57hFUTM,29737
405
+ app_kit/features/taxon_profiles/zip_import.py,sha256=aYFEtaMjn5Qebj0eaOeM-WVdvMUDymH4wUOnhAItN9I,29883
406
406
  app_kit/features/taxon_profiles/migrations/0001_initial.py,sha256=aknHwoaZMBwDWMnp7dftXToVGuyN4f9xy3epQSqGkxQ,3659
407
407
  app_kit/features/taxon_profiles/migrations/0002_taxontext_long_text.py,sha256=FN2GAdO4paIgX8FpREoLk7cihlHRRaehVY7_Ve0K97w,383
408
408
  app_kit/features/taxon_profiles/migrations/0003_auto_20221021_0746.py,sha256=u0vnYVpFyrrNA-ZK1C7_GG7GXwgipcTJpiUzi15q9to,392
@@ -437,7 +437,7 @@ app_kit/features/taxon_profiles/templates/taxon_profiles/ajax/delete_taxon_text_
437
437
  app_kit/features/taxon_profiles/templates/taxon_profiles/ajax/delete_taxon_text_type_category.html,sha256=mIgqNz2dcZyl-6U2bClztlERrSCzct5RhOnY_KB51tA,381
438
438
  app_kit/features/taxon_profiles/templates/taxon_profiles/ajax/manage_navigation_entry.html,sha256=a_Cydkty0fWKIOzcnXOa0US-eLrjKI_y8LaI4unxeC0,2497
439
439
  app_kit/features/taxon_profiles/templates/taxon_profiles/ajax/manage_navigation_image.html,sha256=9uAZLbs5Rs4Xew3ua-0BOT4MzLXjW25XjgO73vPJxP8,872
440
- app_kit/features/taxon_profiles/templates/taxon_profiles/ajax/manage_taxon_profile_form.html,sha256=NnYEE-SUt9cmGfFoqf5YpItFrC4HnR_7lHkuJzqIqLo,4425
440
+ app_kit/features/taxon_profiles/templates/taxon_profiles/ajax/manage_taxon_profile_form.html,sha256=RZ-7jxCk-gxW7Ozzm_5sX7SlhG9N-LL80yYAq1iB0QY,4432
441
441
  app_kit/features/taxon_profiles/templates/taxon_profiles/ajax/manage_taxon_profile_image.html,sha256=TORQADZVRluI4VN3D_0cKJsKhEJu7y8JgOR-sDv6INU,1141
442
442
  app_kit/features/taxon_profiles/templates/taxon_profiles/ajax/manage_taxon_profile_morphotype.html,sha256=uB_yzjW_cKFO32dqwaKtSUw-jLRfrzl2Aerf7cP66Fo,1071
443
443
  app_kit/features/taxon_profiles/templates/taxon_profiles/ajax/manage_taxon_text_set.html,sha256=E98YJtky7fBZxPiP_gkT6LxaRHtN5BDPgc0ow3mU93I,1148
@@ -473,8 +473,8 @@ app_kit/features/taxon_profiles/tests/__pycache__/test_models.cpython-313.pyc,sh
473
473
  app_kit/features/taxon_profiles/tests/__pycache__/test_views.cpython-311.pyc,sha256=LP0Ax_996RBcO7iKOAXLfuPYBkescBUMQage7UNx6eU,94047
474
474
  app_kit/features/taxon_profiles/tests/__pycache__/test_views.cpython-313.pyc,sha256=FmqIpsndhvVZGjERCEtwMdTlBIp6f4d-V2KUB_2dC3A,120478
475
475
  app_kit/features/taxon_profiles/tests/__pycache__/test_zip_import.cpython-313.pyc,sha256=nfMAbWoVuc43-Gn2dHkmGbvu1J0mppy_9X82vXDUsGw,35276
476
- app_kit/locale/de/LC_MESSAGES/django.mo,sha256=VkJ_FWiNgqHgE8b0yUJv7rpyXKdT6ef1EpGjpp_6l7I,88207
477
- app_kit/locale/de/LC_MESSAGES/django.po,sha256=BRgjG0pz6sq1T6SoOPRCOP1bQe57j9yPZ3AB7bOi51k,175664
476
+ app_kit/locale/de/LC_MESSAGES/django.mo,sha256=fTw3rJS1tD_Gb6tThtkn3Eg1WU-pb8H_-zsR2dFFB8k,88242
477
+ app_kit/locale/de/LC_MESSAGES/django.po,sha256=iMFizpMmxDUXl8msXPxPrc71uzs66xmiVi87Aj_hsBU,175656
478
478
  app_kit/locale/en/LC_MESSAGES/django.mo,sha256=N1pb17IfLd0ASiKO8d68-B4ygSpDkhKOCs8YTzMXQo0,380
479
479
  app_kit/locale/en/LC_MESSAGES/django.po,sha256=jhD_BqtvCqoH-3NeWsLZy9v4DJ3vGYt1U3M6vpOU-FU,94673
480
480
  app_kit/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -1930,8 +1930,8 @@ app_kit/tests/__pycache__/test_models.cpython-313.pyc,sha256=Lmv3BfjLs5Fg-olJeMl
1930
1930
  app_kit/tests/__pycache__/test_utils.cpython-313.pyc,sha256=GX3REqZygi2eO_A2F2_KtYi7hg54X5QPtCTCGWuxGpM,14054
1931
1931
  app_kit/tests/__pycache__/test_views.cpython-311.pyc,sha256=NDJR40TcMm-bXXC-wV7OgH1sGR3N7psSWYiUirkkrjU,133242
1932
1932
  app_kit/tests/__pycache__/test_views.cpython-313.pyc,sha256=q851UqIZFCCTfQb1lF4SVxV1j_Vu1hJdOlpckmrGX28,125363
1933
- localcosmos_app_kit-0.9.14.dist-info/licenses/LICENCE,sha256=VnxALPSxXoU59rlNeRdJtwS_nU79IFpVWsZZCQUM4Mw,1086
1934
- localcosmos_app_kit-0.9.14.dist-info/METADATA,sha256=kYTn4CM6deBUuVzm14tT6j9IL4m11s3K7aJf_CAfH8E,1388
1935
- localcosmos_app_kit-0.9.14.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1936
- localcosmos_app_kit-0.9.14.dist-info/top_level.txt,sha256=F6H4pEBkCvUR_iwQHIy4K1iby-jzfWg3CTym5XJKeys,8
1937
- localcosmos_app_kit-0.9.14.dist-info/RECORD,,
1933
+ localcosmos_app_kit-0.9.15.dist-info/licenses/LICENCE,sha256=VnxALPSxXoU59rlNeRdJtwS_nU79IFpVWsZZCQUM4Mw,1086
1934
+ localcosmos_app_kit-0.9.15.dist-info/METADATA,sha256=yDdxYGcyPAUgA12vpp3qdL34v-GuRD7b5KXUXFA-9UQ,1388
1935
+ localcosmos_app_kit-0.9.15.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
1936
+ localcosmos_app_kit-0.9.15.dist-info/top_level.txt,sha256=F6H4pEBkCvUR_iwQHIy4K1iby-jzfWg3CTym5XJKeys,8
1937
+ localcosmos_app_kit-0.9.15.dist-info/RECORD,,