]> git.0d.be Git - django-panik-emissions.git/commitdiff
add possibility of emission chat
authorFrédéric Péters <fpeters@0d.be>
Thu, 21 Apr 2016 13:47:29 +0000 (15:47 +0200)
committerFrédéric Péters <fpeters@0d.be>
Thu, 21 Apr 2016 13:47:29 +0000 (15:47 +0200)
emissions/migrations/0005_emission_chat_open.py [new file with mode: 0644]
emissions/models.py
emissions/templates/emissions/emission_detail.html
emissions/urls.py
emissions/views.py

diff --git a/emissions/migrations/0005_emission_chat_open.py b/emissions/migrations/0005_emission_chat_open.py
new file mode 100644 (file)
index 0000000..17289f3
--- /dev/null
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+from __future__ import unicode_literals
+
+from django.db import models, migrations
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('emissions', '0004_focus_page'),
+    ]
+
+    operations = [
+        migrations.AddField(
+            model_name='emission',
+            name='chat_open',
+            field=models.DateTimeField(null=True),
+            preserve_default=True,
+        ),
+    ]
index 64aad3b49e469d432dee361655ad1e6123824fab..b24981295aa39bb913eaa5ce0efde13d347fa88f 100644 (file)
@@ -115,6 +115,8 @@ class Emission(models.Model):
     image = models.ImageField(_('Image'),
             upload_to=get_emission_image_path, max_length=250, null=True, blank=True)
 
+    chat_open = models.DateTimeField(null=True)
+
     # denormalized from Focus
     got_focus = models.DateTimeField(default=None, null=True, blank=True)
     has_focus = models.BooleanField(default=False)
index c0f90090664dfbcafe86a87344459e7b620ab09c..1f17582d17a0ab3907bc6559bc5b6faa88c7f54b 100644 (file)
 {% if perms.emissions.add_absence and schedules %}
 <a class="big-friendly-button" id="add-absence-link" href="#">Ajouter une absence</a>
 {% endif %}
+{% if emission.chat_open %}
+<a class="big-friendly-button" href="{% url 'emission-close-chat' slug=emission.slug %}">Fermer le chat</a>
+{% else %}
+<a class="big-friendly-button" href="{% url 'emission-open-chat' slug=emission.slug %}">Ouvrir le chat</a>
+{% endif %}
 </p>
 {% endif %}
 
index 988de0287a40f1c9d1d48106e89d0382b045cd8d..fa42a1cacc7ab06b8969e723a0d6579966c03998 100644 (file)
@@ -20,6 +20,9 @@ urlpatterns = patterns('',
     url(r'^(?P<slug>[\w,-]+)/add-schedule$', EmissionAddScheduleView.as_view(), name='emission-add-schedule'),
     url(r'^(?P<slug>[\w,-]+)/add-absence$', EmissionAddAbsenceView.as_view(), name='emission-add-absence'),
 
+    url(r'^(?P<slug>[\w,-]+)/chat/open/$', EmissionOpenChatView.as_view(), name='emission-open-chat'),
+    url(r'^(?P<slug>[\w,-]+)/chat/close/$', EmissionCloseChatView.as_view(), name='emission-close-chat'),
+
     url(r'^(?P<emission_slug>[\w,-]+)/schedule/(?P<pk>\d+)/remove$',
             ScheduleDeleteView.as_view(), name='schedule-delete'),
     url(r'^(?P<emission_slug>[\w,-]+)/absence/(?P<pk>\d+)/remove$',
index f8f4f8143d9d5e783b272a4607c949f3776d294e..ae1551d39551eb63000de05014ee324243fe1118 100644 (file)
@@ -7,6 +7,7 @@ from django.core.files.storage import DefaultStorage
 from django.core.urlresolvers import reverse_lazy
 from django.http import HttpResponse, Http404
 from django.core.urlresolvers import reverse, reverse_lazy
+from django.shortcuts import redirect
 from django.utils.translation import ugettext as _, ugettext_lazy
 
 from django.views.decorators.csrf import csrf_exempt
@@ -37,7 +38,8 @@ __all__ = ['EmissionListView', 'EmissionDetailView', 'EmissionCreateView',
            'NewsItemUpdateView', 'CategoryNewsItemAddView',
            'NewsItemDeleteView', 'NewsItemAddView',
            'SoundFileDeleteView', 'SoundFileUpdateView',
-           'EmissionAddAbsenceView', 'AbsenceDeleteView',]
+           'EmissionAddAbsenceView', 'AbsenceDeleteView',
+           'EmissionOpenChatView', 'EmissionCloseChatView']
 
 
 SUCCESS_MESSAGE = ugettext_lazy('Your changes will appear online in a few minutes.')
@@ -534,3 +536,21 @@ class SoundFileUpdateView(UpdateView):
     def get_success_url(self):
         messages.success(self.request, SUCCESS_MESSAGE)
         return '../../'
+
+
+class EmissionOpenChatView(DetailView):
+    model = Emission
+
+    def render_to_response(self, context):
+        self.object.chat_open = datetime.datetime.now()
+        self.object.save()
+        return redirect(self.object.get_absolute_url())
+
+
+class EmissionCloseChatView(DetailView):
+    model = Emission
+
+    def render_to_response(self, context):
+        self.object.chat_open = None
+        self.object.save()
+        return redirect(self.object.get_absolute_url())