--- /dev/null
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.29 on 2020-12-03 15:41
+from __future__ import unicode_literals
+
+import ckeditor.fields
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ initial = True
+
+ dependencies = [
+ ]
+
+ operations = [
+ migrations.CreateModel(
+ name='Message',
+ fields=[
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+ ('style', models.CharField(choices=[('info', 'Info'), ('alert', 'Alert')], default='info', max_length=20, verbose_name='Style')),
+ ('text', ckeditor.fields.RichTextField(blank=True, default='', verbose_name='Description')),
+ ],
+ ),
+ ]
--- /dev/null
+from django.db import models
+from django.utils.translation import ugettext_lazy as _
+
+from ckeditor.fields import RichTextField
+
+
+MESSAGE_STYLES = (
+ ('info', _('Info')),
+ ('alert', _('Alert')),
+)
+
+
+class Message(models.Model):
+ style = models.CharField(_('Style'),
+ max_length=20, default='info', choices=MESSAGE_STYLES)
+ text = RichTextField(_('Description'), blank=True, default='')
--- /dev/null
+from django.conf.urls import url
+
+from . import views
+
+
+urlpatterns = [
+ url(r'^edit/(?P<pk>\d+)/$', views.message_edit, name='message-edit-view'),
+]
--- /dev/null
+from django.contrib.admin.views.decorators import staff_member_required
+from django.views.generic.edit import UpdateView
+
+from .models import Message
+
+
+class MessageEditView(UpdateView):
+ model = Message
+ fields = ['style', 'text']
+ success_url = '/'
+ template_name = 'service_message_form.html'
+
+
+message_edit = staff_member_required(MessageEditView.as_view())
'nonstop',
'panikdb.aa',
'panikdb.customtags',
+ 'panikdb.service_messages',
'panikdb.oauth',
'panikdb.regie',
'panikdb.stats',
<h2>Émissions</h2>
{% if perms.emissions.change_emission %}
<span class="actions">
+ {% if request.user.is_staff and not service_message.text %}
+ <a href="{% url 'message-edit-view' pk=service_message.id %}">Définir un message de service</a>
+ {% endif %}
<a href="{% url 'emission-list' %}">Toutes les émissions</a>
<a href="{% url 'news-list' %}">Toutes les actus</a>
{% if perms.emissions.add_emission %}
-->
{% endif %}
+{% if service_message.text %}
+<div class="block {{service_message.style}}notice">
+ {% if request.user.is_staff %}
+ <a style="float: right" href="{% url 'message-edit-view' pk=service_message.id %}">Modifier le message de service</a>
+ {% endif %}
+ {{service_message.text|default:""|safe}}
+</div>
+{% endif %}
+
{% for emission in emissions %}
<div class="emission block">
<h3><a href="{% url 'emission-view' slug=emission.slug %}">{{ emission.title }}</a></h3>
--- /dev/null
+{% extends "base.html" %}
+{% load static %}
+
+{% block content %}
+<form method="post">
+{% csrf_token %}
+{{ form.as_p }}
+
+<div class="buttons">
+<button>Enregistrer</button>
+<a class="cancel" href="../..">Annuler</a>
+</div>
+</form>
+<script src="{% static "ckeditor/ckeditor/ckeditor.js" %}"></script>
+<script type="text/javascript" src="{% static "ckeditor/ckeditor-init.js" %}"></script>
+
+{% endblock %}
from .regie.urls import urlpatterns as regie_urlpatterns
from .oauth.urls import urlpatterns as oauth_urlpatterns
from .aa.urls import urlpatterns as aa_urlpatterns
+from .service_messages.urls import urlpatterns as service_messages_urlpatterns
from wiki.urls import urlpatterns as wiki_urlpatterns
from panikombo.urls import urlpatterns as panikombo_urlpatterns
url(r'^wiki/', include(wiki_urlpatterns)),
url(r'^regie/', include(regie_urlpatterns)),
url(r'^oauth/', include(oauth_urlpatterns)),
+ url(r'^messages/', include(service_messages_urlpatterns)),
url(r'^admin/', include(admin.site.urls)),
]
import newsletter.views
from .poll.models import Vote
+from .service_messages.models import Message
+
class Home(TemplateView):
template_name = 'home.html'
context['display_poll_button'] = True
context['emissions'] = self.request.user.emissions.all().order_by('title')
context['news_categories'] = self.request.user.news_categories.all().order_by('title')
+ context['service_message'] = Message.objects.all().first()
+ if not context['service_message']:
+ context['service_message'] = Message.objects.create(style='info')
+ if not context['service_message'].text and not self.request.user.is_staff:
+ context['service_message'] = None
if self.request.user.has_perm('emissions.add_focus'):
context['focused_items'] = Focus.objects.select_related().filter(current=True)
context['recent_episodes'] = Episode.objects.select_related(