manager: add possibility to delete meeting times and time periods
This commit is contained in:
parent
0851680dcf
commit
e807eb2156
|
@ -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 %}
|
||||
|
|
|
@ -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 %}
|
||||
|
|
|
@ -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'),
|
||||
|
|
|
@ -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')
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue