def edit_download_links(request, production_id): production = get_object_or_404(Production, id=production_id) if not production.editable_by_user(request.user): raise PermissionDenied if request.method == 'POST': formset = ProductionDownloadLinkFormSet( request.POST, instance=production, queryset=production.links.filter(is_download_link=True) ) if formset.is_valid(): formset.save_ignoring_uniqueness() formset.log_edit(request.user, 'production_edit_download_links') production.updated_at = datetime.datetime.now() production.has_bonafide_edits = True production.save() return HttpResponseRedirect(production.get_absolute_url()) else: formset = ProductionDownloadLinkFormSet( instance=production, queryset=production.links.filter(is_download_link=True) ) return render(request, 'productions/edit_links.html', { 'submit_url': reverse('production_edit_download_links', args=[production.id]), 'external_or_download': 'download', 'production': production, 'formset': formset, })
def create(request): if request.method == 'POST': production = Production(updated_at=datetime.datetime.now()) form = CreateProductionForm(request.POST, instance=production) download_link_formset = ProductionDownloadLinkFormSet(request.POST, instance=production) if form.is_valid() and download_link_formset.is_valid(): form.save() download_link_formset.save_ignoring_uniqueness() form.log_creation(request.user) return HttpResponseRedirect(production.get_absolute_url()) else: form = CreateProductionForm(initial={ 'byline': Byline.from_releaser_id(request.GET.get('releaser_id')) }) download_link_formset = ProductionDownloadLinkFormSet() return render(request, 'productions/create.html', { 'form': form, 'download_link_formset': download_link_formset, })