feat(instance): Permettre de créer, mettre à jour et supprimer des messages d'instance en tant qu'admin
Parent
07fea92c5c
révision
cd7bfe5e35
|
@ -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
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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'),
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
|
Chargement…
Référencer dans un nouveau ticket