aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fietsboek/templates/edit.jinja22
-rw-r--r--fietsboek/templates/edit_form.jinja25
-rw-r--r--fietsboek/templates/finish_upload.jinja22
-rw-r--r--fietsboek/transformers/__init__.py5
-rw-r--r--fietsboek/transformers/breaks.py4
-rw-r--r--fietsboek/transformers/elevation.py15
6 files changed, 28 insertions, 5 deletions
diff --git a/fietsboek/templates/edit.jinja2 b/fietsboek/templates/edit.jinja2
index 26c520f..a195082 100644
--- a/fietsboek/templates/edit.jinja2
+++ b/fietsboek/templates/edit.jinja2
@@ -14,7 +14,7 @@
<label class="form-label ui-element" for="newGpx">{{ _("page.edit.form.new_track") }}</label>
<input id="newGpx" name="gpx" type="file" class="form-control ui-element">
</div>
- {{ edit_form.edit_track(track.title, track.date_raw, track.date_tz or 0, track.visibility, track.type, track.description, track.text_tags(), badges, track.tagged_people, images) }}
+ {{ edit_form.edit_track(track.title, track.date_raw, track.date_tz or 0, track.visibility, track.type, track.description, track.text_tags(), badges, track.tagged_people, images, False) }}
{{ util.hidden_csrf_input() }}
<div class="btn-group" role="group">
<button type="submit" class="btn btn-primary ui-element"><i class="bi bi-save"></i> {{ _("page.edit.form.submit") }}</button>
diff --git a/fietsboek/templates/edit_form.jinja2 b/fietsboek/templates/edit_form.jinja2
index e515c3b..371accc 100644
--- a/fietsboek/templates/edit_form.jinja2
+++ b/fietsboek/templates/edit_form.jinja2
@@ -1,4 +1,4 @@
-{% macro edit_track(title, date, date_tz, visibility, type, description, tags, badges, friends, images) %}
+{% macro edit_track(title, date, date_tz, visibility, type, description, tags, badges, friends, images, enable_default_transformers) %}
<div class="mb-3">
<label for="formTitle" class="form-label">{{ _("page.track.form.title") }}</label>
<input class="form-control ui-element" type="text" id="formTitle" name="title" value="{{ title | default("", true) }}">
@@ -165,12 +165,13 @@
<div id="transformer-{{ loop.index}}" class="accordion-collapse collapse" aria-labelledby="transformer-heading-{{ loop.index }}">
<div class="accordion-body">
{% set params = track.transformer_params_for(transformer.identifier()) if track else None %}
+ {% set enabled = params is not none or (enable_default_transformers and transformer.enabled_by_default()) %}
<!-- Short transformer description -->
<p>{{ _(transformer.description()) }}</p>
<!-- Checkbox to enable the transformer -->
<div class="form-check">
- <input class="form-check-input" type="checkbox" value="on" id="transformer-enabled-{{ loop.index }}" name="transformer[{{ transformer.identifier() }}]"{% if params is not none %} checked{% endif %}>
+ <input class="form-check-input" type="checkbox" value="on" id="transformer-enabled-{{ loop.index }}" name="transformer[{{ transformer.identifier() }}]"{% if enabled %} checked{% endif %}>
<label class="form-check-label" for="transformer-enabled-{{ loop.index }}">
{{ _("page.track.form.transformer.enable") }}
</label>
diff --git a/fietsboek/templates/finish_upload.jinja2 b/fietsboek/templates/finish_upload.jinja2
index 34d4aac..b8491ec 100644
--- a/fietsboek/templates/finish_upload.jinja2
+++ b/fietsboek/templates/finish_upload.jinja2
@@ -10,7 +10,7 @@
<noscript><p>{{ _("page.noscript") }}<p></noscript>
</div>
<form method="POST" enctype="multipart/form-data">
- {{ edit_form.edit_track(upload_title, upload_date, upload_date_tz, upload_visibility, upload_type, upload_description, upload_tags, badges, upload_tagged_people, []) }}
+ {{ edit_form.edit_track(upload_title, upload_date, upload_date_tz, upload_visibility, upload_type, upload_description, upload_tags, badges, upload_tagged_people, [], True) }}
{{ util.hidden_csrf_input() }}
<div class="btn-group" role="group">
<button type="submit" class="btn btn-primary ui-element">{{ _("page.upload.form.submit") }}</button>
diff --git a/fietsboek/transformers/__init__.py b/fietsboek/transformers/__init__.py
index 8f96af1..c6e159c 100644
--- a/fietsboek/transformers/__init__.py
+++ b/fietsboek/transformers/__init__.py
@@ -95,6 +95,11 @@ class Transformer(ABC):
@classmethod
@abstractmethod
+ def enabled_by_default(cls) -> bool:
+ """Whether this transformer should be enabled by default."""
+
+ @classmethod
+ @abstractmethod
def parameter_model(cls: type[T]) -> type[Parameters]:
"""Returns the parameter model that this transformer expects.
diff --git a/fietsboek/transformers/breaks.py b/fietsboek/transformers/breaks.py
index 1072eef..81aca5a 100644
--- a/fietsboek/transformers/breaks.py
+++ b/fietsboek/transformers/breaks.py
@@ -36,6 +36,10 @@ class RemoveBreaks(Transformer):
return _("transformers.remove-breaks.description")
@classmethod
+ def enabled_by_default(cls) -> bool:
+ return False
+
+ @classmethod
def parameter_model(cls) -> type[Parameters]:
return Parameters
diff --git a/fietsboek/transformers/elevation.py b/fietsboek/transformers/elevation.py
index c8874be..6bdcbb4 100644
--- a/fietsboek/transformers/elevation.py
+++ b/fietsboek/transformers/elevation.py
@@ -56,6 +56,10 @@ class FixNullElevation(Transformer):
return _("transformers.fix-null-elevation.description")
@classmethod
+ def enabled_by_default(cls) -> bool:
+ return True
+
+ @classmethod
def parameter_model(cls) -> type[Parameters]:
return Parameters
@@ -122,6 +126,10 @@ class FixElevationJumps(Transformer):
return _("transformers.fix-elevation-jumps.description")
@classmethod
+ def enabled_by_default(cls) -> bool:
+ return False
+
+ @classmethod
def parameter_model(cls) -> type[Parameters]:
return Parameters
@@ -162,6 +170,10 @@ class SmoothElevation(Transformer):
return _("transformers.smooth-elevation.description")
@classmethod
+ def enabled_by_default(cls) -> bool:
+ return True
+
+ @classmethod
def parameter_model(cls) -> type[Parameters]:
return Parameters
@@ -176,7 +188,8 @@ class SmoothElevation(Transformer):
def execute(self, path: geo.Path):
radius = self._estimate_window_size(path)
LOGGER.debug("Savitzky-Golay radius: %s", radius)
- self._savitzky_golay(path, radius)
+ if radius:
+ self._savitzky_golay(path, radius)
def _estimate_window_size(self, path: geo.Path) -> int:
length = 0.0