]> git.0d.be Git - panikweb.git/commitdiff
regroup episodes by year unless there are many per month
authorFrédéric Péters <fpeters@0d.be>
Sat, 16 Oct 2021 13:14:24 +0000 (15:14 +0200)
committerFrédéric Péters <fpeters@0d.be>
Sat, 16 Oct 2021 13:31:50 +0000 (15:31 +0200)
panikweb/templates/emissions/episodes.html
panikweb/views.py

index 2d4979edb21270fc364571192855369ae92381ae..b1d3ec2c6f415551ef52de4398bc52ca1c2ae446 100644 (file)
        <div id="Emission-container" class="emission">
                {% if episodes %}
                        {% with episodes as episodes %}
-                               {% regroup episodes by first_diffusion|date:"F Y"|capfirst as month_list %}
+                               {% if count_per_month < 10 %}
+                               {% regroup episodes by first_diffusion|date:"Y"|capfirst as timed_list %}
+                               {% else %}
+                               {% regroup episodes by first_diffusion|date:"F Y"|capfirst as timed_list %}
+                               {% endif %}
                                <div>
-                               {% for month in month_list %}
-                                       <div class="monthGroup {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}">
+                               {% for timed in timed_list %}
+                                       <div class="timedGroup {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}">
                                                <div 
-                                                       class="legend button"                                           
-                                                       onclick="$('#{{ month.grouper|slugify }}').toggle();"
-                                               >&gt; {{ month.grouper }}</div>
-                                               <ul class="custom list" id="{{ month.grouper|slugify }}" 
+                                                       class="legend button"
+                                                       onclick="$('#{{ timed.grouper|slugify }}').toggle();"
+                                               >&gt; {{ timed.grouper }}</div>
+                                               <ul class="custom list" id="{{ timed.grouper|slugify }}"
                                                        {% if forloop.counter >= 3 %}style="display:none;"{% endif %}
                                                >
-                                               {% for episode in month.list %}
-                                                       <li>{% episode_resume model="inline" date="daytime" %}</li>
+                                               {% for episode in timed.list %}
+                                                       <li>{% episode_resume model="inline" %}</li>
                                                {% endfor %}
                                                </ul>
                                        </div>
index fa0bb4aed3fd140aceda36fb4b3b7f412721b7c2..cd77413e20886fe3759483b7096bbd725bdf9274 100644 (file)
@@ -230,6 +230,13 @@ class EmissionEpisodesDetailView(DetailView, EmissionMixin):
         context['schedules'] = (
             Schedule.objects.select_related().filter(emission=self.object).order_by('rerun', 'datetime')
         )
+        count_per_month = 0
+        for schedule in context['schedules']:
+            if schedule.rerun:
+                continue
+            count_per_month += bin(schedule.weeks).count('1')
+
+        context['count_per_month'] = count_per_month
 
         context['search_query'] = self.request.GET.get('q')
         if context['search_query']: