Feat: Bundesland-Feiertage für Werktagsberechnung hinzugefügt
- Neue Funktion zur Abfrage bundeslandspezifischer Feiertage über feiertage-api.de - Werktagsberechnung berücksichtigt jetzt optional Feiertage des gewählten Bundeslandes - Frontend: Dropdown für Bundesland-Auswahl (nur aktiv wenn Werktage-Checkbox aktiviert) - Anzeige der Anzahl Wochenendtage und Feiertage im Ergebnis - REST API erweitert um bundesland-Parameter - README.md aktualisiert mit Dokumentation der neuen Funktion
This commit is contained in:
@@ -604,16 +604,49 @@ footer br + a {
|
||||
<legend class="sr-only">Optionen</legend>
|
||||
<input type="checkbox" name="werktage" id="werktage" {% if request.form.get('werktage') %}checked{% endif %} aria-checked="{{ 'true' if request.form.get('werktage') else 'false' }}">
|
||||
<label for="werktage" style="margin:0;">Nur Werktage</label>
|
||||
<label for="bundesland" style="margin-left:1em;">Feiertage berücksichtigen für:
|
||||
<select name="bundesland" id="bundesland" {% if not request.form.get('werktage') %}disabled{% endif %}>
|
||||
<option value="">(kein Bundesland)</option>
|
||||
<option value="BW" {% if request.form.get('bundesland') == 'BW' %}selected{% endif %}>Baden-Württemberg</option>
|
||||
<option value="BY" {% if request.form.get('bundesland') == 'BY' %}selected{% endif %}>Bayern</option>
|
||||
<option value="BE" {% if request.form.get('bundesland') == 'BE' %}selected{% endif %}>Berlin</option>
|
||||
<option value="BB" {% if request.form.get('bundesland') == 'BB' %}selected{% endif %}>Brandenburg</option>
|
||||
<option value="HB" {% if request.form.get('bundesland') == 'HB' %}selected{% endif %}>Bremen</option>
|
||||
<option value="HH" {% if request.form.get('bundesland') == 'HH' %}selected{% endif %}>Hamburg</option>
|
||||
<option value="HE" {% if request.form.get('bundesland') == 'HE' %}selected{% endif %}>Hessen</option>
|
||||
<option value="MV" {% if request.form.get('bundesland') == 'MV' %}selected{% endif %}>Mecklenburg-Vorpommern</option>
|
||||
<option value="NI" {% if request.form.get('bundesland') == 'NI' %}selected{% endif %}>Niedersachsen</option>
|
||||
<option value="NW" {% if request.form.get('bundesland') == 'NW' %}selected{% endif %}>Nordrhein-Westfalen</option>
|
||||
<option value="RP" {% if request.form.get('bundesland') == 'RP' %}selected{% endif %}>Rheinland-Pfalz</option>
|
||||
<option value="SL" {% if request.form.get('bundesland') == 'SL' %}selected{% endif %}>Saarland</option>
|
||||
<option value="SN" {% if request.form.get('bundesland') == 'SN' %}selected{% endif %}>Sachsen</option>
|
||||
<option value="ST" {% if request.form.get('bundesland') == 'ST' %}selected{% endif %}>Sachsen-Anhalt</option>
|
||||
<option value="SH" {% if request.form.get('bundesland') == 'SH' %}selected{% endif %}>Schleswig-Holstein</option>
|
||||
<option value="TH" {% if request.form.get('bundesland') == 'TH' %}selected{% endif %}>Thüringen</option>
|
||||
</select>
|
||||
</label>
|
||||
</fieldset>
|
||||
<button name="action" value="tage_werktage" type="submit">Berechnen</button>
|
||||
</form>
|
||||
{% if tage is not none %}
|
||||
<div class="result" aria-live="polite">
|
||||
{% if request.form.get('werktage') %}
|
||||
Anzahl der Werktage zwischen <b>{{ format_date(request.form.get('start1', '')) }}</b> und <b>{{ format_date(request.form.get('end1', '')) }}</b>: {{ tage }}
|
||||
Anzahl der Werktage zwischen <b>{{ format_date(request.form.get('start1', '')) }}</b> und <b>{{ format_date(request.form.get('end1', '')) }}</b>{% if request.form.get('bundesland') %} (Feiertage {{ request.form.get('bundesland') }}){% endif %}: {{ tage }}
|
||||
{% else %}
|
||||
Anzahl der Tage zwischen <b>{{ format_date(request.form.get('start1', '')) }}</b> und <b>{{ format_date(request.form.get('end1', '')) }}</b>: {{ tage }}
|
||||
{% endif %}
|
||||
{% if wochenendtage_anzahl is not none or feiertage_anzahl is not none %}
|
||||
<br>
|
||||
<span style="font-size:0.98em; color:#1e293b;">
|
||||
{% if wochenendtage_anzahl is not none %}
|
||||
<b>{{ wochenendtage_anzahl }}</b> Wochenendtage
|
||||
{% endif %}
|
||||
{% if feiertage_anzahl is not none %}
|
||||
{% if wochenendtage_anzahl is not none %} | {% endif %}
|
||||
<b>{{ feiertage_anzahl }}</b> Feiertage (Mo-Fr{% if request.form.get('bundesland') %}, {{ request.form.get('bundesland') }}{% endif %})
|
||||
{% endif %}
|
||||
</span>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
@@ -788,5 +821,19 @@ footer br + a {
|
||||
<a href="/api-docs" target="_blank" style="color:#2563eb; text-decoration:underline;">REST API Dokumentation (Swagger)</a><br>
|
||||
© 2025 <a href="mailto:elpatron@mailbox.org?subject=Datumsrechner" style="color:#2563eb; text-decoration:underline;">M. Busche</a>
|
||||
</footer>
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var werktageCheckbox = document.getElementById('werktage');
|
||||
var bundeslandSelect = document.getElementById('bundesland');
|
||||
if (werktageCheckbox && bundeslandSelect) {
|
||||
function toggleBundesland() {
|
||||
bundeslandSelect.disabled = !werktageCheckbox.checked;
|
||||
}
|
||||
werktageCheckbox.addEventListener('change', toggleBundesland);
|
||||
// Initial setzen
|
||||
toggleBundesland();
|
||||
}
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Reference in New Issue
Block a user