manager: update event URIs to be under /agendas/<pk>/ (#20279)
This commit is contained in:
parent
f1f7d8a7d7
commit
7ada884db3
|
@ -369,7 +369,7 @@ class Event(models.Model):
|
|||
return self.start_datetime + datetime.timedelta(minutes=self.meeting_type.duration)
|
||||
|
||||
def get_absolute_url(self):
|
||||
return reverse('chrono-manager-event-edit', kwargs={'pk': self.id})
|
||||
return reverse('chrono-manager-event-edit', kwargs={'pk': self.agenda.id, 'event_pk': self.id})
|
||||
|
||||
@classmethod
|
||||
def import_json(cls, data):
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
{% if object.id %}
|
||||
<h2>{% trans "Edit Event" %}</h2>
|
||||
<span class="actions">
|
||||
<a rel="popup" href="{% url 'chrono-manager-event-delete' pk=object.id %}">{% trans 'Delete' %}</a>
|
||||
<a rel="popup" href="{% url 'chrono-manager-event-delete' pk=object.agenda.id event_pk=object.id %}">{% trans 'Delete' %}</a>
|
||||
</span>
|
||||
{% else %}
|
||||
<h2>{% trans "New Event" %}</h2>
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
{% elif event.waiting_list_places %}
|
||||
data-total="{{event.waiting_list_places}}" data-booked="{{event.waiting_list}}"
|
||||
{% endif %}
|
||||
><a rel="popup" href="{% if user_can_manage %}{% url 'chrono-manager-event-edit' pk=event.id %}{% else %}#{% endif %}">
|
||||
><a rel="popup" href="{% if user_can_manage %}{% url 'chrono-manager-event-edit' pk=agenda.id event_pk=event.id %}{% else %}#{% endif %}">
|
||||
{% if event.label %}{{event.label}} / {% endif %}
|
||||
{{ event.start_datetime }}
|
||||
{% if event.full %}/ <span class="full">{% trans "full" %}</span>{% endif %}
|
||||
|
@ -41,7 +41,7 @@
|
|||
({% trans "out of bookable period" %})
|
||||
{% endif %}
|
||||
</a>
|
||||
{% if user_can_manage %}<a rel="popup" class="delete" href="{% url 'chrono-manager-event-delete' pk=event.id %}">{% trans "remove" %}</a>{% endif %}
|
||||
{% if user_can_manage %}<a rel="popup" class="delete" href="{% url 'chrono-manager-event-delete' pk=agenda.id event_pk=event.id %}">{% trans "remove" %}</a>{% endif %}
|
||||
<span class="occupation-bar"></span>
|
||||
</li>
|
||||
{% endfor %}
|
||||
|
|
|
@ -43,8 +43,16 @@ urlpatterns = [
|
|||
views.agenda_import_events,
|
||||
name='chrono-manager-agenda-import-events',
|
||||
),
|
||||
url(r'^events/(?P<pk>\d+)/$', views.event_edit, name='chrono-manager-event-edit'),
|
||||
url(r'^events/(?P<pk>\d+)/delete$', views.event_delete, name='chrono-manager-event-delete'),
|
||||
url(
|
||||
r'^agendas/(?P<pk>\d+)/events/(?P<event_pk>\d+)/edit$',
|
||||
views.event_edit,
|
||||
name='chrono-manager-event-edit',
|
||||
),
|
||||
url(
|
||||
r'^agendas/(?P<pk>\d+)/events/(?P<event_pk>\d+)/delete$',
|
||||
views.event_delete,
|
||||
name='chrono-manager-event-delete',
|
||||
),
|
||||
url(
|
||||
r'^agendas/(?P<pk>\d+)/add-meeting-type$',
|
||||
views.agenda_add_meeting_type,
|
||||
|
|
|
@ -693,18 +693,20 @@ class AgendaImportEventsView(ManagedAgendaMixin, FormView):
|
|||
agenda_import_events = AgendaImportEventsView.as_view()
|
||||
|
||||
|
||||
class EventEditView(ManagedAgendaSubobjectMixin, UpdateView):
|
||||
class EventEditView(ManagedAgendaMixin, UpdateView):
|
||||
template_name = 'chrono/manager_event_form.html'
|
||||
model = Event
|
||||
form_class = EventForm
|
||||
pk_url_kwarg = 'event_pk'
|
||||
|
||||
|
||||
event_edit = EventEditView.as_view()
|
||||
|
||||
|
||||
class EventDeleteView(ManagedAgendaSubobjectMixin, DeleteView):
|
||||
class EventDeleteView(ManagedAgendaMixin, DeleteView):
|
||||
template_name = 'chrono/manager_confirm_delete.html'
|
||||
model = Event
|
||||
pk_url_kwarg = 'event_pk'
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(EventDeleteView, self).get_context_data(**kwargs)
|
||||
|
|
|
@ -358,7 +358,7 @@ def test_add_event(app, admin_user):
|
|||
event = Event.objects.get(places=10)
|
||||
assert event.slug is None
|
||||
assert not "This agenda doesn't have any event yet." in resp.text
|
||||
assert '/manage/events/%s/' % event.id in resp.text
|
||||
assert '/manage/agendas/%s/events/%s/' % (agenda.id, event.id) in resp.text
|
||||
assert ('Feb. 15, %s, 5 p.m.' % year) in resp.text
|
||||
assert '10 places' in resp.text
|
||||
|
||||
|
@ -404,7 +404,7 @@ def test_add_event_as_manager(app, manager_user):
|
|||
resp = resp.follow()
|
||||
event = Event.objects.get(places=10)
|
||||
assert not "This agenda doesn't have any event yet." in resp.text
|
||||
assert '/manage/events/%s/' % event.id in resp.text
|
||||
assert '/manage/agendas/%s/events/%s/edit' % (agenda.id, event.id) in resp.text
|
||||
assert 'Feb. 15, 2016, 5 p.m.' in resp.text
|
||||
assert '10 places' in resp.text
|
||||
|
||||
|
@ -422,7 +422,7 @@ def test_edit_event(app, admin_user):
|
|||
resp.form['places'] = 20
|
||||
resp = resp.form.submit()
|
||||
resp = resp.follow()
|
||||
assert '/manage/events/%s/' % event.id in resp.text
|
||||
assert '/manage/agendas/%s/events/%s/edit' % (agenda.id, event.id) in resp.text
|
||||
assert 'Feb. 16, 2016, 5 p.m.' in resp.text
|
||||
assert '20 places' in resp.text
|
||||
|
||||
|
@ -439,7 +439,7 @@ def test_edit_event_as_manager(app, manager_user):
|
|||
event = Event(start_datetime=make_aware(datetime.datetime(2016, 2, 15, 17, 0)), places=20, agenda=agenda)
|
||||
event.save()
|
||||
app = login(app, username='manager', password='manager')
|
||||
resp = app.get('/manage/events/%s/' % event.id, status=403)
|
||||
resp = app.get('/manage/agendas/%s/events/%s/edit' % (agenda.id, event.id), status=403)
|
||||
|
||||
agenda.edit_role = manager_user.groups.all()[0]
|
||||
agenda.save()
|
||||
|
@ -450,7 +450,7 @@ def test_edit_event_as_manager(app, manager_user):
|
|||
resp.form['places'] = 20
|
||||
resp = resp.form.submit()
|
||||
resp = resp.follow()
|
||||
assert '/manage/events/%s/' % event.id in resp.text
|
||||
assert '/manage/agendas/%s/events/%s/edit' % (agenda.id, event.id) in resp.text
|
||||
assert 'Feb. 16, 2016, 5 p.m.' in resp.text
|
||||
assert '20 places' in resp.text
|
||||
|
||||
|
@ -502,7 +502,7 @@ def test_delete_event(app, admin_user):
|
|||
|
||||
app = login(app)
|
||||
resp = app.get('/manage/agendas/%s/settings' % agenda.id, status=200)
|
||||
resp = resp.click(href=r'/manage/events/%s/$' % event.id)
|
||||
resp = resp.click(href='/manage/agendas/%s/events/%s/edit' % (agenda.id, event.id))
|
||||
resp = resp.click('Delete')
|
||||
resp = resp.form.submit()
|
||||
assert resp.location.endswith('/manage/agendas/%s/settings' % agenda.id)
|
||||
|
@ -517,21 +517,21 @@ def test_delete_busy_event(app, admin_user):
|
|||
|
||||
app = login(app)
|
||||
resp = app.get('/manage/agendas/%s/settings' % agenda.id, status=200)
|
||||
resp = resp.click(href=r'/manage/events/%s/$' % event.id)
|
||||
resp = resp.click(href='/manage/agendas/%s/events/%s/edit' % (agenda.id, event.id))
|
||||
resp = resp.click('Delete')
|
||||
assert 'Are you sure you want to delete this?' in resp.text
|
||||
|
||||
booking = Booking(event=event)
|
||||
booking.save()
|
||||
resp = app.get('/manage/agendas/%s/settings' % agenda.id, status=200)
|
||||
resp = resp.click(href=r'/manage/events/%s/$' % event.id)
|
||||
resp = resp.click(href='/manage/agendas/%s/events/%s/edit' % (agenda.id, event.id))
|
||||
resp = resp.click('Delete')
|
||||
assert 'This cannot be removed' in resp.text
|
||||
|
||||
booking.cancellation_datetime = now()
|
||||
booking.save()
|
||||
resp = app.get('/manage/agendas/%s/settings' % agenda.id, status=200)
|
||||
resp = resp.click(href=r'/manage/events/%s/$' % event.id)
|
||||
resp = resp.click(href='/manage/agendas/%s/events/%s/edit' % (agenda.id, event.id))
|
||||
resp = resp.click('Delete')
|
||||
assert 'Are you sure you want to delete this?' in resp.text
|
||||
|
||||
|
@ -551,7 +551,7 @@ def test_delete_event_as_manager(app, manager_user):
|
|||
|
||||
app = login(app, username='manager', password='manager')
|
||||
resp = app.get('/manage/agendas/%s/settings' % agenda.id, status=200)
|
||||
resp = resp.click(href=r'/manage/events/%s/$' % event.id)
|
||||
resp = resp.click(href='/manage/agendas/%s/events/%s/edit' % (agenda.id, event.id))
|
||||
resp = resp.click('Delete')
|
||||
resp = resp.form.submit()
|
||||
assert resp.location.endswith('/manage/agendas/%s/settings' % agenda.id)
|
||||
|
|
Loading…
Reference in New Issue