def date_add (request, topic_map, entity_id, assertion_id): entity = get_topic_or_404(Entity, entity_id) assertion = entity.get_assertion(assertion_id) if assertion is None: raise Http404 authority = assertion.authority if authority != request.user.eats_user.get_current_authority(): raise Http404 calendar_choices = create_choice_list( topic_map, Calendar.objects.filter_by_authority(authority)) date_period_choices = create_choice_list( topic_map, DatePeriod.objects.filter_by_authority(authority)) date_type_choices = create_choice_list( topic_map, DateType.objects.filter_by_authority(authority)) if request.method == 'POST': form = DateForm(topic_map, calendar_choices, date_period_choices, date_type_choices, request.POST) if form.is_valid(): date_id = form.save(assertion) if '_continue' in form.data: redirect_ids = {'assertion_id': assertion_id, 'date_id': date_id, 'entity_id': entity_id} redirect_url = reverse('date-change', kwargs=redirect_ids) else: redirect_ids = {'entity_id': entity_id} redirect_url = reverse('entity-change', kwargs=redirect_ids) return redirect(redirect_url) else: form = DateForm(topic_map, calendar_choices, date_period_choices, date_type_choices) context_data = {'form': form} return render(request, 'eats/edit/date_add.html', context_data)
def edit_date(request, date, editable_authorities): """View to edit an existing Date object.""" # QAZ: display errors on the template. context_data = {'date': date, 'entity': date.assertion.entity} if request.method == 'POST': post_data = request.POST.copy() post_data['assertion'] = date.assertion.id if post_data.get('submit_delete'): return HttpResponseRedirect(reverse(delete_object, kwargs={'model_name': 'date', 'object_id': date.id})) form = DateForm(instance=date, data=post_data) if form.is_valid(): form.save() kw_args = {} if post_data.get('submit_continue'): kw_args['model_name'] = 'date' kw_args['object_id'] = date.id else: # Redirect to the page for the assertion this date is # associated with. property_type = date.assertion.get_type() if property_type == 'name': kw_args['model_name'] = 'name' kw_args['object_id'] = date.assertion.name.id else: kw_args['model_name'] = 'entity' kw_args['object_id'] = date.assertion.entity.id return HttpResponseRedirect(reverse(edit_model_object, kwargs=kw_args)) else: form = DateForm(instance=date) context_data['form'] = form return render(request, 'eats/edit/edit_date.html', context_data)
def date_add (request, topic_map, entity_id, assertion_id): entity = get_topic_or_404(Entity, entity_id) assertion = entity.get_assertion(assertion_id) if assertion is None: raise Http404 authority = assertion.authority if authority != request.user.eats_user.get_current_authority(): raise Http404 calendar_choices = create_choice_list( topic_map, Calendar.objects.filter_by_authority(authority)) date_period_choices = create_choice_list( topic_map, DatePeriod.objects.filter_by_authority(authority)) date_type_choices = create_choice_list( topic_map, DateType.objects.filter_by_authority(authority)) if request.method == 'POST': form = DateForm(topic_map, calendar_choices, date_period_choices, date_type_choices, request.POST) if form.is_valid(): date_id = form.save(assertion) if '_continue' in form.data: redirect_ids = {'assertion_id': assertion_id, 'date_id': date_id, 'entity_id': entity_id} redirect_url = reverse('date-change', kwargs=redirect_ids) else: redirect_ids = {'entity_id': entity_id} redirect_url = reverse('entity-change', kwargs=redirect_ids) return HttpResponseRedirect(redirect_url) else: form = DateForm(topic_map, calendar_choices, date_period_choices, date_type_choices) context_data = {'form': form} return render_to_response('eats/edit/date_add.html', context_data, context_instance=RequestContext(request))
def create_date(request, assertion_id): """View to create a date for an assertion.""" assertion = get_object_or_404(PropertyAssertion, pk=assertion_id) authority = assertion.authority_record.authority try: profile, editable_authorities = get_editable_authorities(request.user, authority) except EATSAuthenticationException as e: return HttpResponseRedirect(e.get_url()) calendar_id = profile.calendar.id date_type_id = profile.date_type.id initial_data = {'start_date_calendar': calendar_id, 'start_date_type': date_type_id, 'end_date_calendar': calendar_id, 'end_date_type': date_type_id, 'point_date_calendar': calendar_id, 'point_date_type': date_type_id, 'start_terminus_post_calendar': calendar_id, 'start_terminus_post_type': date_type_id, 'start_terminus_ante_calendar': calendar_id, 'start_terminus_ante_type': date_type_id, 'point_terminus_post_calendar': calendar_id, 'point_terminus_post_type': date_type_id, 'point_terminus_ante_calendar': calendar_id, 'point_terminus_ante_type': date_type_id, 'end_terminus_post_calendar': calendar_id, 'end_terminus_post_type': date_type_id, 'end_terminus_ante_calendar': calendar_id, 'end_terminus_ante_type': date_type_id, 'date_period': profile.date_period.id} if request.method == 'POST': post_data = request.POST.copy() post_data['assertion'] = assertion_id form = DateForm(data=post_data) if form.is_valid(): date = form.save() kw_args = {} if post_data.get('submit_continue'): kw_args['model_name'] = 'date' kw_args['object_id'] = date.id else: # Redirect to the page for the assertion this date is # associated with. property_type = date.assertion.get_type() if property_type == 'name': kw_args['model_name'] = 'name' kw_args['object_id'] = date.assertion.name.id else: kw_args['model_name'] = 'entity' kw_args['object_id'] = date.assertion.entity.id return HttpResponseRedirect(reverse(edit_model_object, kwargs=kw_args)) else: form = DateForm(initial=initial_data) context_data = {'form': form} return render(request, 'eats/edit/add_date.html', context_data)
def date_change (request, topic_map, entity_id, assertion_id, date_id): entity = get_topic_or_404(Entity, entity_id) assertion = entity.get_assertion(assertion_id) if assertion is None: raise Http404 date = assertion.get_date(date_id) if date is None: raise Http404 authority = assertion.authority if authority != request.user.eats_user.get_current_authority(): raise Http404 calendar_choices = create_choice_list( topic_map, Calendar.objects.filter_by_authority(authority)) date_period_choices = create_choice_list( topic_map, DatePeriod.objects.filter_by_authority(authority)) date_type_choices = create_choice_list( topic_map, DateType.objects.filter_by_authority(authority)) if request.method == 'POST': form = DateForm(topic_map, calendar_choices, date_period_choices, date_type_choices, request.POST, instance=date) redirect_ids = {'entity_id': entity_id} redirect_url = reverse('entity-change', kwargs=redirect_ids) if '_delete' in form.data: form.delete() return HttpResponseRedirect(redirect_url) if form.is_valid(): date_id = form.save() if '_continue' in form.data: redirect_ids['assertion_id'] = assertion_id redirect_ids['date_id'] = date_id redirect_url = reverse('date-change', kwargs=redirect_ids) return HttpResponseRedirect(redirect_url) else: form = DateForm(topic_map, calendar_choices, date_period_choices, date_type_choices, instance=date) context_data = {'form': form} return render_to_response('eats/edit/date_change.html', context_data, context_instance=RequestContext(request))