def _appeal(self, request, foia): """Handle submitting an appeal, then create an Appeal from the returned communication. """ form = AppealForm(request.POST) has_perm = foia.has_perm(request.user, 'appeal') contact_info_form = ContactInfoForm( request.POST, foia=foia, prefix='appeal', appeal=True, ) has_contact_perm = request.user.has_perm('foia.set_info_foiarequest') contact_valid = contact_info_form.is_valid() use_contact_info = ( has_contact_perm and contact_info_form.cleaned_data.get('use_contact_information')) if not has_perm: messages.error(request, 'You do not have permission to submit an appeal.') return redirect(foia.get_absolute_url() + '#') if not form.is_valid(): messages.error(request, 'You did not submit an appeal.') return redirect(foia.get_absolute_url() + '#') if foia.attachments_over_size_limit(request.user): messages.error(request, 'Total attachment size must be less than 20MB') return redirect(foia.get_absolute_url() + '#') if use_contact_info and not contact_valid: messages.error(request, 'Invalid contact information') return redirect(foia.get_absolute_url() + '#') communication = foia.appeal( form.cleaned_data['text'], request.user, contact_info=contact_info_form.cleaned_data if use_contact_info else None, ) base_language = form.cleaned_data['base_language'] appeal = Appeal.objects.create(communication=communication) appeal.base_language.set(base_language) new_action(request.user, 'appealed', target=foia) messages.success(request, 'Your appeal has been sent.') if use_contact_info: foia.add_contact_info_note( request.user, contact_info_form.cleaned_data, ) return redirect(foia.get_absolute_url() + '#')
def _appeal(self, request, foia): """Handle submitting an appeal, then create an Appeal from the returned communication.""" form = AppealForm(request.POST) has_perm = foia.has_perm(request.user, 'appeal') if not has_perm: messages.error(request, 'You do not have permission to submit an appeal.') return redirect(foia) if not form.is_valid(): messages.error(request, 'You did not submit an appeal.') return redirect(foia) communication = foia.appeal(form.cleaned_data['text']) base_language = form.cleaned_data['base_language'] appeal = Appeal.objects.create(communication=communication) appeal.base_language.set(base_language) new_action(request.user, 'appealed', target=foia) messages.success(request, 'Your appeal has been sent.') return redirect(foia)
def appeal(request, foia): """Handle submitting an appeal, then create an Appeal from the returned communication. """ form = AppealForm(request.POST) has_perm = foia.has_perm(request.user, "appeal") contact_info_form = ContactInfoForm( request.POST, foia=foia, prefix="appeal", appeal=True ) has_contact_perm = request.user.has_perm("foia.set_info_foiarequest") contact_valid = contact_info_form.is_valid() use_contact_info = has_contact_perm and contact_info_form.cleaned_data.get( "use_contact_information" ) if not has_perm: messages.error(request, "You do not have permission to submit an appeal.") return _get_redirect(request, foia) if not form.is_valid(): messages.error(request, "You did not submit an appeal.") return _get_redirect(request, foia) if foia.attachments_over_size_limit(request.user): messages.error(request, "Total attachment size must be less than 20MB") return _get_redirect(request, foia) if use_contact_info and not contact_valid: messages.error(request, "Invalid contact information") return _get_redirect(request, foia) communication = foia.appeal( form.cleaned_data["text"], request.user, contact_info=contact_info_form.cleaned_data if use_contact_info else None, ) base_language = form.cleaned_data["base_language"] appeal_ = Appeal.objects.create(communication=communication) appeal_.base_language.set(base_language) new_action(request.user, "appealed", target=foia) messages.success(request, "Your appeal has been sent.") if use_contact_info: foia.add_contact_info_note(request.user, contact_info_form.cleaned_data) return _get_redirect(request, foia)