feat(instance): Permettre de créer, mettre à jour et supprimer des messages d'instance en tant qu'admin

pull/244/head
Zoé Martin 2022-01-28 17:38:01 +01:00
Parent 07fea92c5c
révision cd7bfe5e35
5 fichiers modifiés avec 69 ajouts et 0 suppressions

Voir le fichier

@ -49,3 +49,13 @@ class TermsOfUseCreateForm(CustomTapeformMixin, forms.ModelForm):
class Meta:
model = models.TermsOfUse
fields = '__all__'
class InstanceMessageCreateForm(CustomTapeformMixin, forms.ModelForm):
class Meta:
model = models.InstanceMessage
fields = '__all__'
class InstanceMessageUpdateForm(InstanceMessageCreateForm):
pass

Voir le fichier

@ -52,3 +52,17 @@ class InstanceCategoryIndexTable(tables.Table):
class Meta:
model = models.InstanceCategory
fields = ('name', 'actions')
class InstanceMessageIndexTable(tables.Table):
actions = ActionsColumn(
update_url='instance:instance_message:update',
delete_url='instance:instance_message:delete',
)
name = tables.LinkColumn(
'instance:instance_message:update', args=(A('pk'),)
)
class Meta:
model = models.InstanceMessage
fields = ('content', 'broadcast_date', 'expiration_date')

Voir le fichier

@ -10,6 +10,10 @@ urlpatterns = (
path('roles/', crud_include(views, 'DefaultRole', 'role')),
path('levels/', crud_include(views, 'DefaultLevel', 'level')),
path('categories/', crud_include(views, 'DefaultCategory', 'category')),
path(
'instance-message/',
crud_include(views, 'InstanceMessage', 'instance_message')
),
path(
'instance-category/',
crud_include(views, 'InstanceCategory', 'instance_category'),

Voir le fichier

@ -155,3 +155,41 @@ class TermsOfUseCreate(
success_message = (
"La nouvelle charte d'utilisation est désormais en ligne."
)
# INSTANCE MESSAGES
# ------------------------------------------------------------------------------
class InstanceMessageViewMixin(StaffCruditorPageMixin):
model = models.InstanceMessage
success_url = reverse_lazy('instance:instance_message:index')
class InstanceMessageIndex(
InstanceMessageViewMixin,
views.CruditorListView,
):
table_class = tables.InstanceMessageIndexTable
title = "Liste des messages d'instance"
create_titlebutton_label = "Ajouter une message"
create_url = reverse_lazy('instance:instance_message:create')
class InstanceMessageCreate(InstanceMessageViewMixin, views.CruditorAddView):
form_class = forms.InstanceMessageCreateForm
class InstanceMessageUpdate(
InstanceMessageViewMixin, views.CruditorChangeView
):
form_class = forms.InstanceMessageUpdateForm
def get_delete_url(self):
return reverse('instance:instance_message:delete', args=(self.object.pk,))
class InstanceMessageDelete(
InstanceMessageViewMixin, views.CruditorDeleteView
):
pass

Voir le fichier

@ -25,6 +25,9 @@
<a class="dropdown-item" href="{% url "instance:instance_category:index" %}">
<i class="fa fa-tag fa-fw mr-2" aria-hidden="true"></i>Catégories d'instance
</a>
<a class="dropdown-item" href="{% url "instance:instance_message:index" %}">
<i class="fa fa-comment fa-fw mr-2" aria-hidden="true"></i>Messages d'instance
</a>
<a class="dropdown-item" href="{% url "instance:terms_of_use" %}">
<i class="fa fa-file-text fa-fw mr-2" aria-hidden="true"></i>Charte d'utilisation
</a>