Exemplo n.º 1
0
 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() + '#')
Exemplo n.º 2
0
 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)
Exemplo n.º 3
0
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)