diff --git a/faerun_calendar/static/faerun_calendar/css/main.css b/faerun_calendar/static/faerun_calendar/css/main.css index a6aed41..b963eb7 100644 --- a/faerun_calendar/static/faerun_calendar/css/main.css +++ b/faerun_calendar/static/faerun_calendar/css/main.css @@ -15,19 +15,20 @@ h2.year { table.month, table.month th, table.month td { border: 1px solid white; border-collapse: collapse; - padding: 5px; background: gainsboro; } table.month th { text-align: center; + padding: 5px; } table.month td { - text-align: right; + text-align: center; + padding: 5px 0px; } -table.month td.current { +table.month td.with_events { background: dimgrey; } @@ -39,9 +40,16 @@ table.month th.subtitle { table.month a { text-decoration: none; color: black; + padding: 3px; } -table.month td.current a { +a.current_day { + border-radius: 3px; + background: DeepSkyBlue; + color: black; +} + +table.month td.with_events a { color: white; } diff --git a/faerun_calendar/templates/faerun_calendar/index.html b/faerun_calendar/templates/faerun_calendar/index.html index 8a179e5..c6ab5f0 100644 --- a/faerun_calendar/templates/faerun_calendar/index.html +++ b/faerun_calendar/templates/faerun_calendar/index.html @@ -17,10 +17,8 @@

Год {{year_data.number}}-й

- {% for month in month_data %} - {% if not month.is_leap_month or year_data.is_leap %} - {% include 'faerun_calendar/month.html' with month=month calendar_data=calendar_data month_days=month_days events=events %} - {% endif %} + {% for month in months %} + {% include 'faerun_calendar/month.html' with month=month %} {% endfor %}
{% elif type == 'day' %} @@ -57,6 +55,8 @@

Неверный месяц

{% elif error_type == 'day' %}

Неверный день

+ {% elif error_type == 'unknown' %} +

Неизвестная ошибка

{% endif %} {% endif %} diff --git a/faerun_calendar/templates/faerun_calendar/month.html b/faerun_calendar/templates/faerun_calendar/month.html index 252d0ad..9729a58 100644 --- a/faerun_calendar/templates/faerun_calendar/month.html +++ b/faerun_calendar/templates/faerun_calendar/month.html @@ -14,23 +14,32 @@ {% endif %} {% if not month.is_oneday %} - {% for day in month_days %} + {% for day in month.days %} {% if forloop.counter0|divisibleby:10 %} {% endif %} - {% if day == calendar_data.current_day and year_data == calendar_data.current_year and month == calendar_data.current_month %} - + {% if day.event_counts %} + {% else %} {% endif %} - - {% if root == 'calendar' %} - {{day}} - {% elif root == 'year' %} - {{day}} - {% elif root == 'month' %} - {{day}} + {% if day.number == calendar_data.current_day and month.id == calendar_data.current_month.id and year_data.id == calendar_data.current_year.id %} + {% if root == 'calendar' %} + {{day.number}} + {% elif root == 'year' %} + {{day.number}} + {% elif root == 'month' %} + {{day.number}} + {% endif %} + {% else %} + {% if root == 'calendar' %} + {{day.number}} + {% elif root == 'year' %} + {{day.number}} + {% elif root == 'month' %} + {{day.number}} + {% endif %} {% endif %} diff --git a/faerun_calendar/views.py b/faerun_calendar/views.py index b085823..3e243f7 100644 --- a/faerun_calendar/views.py +++ b/faerun_calendar/views.py @@ -93,19 +93,45 @@ def year_page(request, year: int, root: str = None): params = {'type': 'error', 'error_type': 'year'} if not params: - month_data = MonthData.objects.all().order_by('number') - calendar_data = CalendarData.objects.first() - events = Event.objects.all() + try: + month_data = MonthData.objects.all().order_by('number') + calendar_data = CalendarData.objects.first() - params = { - 'type': 'year', - 'root': root, - 'calendar_data': calendar_data, - 'year_data': year_data, - 'month_data': month_data, - 'month_days': tuple(i+1 for i in range(30)), - 'events': events, - } + months = [] + for month in month_data: + is_oneday_month = getattr(month, 'is_oneday') + is_leap_month = getattr(month, 'is_leap_month') + is_leap_year = getattr(year_data, 'is_leap') + + if is_leap_month and not is_leap_year: + continue + m = { + 'id': getattr(month, 'id'), + 'number': getattr(month, 'number'), + 'name': getattr(month, 'name'), + 'folkname': getattr(month, 'folkname'), + 'is_oneday': getattr(month, 'is_oneday'), + 'days': [] + } + for i in range(0, 1 if is_oneday_month else 30): + day = { + 'number': i+1, + 'event_counts': Event.objects.filter(year=year_data.id, month=month.id, day=i+1, + is_suggested=False, is_only_for_gm=False).count() + } + m['days'].append(day) + + months.append(m) + + params = { + 'type': 'year', + 'root': root, + 'calendar_data': calendar_data, + 'year_data': year_data, + 'months': months, + } + except AttributeError: + params = {'type': 'error', 'error_type': 'unknown'} return render(request, 'faerun_calendar/index.html', params)