goodmap 0.5.1__py3-none-any.whl → 0.5.3__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.
goodmap/core_api.py CHANGED
@@ -13,6 +13,15 @@ def make_tuple_translation(keys_to_translate):
13
13
  return [(x, gettext(x)) for x in keys_to_translate]
14
14
 
15
15
 
16
+ def get_or_none(data, *keys):
17
+ for key in keys:
18
+ if isinstance(data, dict):
19
+ data = data.get(key)
20
+ else:
21
+ return None
22
+ return data
23
+
24
+
16
25
  def paginate_results(items, raw_params, sort_by_default=None):
17
26
  """
18
27
  Apply pagination and sorting to a list of items.
@@ -82,7 +91,12 @@ def paginate_results(items, raw_params, sort_by_default=None):
82
91
 
83
92
 
84
93
  def core_pages(
85
- database, languages: LanguagesMapping, notifier_function, csrf_generator, location_model
94
+ database,
95
+ languages: LanguagesMapping,
96
+ notifier_function,
97
+ csrf_generator,
98
+ location_model,
99
+ feature_flags={},
86
100
  ) -> Blueprint:
87
101
  core_api_blueprint = Blueprint("api", __name__, url_prefix="/api")
88
102
  core_api = Api(core_api_blueprint, doc="/doc", version="0.1")
@@ -195,7 +209,19 @@ def core_pages(
195
209
  """Shows all available categories"""
196
210
  all_data = database.get_data()
197
211
  categories = make_tuple_translation(all_data["categories"].keys())
198
- return jsonify(categories)
212
+
213
+ if not feature_flags.get("CATEGORIES_HELP", False):
214
+ return jsonify(categories)
215
+ else:
216
+ categories_help = all_data["categories_help"]
217
+ proper_categories_help = []
218
+ if categories_help is not None:
219
+ for option in categories_help:
220
+ proper_categories_help.append(
221
+ {option: gettext(f"categories_help_{option}")}
222
+ )
223
+
224
+ return jsonify({"categories": categories, "categories_help": proper_categories_help})
199
225
 
200
226
  @core_api.route("/languages")
201
227
  class Languages(Resource):
@@ -209,7 +235,25 @@ def core_pages(
209
235
  """Shows all available types in category"""
210
236
  all_data = database.get_data()
211
237
  local_data = make_tuple_translation(all_data["categories"][category_type])
212
- return jsonify(local_data)
238
+
239
+ categories_options_help = get_or_none(
240
+ all_data, "categories_options_help", category_type
241
+ )
242
+ proper_categories_options_help = []
243
+ if categories_options_help is not None:
244
+ for option in categories_options_help:
245
+ proper_categories_options_help.append(
246
+ {option: gettext(f"categories_options_help_{option}")}
247
+ )
248
+ if not feature_flags.get("CATEGORIES_HELP", False):
249
+ return jsonify(local_data)
250
+ else:
251
+ return jsonify(
252
+ {
253
+ "categories_options": local_data,
254
+ "categories_options_help": proper_categories_options_help,
255
+ }
256
+ )
213
257
 
214
258
  @core_api.route("/generate-csrf-token")
215
259
  class CsrfToken(Resource):
@@ -6,7 +6,7 @@ from pydantic import BaseModel, Field, create_model, field_validator
6
6
  class LocationBase(BaseModel, extra="allow"):
7
7
  position: tuple[float, float]
8
8
  uuid: str
9
- remark: bool = False
9
+ remark: str = ""
10
10
 
11
11
  @field_validator("position")
12
12
  @classmethod
goodmap/goodmap.py CHANGED
@@ -40,7 +40,12 @@ def create_app_from_config(config: Config) -> platzky.Engine:
40
40
  CSRFProtect(app)
41
41
 
42
42
  cp = core_pages(
43
- app.db, languages_dict(config.languages), app.notify, generate_csrf, location_model
43
+ app.db,
44
+ languages_dict(config.languages),
45
+ app.notify,
46
+ generate_csrf,
47
+ location_model,
48
+ feature_flags=config.feature_flags,
44
49
  )
45
50
  app.register_blueprint(cp)
46
51
  goodmap = Blueprint("goodmap", __name__, url_prefix="/", template_folder="templates")
@@ -117,6 +117,7 @@ window.SHOW_SUGGEST_NEW_POINT_BUTTON = {{ feature_flags.SHOW_SUGGEST_NEW_POINT_B
117
117
  window.SHOW_SEARCH_BAR = {{ feature_flags.SHOW_SEARCH_BAR | default(false) | tojson }};
118
118
  window.USE_LAZY_LOADING = {{ feature_flags.USE_LAZY_LOADING | default(false) | tojson }};
119
119
  window.SHOW_ACCESSIBILITY_TABLE = {{ feature_flags.SHOW_ACCESSIBILITY_TABLE | default(false) | tojson }};
120
+ window.FEATURE_FLAGS = {{ feature_flags | tojson }};
120
121
  </script>
121
122
  <script src="/static/map.js"></script>
122
123
  {% endblock %}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: goodmap
3
- Version: 0.5.1
3
+ Version: 0.5.3
4
4
  Summary: Map engine to serve all the people :)
5
5
  Author: Krzysztof Kolodzinski
6
6
  Author-email: krzysztof.kolodzinski@problematy.pl
@@ -0,0 +1,14 @@
1
+ goodmap/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
2
+ goodmap/core.py,sha256=rzMhOIYnR1jxTX6uHQJKIPLYxdUm4_v2d6LrtHtJpHU,1465
3
+ goodmap/core_api.py,sha256=8Mhs59c_MnORmHK7aFCNM7eBJBhNQ0MWcdYnmiW2GW4,15515
4
+ goodmap/data_models/location.py,sha256=H3EKozc-WZvrYm6cwajl8_gaw4rQhxdlvxR1mk4mpkA,1104
5
+ goodmap/data_validator.py,sha256=lBmVAPxvSmEOdUGeVYSjUvVVmKfPyq4CWoHfczTtEMM,4090
6
+ goodmap/db.py,sha256=fB9B0nzNuTsMBak7iV4bGxAxGF5NSTGikht9keDOTGA,17518
7
+ goodmap/formatter.py,sha256=VlUHcK1HtM_IEU0VE3S5TOkZLVheMdakvUeW2tCKdq0,783
8
+ goodmap/goodmap.py,sha256=OOcuDEY7GZsHh8vjIJ9brd4SuGxNRq_lC_DMmNuome8,2731
9
+ goodmap/templates/goodmap-admin.html,sha256=zGuau239BXyBerV21mDXcHy34ke8cLmZcMngcX1xhAs,35598
10
+ goodmap/templates/map.html,sha256=-qbJ313t2EdSyIwULnQy3j81pH4MqI5yjtJ4Xoo7N7M,3979
11
+ goodmap-0.5.3.dist-info/LICENSE.md,sha256=nkCQOR7uheLRvHRfXmwx9LhBnMcPeBU9d4ebLojDiQU,1067
12
+ goodmap-0.5.3.dist-info/METADATA,sha256=d5Wqic-brdjC_wocR63g1YINlERblKpmkZpTOZ-j5pg,5278
13
+ goodmap-0.5.3.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
14
+ goodmap-0.5.3.dist-info/RECORD,,
@@ -1,14 +0,0 @@
1
- goodmap/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
2
- goodmap/core.py,sha256=rzMhOIYnR1jxTX6uHQJKIPLYxdUm4_v2d6LrtHtJpHU,1465
3
- goodmap/core_api.py,sha256=pxR14Hiaotu_7GCGB4bNmntyroFV7aBamYzNnwytCW8,13985
4
- goodmap/data_models/location.py,sha256=nvieHMobqLETSiC4GBAGVvHFOVMpf48sn6GntXi-6lY,1108
5
- goodmap/data_validator.py,sha256=lBmVAPxvSmEOdUGeVYSjUvVVmKfPyq4CWoHfczTtEMM,4090
6
- goodmap/db.py,sha256=fB9B0nzNuTsMBak7iV4bGxAxGF5NSTGikht9keDOTGA,17518
7
- goodmap/formatter.py,sha256=VlUHcK1HtM_IEU0VE3S5TOkZLVheMdakvUeW2tCKdq0,783
8
- goodmap/goodmap.py,sha256=Nx_s9JfEBbICNiPykiaMr7vepynZ6LcT0sb_pndL4D4,2654
9
- goodmap/templates/goodmap-admin.html,sha256=zGuau239BXyBerV21mDXcHy34ke8cLmZcMngcX1xhAs,35598
10
- goodmap/templates/map.html,sha256=llzzfWGHM0Xtr4Io05QJLCLajySHNBzKejR0Km5nGMw,3926
11
- goodmap-0.5.1.dist-info/LICENSE.md,sha256=nkCQOR7uheLRvHRfXmwx9LhBnMcPeBU9d4ebLojDiQU,1067
12
- goodmap-0.5.1.dist-info/METADATA,sha256=olBm-u5npCAhJAE4nu385pdnRc34HWQa_ZX0uIBSS9A,5278
13
- goodmap-0.5.1.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
14
- goodmap-0.5.1.dist-info/RECORD,,