manager: add monday's date in options of week selector (#72322)
gitea-wip/chrono/pipeline/pr-main This commit looks good Details

This commit is contained in:
Lauréline Guérin 2022-12-13 10:20:35 +01:00
parent 7dfd386784
commit b14f77e94e
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
3 changed files with 59 additions and 0 deletions

View File

@ -3,6 +3,31 @@
{% block bodyargs %}class="weekview"{% endblock %}
{% block extrascripts %}
{{ block.super }}
<script>
$(function() {
var dates = {};
{% for year, weeks in view.get_week_dates.items %}
dates[{{ year }}] = {};
{% for week, weekdetails in weeks.items %}
dates[{{ year }}][{{ week }}] = '{{ weekdetails.1 }} ({{ weekdetails.0|date:'j F' }})';
{% endfor %}
{% endfor %}
$('.date-picker select[name=year]').on('change', function() {
var $week = $('.date-picker select[name="week"]');
var selected = $week.val();
$week.empty();
$.each(dates[$(this).val()], function(index, value) {
$week.append('<option value="' + index + '">' + value + '</option>');
});
$week.val(selected);
});
$('.date-picker select[name=year]').change();
});
</script>
{% endblock %}
{% block breadcrumb %}
{{ block.super }}
<a>{{ view.date|date:"F Y" }}</a>

View File

@ -3,6 +3,31 @@
{% block bodyargs %}class="weekview"{% endblock %}
{% block extrascripts %}
{{ block.super }}
<script>
$(function() {
var dates = {};
{% for year, weeks in view.get_week_dates.items %}
dates[{{ year }}] = {};
{% for week, weekdetails in weeks.items %}
dates[{{ year }}][{{ week }}] = '{{ weekdetails.1 }} ({{ weekdetails.0|date:'j F' }})';
{% endfor %}
{% endfor %}
$('.date-picker select[name=year]').on('change', function() {
var $week = $('.date-picker select[name="week"]');
var selected = $week.val();
$week.empty();
$.each(dates[$(this).val()], function(index, value) {
$week.append('<option value="' + index + '">' + value + '</option>');
});
$week.val(selected);
});
$('.date-picker select[name=year]').change();
});
</script>
{% endblock %}
{% block breadcrumb %}
{{ block.super }}
<a>{{ view.date|date:"F Y" }}</a>

View File

@ -256,6 +256,15 @@ class DateMixin:
def get_weeks(self):
return [(str(x), _('Week %s') % x) for x in range(1, 53)]
def get_week_dates(self):
dates = {}
for year in self.get_years():
dates[year] = {}
for week, week_label in self.get_weeks():
date = datetime.datetime.strptime('%s-W%s-1' % (year, week), "%Y-W%W-%w")
dates[year][week] = (date, week_label)
return dates
def get_years(self):
year = now().year
return [str(x) for x in range(year - 1, year + 5)]