Add option to delete info item.
This commit is contained in:
parent
9d5a9daab4
commit
642c452984
30
src/teams/templates/info_item_delete_confirm.html
Normal file
30
src/teams/templates/info_item_delete_confirm.html
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
{% extends 'base.html' %}
|
||||||
|
{% load commonmark %}
|
||||||
|
{% load bootstrap3 %}
|
||||||
|
|
||||||
|
{% block title %}
|
||||||
|
{% if form.instance.id %}
|
||||||
|
Edit Info Item: {{ form.instance.headline }}
|
||||||
|
{% else %}
|
||||||
|
Create Info item
|
||||||
|
{% endif %}
|
||||||
|
in {{ form.instance.category.headline }}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h4>
|
||||||
|
Delete info item {{ object.name }}
|
||||||
|
in {{ form.instance.category.headline }}
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<form method="POST">
|
||||||
|
{% csrf_token %}
|
||||||
|
<p>Are you sure you want to delete "{{ object.headline }}" in the "{{ object.category.headline }}" category.</p>
|
||||||
|
<button type="submit" class="btn btn-danger">Delete</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock %}
|
|
@ -3,31 +3,37 @@
|
||||||
{% load bootstrap3 %}
|
{% load bootstrap3 %}
|
||||||
|
|
||||||
{% block title %}
|
{% block title %}
|
||||||
{% if form.instance.id %}
|
{% if object %}
|
||||||
Edit Info Item: {{ form.instance.headline }}
|
Editing "{{ object.headline }}"
|
||||||
{% else %}
|
{% else %}
|
||||||
Create Info item
|
Create Info item
|
||||||
{% endif %}
|
{% endif %}
|
||||||
in {{ form.instance.category.headline }}
|
in "{{ form.instance.category.headline }}"
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<h4>
|
<h4>
|
||||||
{% if form.instance.id %}
|
{% if object %}
|
||||||
Edit Info Item: {{ form.instance.name }}
|
Editing "{{ object.headline }}"
|
||||||
{% else %}
|
{% else %}
|
||||||
Create Info Item
|
Create Info Item
|
||||||
{% endif %}
|
{% endif %}
|
||||||
in {{ form.instance.category.headline }}
|
in "{{ object.category.headline }}"
|
||||||
</h4>
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<form method="POST">
|
<form method="POST">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
{% bootstrap_form form %}
|
{% bootstrap_form form %}
|
||||||
<button type="submit" class="btn btn-primary">{% if form.instance.id %}Save{% else %}Create{% endif %}</button>
|
<button type="submit" class="btn btn-primary">{% if object.id %}Save{% else %}Create{% endif %}</button>
|
||||||
|
{% if object %}
|
||||||
|
<a href="{% url 'teams:info_item_delete' camp_slug=camp.slug team_slug=object.category.team.slug category_anchor=object.category.anchor item_anchor=object.anchor %}"
|
||||||
|
class="btn btn-danger">
|
||||||
|
<i class="fa fa-remove"></i> Delete
|
||||||
|
</a>
|
||||||
|
{% endif %}
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-footer"><i>This info item belongs to the <a href="{% url 'teams:detail' team_slug=team.slug camp_slug=team.camp.slug %}">{{ team.name }} Team</a></i></div>
|
<div class="panel-footer"><i>This info item belongs to the <a href="{% url 'teams:detail' team_slug=team.slug camp_slug=team.camp.slug %}">{{ team.name }} Team</a></i></div>
|
||||||
|
|
|
@ -10,7 +10,7 @@ from teams.views.base import (
|
||||||
TeamManageView,
|
TeamManageView,
|
||||||
FixIrcAclView,
|
FixIrcAclView,
|
||||||
)
|
)
|
||||||
from teams.views.info import InfoItemUpdateView, InfoItemCreateView
|
from teams.views.info import InfoItemUpdateView, InfoItemCreateView, InfoItemDeleteView
|
||||||
|
|
||||||
from teams.views.tasks import (
|
from teams.views.tasks import (
|
||||||
TaskCreateView,
|
TaskCreateView,
|
||||||
|
@ -105,6 +105,11 @@ urlpatterns = [
|
||||||
InfoItemUpdateView.as_view(),
|
InfoItemUpdateView.as_view(),
|
||||||
name='info_item_update',
|
name='info_item_update',
|
||||||
),
|
),
|
||||||
|
url(
|
||||||
|
r'^delete/$',
|
||||||
|
InfoItemDeleteView.as_view(),
|
||||||
|
name='info_item_delete',
|
||||||
|
),
|
||||||
]),
|
]),
|
||||||
),
|
),
|
||||||
])
|
])
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from django.contrib.auth.mixins import LoginRequiredMixin
|
from django.contrib.auth.mixins import LoginRequiredMixin
|
||||||
from django.http import HttpResponseRedirect
|
from django.http import HttpResponseRedirect
|
||||||
from django.views.generic import CreateView, UpdateView
|
from django.views.generic import CreateView, UpdateView, DeleteView
|
||||||
from reversion.views import RevisionMixin
|
from reversion.views import RevisionMixin
|
||||||
|
|
||||||
from camps.mixins import CampViewMixin
|
from camps.mixins import CampViewMixin
|
||||||
|
@ -47,3 +47,16 @@ class InfoItemUpdateView(LoginRequiredMixin, CampViewMixin, EnsureTeamResponsibl
|
||||||
if next:
|
if next:
|
||||||
return next
|
return next
|
||||||
return self.team.get_absolute_url()
|
return self.team.get_absolute_url()
|
||||||
|
|
||||||
|
|
||||||
|
class InfoItemDeleteView(LoginRequiredMixin, CampViewMixin, EnsureTeamResponsibleMixin, RevisionMixin, DeleteView):
|
||||||
|
model = InfoItem
|
||||||
|
template_name = "info_item_delete_confirm.html"
|
||||||
|
slug_field = 'anchor'
|
||||||
|
slug_url_kwarg = 'item_anchor'
|
||||||
|
|
||||||
|
def get_success_url(self):
|
||||||
|
next = self.request.GET.get('next')
|
||||||
|
if next:
|
||||||
|
return next
|
||||||
|
return self.team.get_absolute_url()
|
||||||
|
|
Loading…
Reference in a new issue