manager: add possibility to delete meeting times and time periods

This commit is contained in:
Frédéric Péters 2016-09-18 20:23:13 +02:00
parent 0851680dcf
commit e807eb2156
5 changed files with 51 additions and 0 deletions

View File

@ -16,6 +16,7 @@
{% block appbar %}
{% if object.id %}
<h2>{% trans "Edit Meeting Type" %}</h2>
<a rel="popup" href="{% url 'chrono-manager-meeting-type-delete' pk=object.id %}">{% trans 'Delete' %}</a>
{% else %}
<h2>{% trans "New Meeting Type" %}</h2>
{% endif %}

View File

@ -16,6 +16,7 @@
{% block appbar %}
{% if object.id %}
<h2>{% trans "Edit Time Period" %}</h2>
<a rel="popup" href="{% url 'chrono-manager-time-period-delete' pk=object.id %}">{% trans 'Delete' %}</a>
{% else %}
<h2>{% trans "New Time Period" %}</h2>
{% endif %}

View File

@ -41,11 +41,15 @@ urlpatterns = patterns('chrono.views',
name='chrono-manager-agenda-add-meeting-type'),
url(r'^meetingtypes/(?P<pk>\w+)/edit$', views.meeting_type_edit,
name='chrono-manager-meeting-type-edit'),
url(r'^meetingtypes/(?P<pk>\w+)/delete$', views.meeting_type_delete,
name='chrono-manager-meeting-type-delete'),
url(r'^agendas/(?P<pk>\w+)/add-time-period$', views.agenda_add_time_period,
name='chrono-manager-agenda-add-time-period'),
url(r'^timeperiods/(?P<pk>\w+)/edit$', views.time_period_edit,
name='chrono-manager-time-period-edit'),
url(r'^timeperiods/(?P<pk>\w+)/delete$', views.time_period_delete,
name='chrono-manager-time-period-delete'),
url(r'^agendas/events.csv$', views.agenda_import_events_sample_csv,
name='chrono-manager-sample-events-csv'),

View File

@ -234,6 +234,13 @@ class MeetingTypeEditView(ManagedAgendaSubobjectMixin, UpdateView):
meeting_type_edit = MeetingTypeEditView.as_view()
class MeetingTypeDeleteView(ManagedAgendaSubobjectMixin, DeleteView):
template_name = 'chrono/manager_confirm_delete.html'
model = MeetingType
meeting_type_delete = MeetingTypeDeleteView.as_view()
class AgendaAddTimePeriodView(ManagedAgendaMixin, CreateView):
template_name = 'chrono/manager_time_period_form.html'
model = Event
@ -250,6 +257,13 @@ class TimePeriodEditView(ManagedAgendaSubobjectMixin, UpdateView):
time_period_edit = TimePeriodEditView.as_view()
class TimePeriodDeleteView(ManagedAgendaSubobjectMixin, DeleteView):
template_name = 'chrono/manager_confirm_delete.html'
model = TimePeriod
time_period_delete = TimePeriodDeleteView.as_view()
def menu_json(request):
response = HttpResponse(content_type='application/json')
label = _('Agendas')

View File

@ -545,6 +545,20 @@ def test_meetings_agenda_add_meeting_type(app, admin_user):
resp = resp.form.submit()
assert MeetingType.objects.get(agenda=agenda).duration == 30
def test_meetings_agenda_delete_meeting_type(app, admin_user):
agenda = Agenda(label=u'Foo bar', kind='meetings')
agenda.save()
meeting_type = MeetingType(agenda=agenda, label='Blah')
meeting_type.save()
app = login(app)
resp = app.get('/manage/agendas/%s/' % agenda.id, status=200)
resp = resp.click('Blah')
resp = resp.click('Delete')
resp = resp.form.submit()
assert resp.location == 'http://localhost:80/manage/agendas/%s/' % agenda.id
assert MeetingType.objects.count() == 0
def test_meetings_agenda_add_time_period(app, admin_user):
agenda = Agenda(label=u'Foo bar', kind='meetings')
@ -581,3 +595,20 @@ def test_meetings_agenda_add_time_period(app, admin_user):
resp.form['start_time'] = '9:00'
resp = resp.form.submit()
assert TimePeriod.objects.get(agenda=agenda, weekday=2).start_time.hour == 9
def test_meetings_agenda_delete_time_period(app, admin_user):
agenda = Agenda(label=u'Foo bar', kind='meetings')
agenda.save()
time_period = TimePeriod(agenda=agenda, weekday=2,
start_time=datetime.time(10, 0),
end_time=datetime.time(18, 0))
time_period.save()
app = login(app)
resp = app.get('/manage/agendas/%s/' % agenda.id, status=200)
resp = resp.click('Wednesday')
resp = resp.click('Delete')
resp = resp.form.submit()
assert resp.location == 'http://localhost:80/manage/agendas/%s/' % agenda.id
assert TimePeriod.objects.count() == 0