Example #1
0
def approval(request,id):
    context = RequestContext(request)
    event = get_object_or_404(Event,pk=id)
    if event.approved:
        pass # gb2 event page
    
    
    if request.method == 'POST':
        form = EventApprovalForm(request.POST,instance=event)
        e = form.save(commit=False)
        e.approved = True
        e.save()
    else:
        form = EventApprovalForm(instance=event)
        context['formset'] = form
        return render_to_response('form_crispy.html', context) 
Example #2
0
def approval(request, id):
    context = {}
    context['msg'] = "Approve Event"
    event = get_object_or_404(Event, pk=id)
    if not request.user.has_perm('events.approve_event', event):
        raise PermissionDenied
    if event.approved:
        messages.add_message(request, messages.INFO, 'Event has already been approved!')
        return HttpResponseRedirect(reverse('events.views.flow.viewevent', args=(event.id,)))

    if request.method == 'POST':
        form = EventApprovalForm(request.POST, instance=event)
        if form.is_valid():
            e = form.save(commit=False)
            e.approved = True
            e.approved_on = timezone.now()
            e.approved_by = request.user
            e.save()
            # confirm with user
            messages.add_message(request, messages.INFO, 'Approved Event')
            if e.contact and e.contact.email:
                email_body = 'Your event "%s" has been approved!' % event.event_name
                email = DLEG(subject="Event Approved", to_emails=[e.contact.email], body=email_body,
                             bcc=[settings.EMAIL_TARGET_VP])
                email.send()
            else:
                messages.add_message(request, messages.INFO,
                                     'No contact info on file for approval. Please give them the good news!')

            return HttpResponseRedirect(reverse('events.views.flow.viewevent', args=(e.id,)))
        else:
            context['formset'] = form
    else:
        unbilled_events = Event.objects.filter(org__in=event.org.all()).filter(billings__date_paid__isnull=True, billings__date_billed__isnull=False).filter(closed=False).filter(cancelled=False).filter(test_event=False)
        unbilled_events = map(str, unbilled_events)
        if event.org.exists() and unbilled_events:
            messages.add_message(request, messages.WARNING, "Organization has unbilled events: %s" % ", ".join(unbilled_events))
        form = EventApprovalForm(instance=event)
        context['formset'] = form
    return render(request, 'form_crispy.html', context)
Example #3
0
def approval(request, id):
    context = {}
    context['msg'] = "Approve Event"
    event = get_object_or_404(Event, pk=id)
    if not request.user.has_perm('events.approve_event', event):
        raise PermissionDenied
    if event.approved:
        messages.add_message(request, messages.INFO, 'Event has already been approved!')
        return HttpResponseRedirect(reverse('events.views.flow.viewevent', args=(event.id,)))

    if request.method == 'POST':
        form = EventApprovalForm(request.POST, instance=event)
        if form.is_valid():
            e = form.save(commit=False)
            e.approved = True
            e.approved_on = timezone.now()
            e.approved_by = request.user
            e.save()
            # confirm with user
            messages.add_message(request, messages.INFO, 'Approved Event')
            if e.contact and e.contact.email:
                email_body = 'Your event "%s" has been approved!' % event.event_name
                email = DLEG(subject="Event Approved", to_emails=[e.contact.email], body=email_body,
                             bcc=[settings.EMAIL_TARGET_VP])
                email.send()
            else:
                messages.add_message(request, messages.INFO,
                                     'No contact info on file for approval. Please give them the good news!')

            return HttpResponseRedirect(reverse('events.views.flow.viewevent', args=(e.id,)))
        else:
            context['formset'] = form
    else:
        form = EventApprovalForm(instance=event)
        context['formset'] = form
    return render(request, 'form_crispy.html', context)
Example #4
0
def approval(request, id):
    context = {}
    context['msg'] = "Approve Event"
    event = get_object_or_404(BaseEvent, pk=id)
    if not request.user.has_perm('events.approve_event', event):
        raise PermissionDenied
    if event.closed:
        messages.add_message(request, messages.ERROR, 'Event is closed.')
        return HttpResponseRedirect(reverse('events:detail', args=(event.id,)))
    if event.approved:
        messages.add_message(request, messages.INFO, 'Event has already been approved!')
        return HttpResponseRedirect(reverse('events:detail', args=(event.id,)))
    is_event2019 = isinstance(event, Event2019)
    context['is_event2019'] = is_event2019
    if is_event2019:
        mk_serviceinstance_formset = inlineformset_factory(BaseEvent, ServiceInstance, extra=3, exclude=[])
        mk_serviceinstance_formset.form = curry_class(ServiceInstanceForm, event=event)

    if request.method == 'POST':
        form = EventApprovalForm(request.POST, instance=event)
        if is_event2019:
            services_formset = mk_serviceinstance_formset(request.POST, request.FILES, instance=event)
        if form.is_valid() and (not is_event2019 or services_formset.is_valid()):
            set_revision_comment("Approved", form)
            e = form.save(commit=False)
            e.approved = True
            e.approved_on = timezone.now()
            e.approved_by = request.user
            e.save()
            if is_event2019:
                services_formset.save()
            # confirm with user
            messages.add_message(request, messages.INFO, 'Approved Event')
            if e.contact and e.contact.email:
                email_body = 'Your event "%s" has been approved!' % event.event_name
                email = DLEG(subject="Event Approved", to_emails=[e.contact.email], body=email_body,
                             bcc=[settings.EMAIL_TARGET_VP])
                email.send()
            else:
                messages.add_message(request, messages.INFO,
                                     'No contact info on file for approval. Please give them the good news!')

            return HttpResponseRedirect(reverse('events:detail', args=(e.id,)))
        else:
            context['form'] = form
            if is_event2019:
                context['services_formset'] = services_formset
    else:
        # has a bill, but no paid bills, and is not otherwise closed
        unbilled_events = Event.objects.filter(org__in=event.org.all())\
                                       .exclude(billings__date_paid__isnull=False)\
                                       .filter(billings__date_billed__isnull=False)\
                                       .filter(closed=False)\
                                       .filter(cancelled=False)\
                                       .filter(test_event=False)\
                                       .distinct()
        unbilled_events = map(str, unbilled_events)
        if event.org.exists() and unbilled_events:
            messages.add_message(request, messages.WARNING, "Organization has unbilled events: %s" % ", ".join(unbilled_events))
        for org in event.org.filter(delinquent=True):
            messages.add_message(request, messages.WARNING, "The client '%s' has been marked as delinquent. \
                    This means that the client has one or more long-outstanding bills which they should be required to \
                    pay before you approve this event." % org)
        context['form'] = EventApprovalForm(instance=event)
        if is_event2019:
            context['services_formset'] = mk_serviceinstance_formset(instance=event)
    return render(request, 'form_crispy_approval.html', context)