Exemplo n.º 1
0
def home(request):
    context = {}
    if request.POST:
        form = DonationForm(request.POST)
        if form.is_valid():
            donation = form.save(commit=False)

            if 'stripeToken' in request.POST:
                charged = _charge_card(request.POST)
                if charged:
                    donation.cleared = donation.received = True
            donation.save()
            for sec in form.cleaned_data['sections']:
                donation.sections.add(sec)
            context['thanks'] = form.cleaned_data['first_name']
            context['postcard'] = form.cleaned_data['postcard']

        else:
            context['show_form'] = True
    form = DonationForm

    sections = Section.objects.select_related()
    section_sponsors = {}
    for section in sections:
        section_sponsors[section.slug] = section.donations.all()

    context['sections'] = sections
    context['section_sponsors'] = section_sponsors
    context['form'] = form
    context['stripe_publishable_key'] = settings.STRIPE_PUBLISHABLE_KEY

    return render_to_response('index.html', context, context_instance=RequestContext(request))
Exemplo n.º 2
0
def new(request, year, month, day):
    """
		Page for creating pickups
	"""
    context = {}
    if request.method == "POST":
        Print(request.POST)
        form = DonationForm(request.POST)
        object_check = Donation.objects.filter(
            truck=request.POST["truck"],
            time=datetime.datetime.strptime(request.POST["time"], "%I:%M %p"),
            date=datetime.datetime.strptime(request.POST["date"], "%m/%d/%Y"),
        )
        if object_check:
            messages.add_message(request, messages.INFO, "Pickup not scheduled: time unavailable")
        else:
            if form.is_valid():
                a = form.save()
                if request.POST.get("repetition"):
                    if makeRecurringDonation(a, request):
                        return redirect("/schedule")
                else:
                    return redirect("/schedule")
        target_donor = Donor.objects.get(pk=request.POST["donor"])
    else:
        user_settings = UserSettings.objects.get(pk=request.user)
        target_truck = user_settings.truck
        target_donor = user_settings.donor
        form = DonationForm(
            {
                "truck": target_truck.id,
                "donor": target_donor.id,
                "address1": target_donor.address1,
                "address2": target_donor.address2,
                "city": target_donor.city,
                "state": target_donor.state,
                "zip_code": target_donor.zip_code,
                "driver": target_truck.driver.id,
                "nearest_facility": target_donor.nearest_facility,
                "date": datetime.date(int(year), months.index(month) + 1, int(day)),
            }
        )
    context.update(csrf(request))
    context.update(
        {
            "form": fieldsetForm(form, request),
            "button_value": "Create",
            "page_title": "New Pickup",
            "target_donor": target_donor,
        }
    )
    return render_to_response("truckmanagement/donation.html", context, context_instance=RequestContext(request))
Exemplo n.º 3
0
def donation(request, donation_id):
    Print(request.POST)
    context = {}
    context.update(csrf(request))
    target_donation = Donation.objects.get(pk=donation_id)
    Print(target_donation.time)
    if request.POST:
        request.POST = request.POST.copy()
        if request.POST.get("time", "") == "00:00 AM":
            request.POST["time"] = "12:00 AM"
        call_redirect = False
        if "refresh" in request.POST:
            messages.add_message(
                request, messages.INFO, "Donation Donor Info Updated on all related, non-completed donations"
            )
            updateDonor(target_donation)
            return redirect("/schedule")
        elif "delete" in request.POST:
            if request.POST.get("delete_series"):
                deleteDonationSeries(target_donation, request)
            else:
                object_check = Donation.objects.filter(parent_donation=target_donation)
                if object_check:
                    deleteDonationSeries(target_donation, request)
                else:
                    if target_donation.status != "picked_up":
                        target_donation.delete()
                        messages.add_message(request, messages.INFO, "Pickup Deleted")
                    else:
                        messages.add_message(request, messages.INFO, "Pickup Completed, Delete Failed")
            return redirect("/schedule")

        else:
            update_donor = False
            if target_donation.donor != Donor.objects.get(pk=request.POST["donor"]):
                update_donor = True
            requested_date = datetime.datetime.strptime(request.POST["date"], "%m/%d/%Y").date()
            requested_time = datetime.datetime.strptime(request.POST["time"], "%H:%M %p").time()
            object_check = Donation.objects.filter(
                truck=request.POST["truck"], time=requested_time, date=requested_date
            ).exclude(id=target_donation.id)
            if object_check:
                messages.add_message(request, messages.INFO, "Pickup not scheduled: time unavailable")
            elif target_donation.repetition and request.POST.get("update_series", ""):
                if target_donation.date != requested_date or target_donation.time != requested_time:
                    deleteDonationSeries(target_donation, request)
                    form = DonationForm(request.POST)
                    target_donation = form.save()
                    makeRecurringDonation(target_donation, request)
                else:
                    target_parent_donation = target_donation
                    if target_donation.parent_donation:
                        target_parent_donation = target_donation.parent_donation
                    for i in Donation.objects.filter(parent_donation=target_parent_donation):
                        if i.status != "picked_up":
                            i.donor = Donor.objects.get(pk=request.POST["donor"])
                            i.address1 = request.POST["address1"]
                            i.address2 = request.POST["address2"]
                            i.city = request.POST["city"]
                            i.state = request.POST["state"]
                            i.zip_code = request.POST["zip_code"]
                            i.nearest_facility = request.POST["nearest_facility"]
                            i.truck = Truck.objects.get(pk=request.POST["truck"])
                            i.driver = Driver.objects.get(pk=request.POST["driver"])
                            i.repetition = request.POST["repetition"]
                            i.save()
                    if target_parent_donation.status != "picked_up":
                        target_parent_donation.donor = Donor.objects.get(pk=request.POST["donor"])
                        target_parent_donation.address1 = request.POST["address1"]
                        target_parent_donation.address2 = request.POST["address2"]
                        target_parent_donation.city = request.POST["city"]
                        target_parent_donation.state = request.POST["state"]
                        target_parent_donation.zip_code = request.POST["zip_code"]
                        target_parent_donation.nearest_facility = request.POST["nearest_facility"]
                        target_parent_donation.truck = Truck.objects.get(pk=request.POST["truck"])
                        target_parent_donation.driver = Driver.objects.get(pk=request.POST["driver"])
                        target_parent_donation.repetition = request.POST["repetition"]
                        target_parent_donation.save()
                        target_donation = target_parent_donation
                if update_donor:
                    updateDonor(target_donation)
                return redirect("/schedule")
            elif target_donation.status != "picked_up" or request.user.has_perm(
                "truckmanagement.changefinished_donation"
            ):
                form = DonationForm(request.POST or None, instance=target_donation)
                form.save()
                messages.add_message(request, messages.INFO, "Pickup changed")
                if update_donor:
                    updateDonor(target_donation)
                return redirect("/schedule")
            else:
                messages.add_message(request, messages.INFO, "Pickup complete, modification not possible")
                return redirect("/schedule")
    form = fieldsetForm(DonationForm(instance=target_donation), request)
    context.update(
        {
            "form": form,
            "button_value": "Update",
            "page_title": "Modify Pickup",
            "forward_donor": target_donation.donor.id,
        }
    )
    return render_to_response("truckmanagement/donation.html", context, context_instance=RequestContext(request))
Exemplo n.º 4
0
def donation(request, donation_id):
    Print(request.POST)
    context = {}
    context.update(csrf(request))
    target_donation = Donation.objects.get(pk=donation_id)
    Print(target_donation.time)
    if request.POST:
        request.POST = request.POST.copy()
        if request.POST.get('time', '') == '00:00 AM':
            request.POST['time'] = '12:00 AM'
        call_redirect = False
        if 'refresh' in request.POST:
            messages.add_message(
                request, messages.INFO,
                'Donation Donor Info Updated on all related, non-completed donations'
            )
            updateDonor(target_donation)
            return redirect('/schedule')
        elif 'delete' in request.POST:
            if request.POST.get('delete_series'):
                deleteDonationSeries(target_donation, request)
            else:
                object_check = Donation.objects.filter(
                    parent_donation=target_donation)
                if object_check:
                    deleteDonationSeries(target_donation, request)
                else:
                    if target_donation.status != 'picked_up':
                        target_donation.delete()
                        messages.add_message(request, messages.INFO,
                                             'Pickup Deleted')
                    else:
                        messages.add_message(
                            request, messages.INFO,
                            'Pickup Completed, Delete Failed')
            return redirect('/schedule')

        else:
            update_donor = False
            if target_donation.donor != Donor.objects.get(
                    pk=request.POST['donor']):
                update_donor = True
            requested_date = datetime.datetime.strptime(
                request.POST['date'], '%m/%d/%Y').date()
            requested_time = datetime.datetime.strptime(
                request.POST['time'], '%H:%M %p').time()
            object_check = Donation.objects.filter(
                truck=request.POST['truck'],
                time=requested_time,
                date=requested_date).exclude(id=target_donation.id)
            if object_check:
                messages.add_message(request, messages.INFO,
                                     'Pickup not scheduled: time unavailable')
            elif target_donation.repetition and request.POST.get(
                    'update_series', ''):
                if target_donation.date != requested_date or target_donation.time != requested_time:
                    deleteDonationSeries(target_donation, request)
                    form = DonationForm(request.POST)
                    target_donation = form.save()
                    makeRecurringDonation(target_donation, request)
                else:
                    target_parent_donation = target_donation
                    if target_donation.parent_donation:
                        target_parent_donation = target_donation.parent_donation
                    for i in Donation.objects.filter(
                            parent_donation=target_parent_donation):
                        if i.status != 'picked_up':
                            i.donor = Donor.objects.get(
                                pk=request.POST['donor'])
                            i.address1 = request.POST['address1']
                            i.address2 = request.POST['address2']
                            i.city = request.POST['city']
                            i.state = request.POST['state']
                            i.zip_code = request.POST['zip_code']
                            i.nearest_facility = request.POST[
                                'nearest_facility']
                            i.truck = Truck.objects.get(
                                pk=request.POST['truck'])
                            i.driver = Driver.objects.get(
                                pk=request.POST['driver'])
                            i.repetition = request.POST['repetition']
                            i.save()
                    if target_parent_donation.status != 'picked_up':
                        target_parent_donation.donor = Donor.objects.get(
                            pk=request.POST['donor'])
                        target_parent_donation.address1 = request.POST[
                            'address1']
                        target_parent_donation.address2 = request.POST[
                            'address2']
                        target_parent_donation.city = request.POST['city']
                        target_parent_donation.state = request.POST['state']
                        target_parent_donation.zip_code = request.POST[
                            'zip_code']
                        target_parent_donation.nearest_facility = request.POST[
                            'nearest_facility']
                        target_parent_donation.truck = Truck.objects.get(
                            pk=request.POST['truck'])
                        target_parent_donation.driver = Driver.objects.get(
                            pk=request.POST['driver'])
                        target_parent_donation.repetition = request.POST[
                            'repetition']
                        target_parent_donation.save()
                        target_donation = target_parent_donation
                if update_donor:
                    updateDonor(target_donation)
                return redirect('/schedule')
            elif target_donation.status != 'picked_up' or request.user.has_perm(
                    'truckmanagement.changefinished_donation'):
                form = DonationForm(request.POST or None,
                                    instance=target_donation)
                form.save()
                messages.add_message(request, messages.INFO, 'Pickup changed')
                if update_donor:
                    updateDonor(target_donation)
                return redirect('/schedule')
            else:
                messages.add_message(
                    request, messages.INFO,
                    'Pickup complete, modification not possible')
                return redirect('/schedule')
    form = fieldsetForm(DonationForm(instance=target_donation), request)
    context.update({
        'form': form,
        'button_value': 'Update',
        'page_title': 'Modify Pickup',
        'forward_donor': target_donation.donor.id,
    })
    return render_to_response("truckmanagement/donation.html",
                              context,
                              context_instance=RequestContext(request))
Exemplo n.º 5
0
def new(request, year, month, day):
    '''
		Page for creating pickups
	'''
    context = {}
    if request.method == 'POST':
        Print(request.POST)
        form = DonationForm(request.POST)
        object_check = Donation.objects.filter(
            truck=request.POST['truck'],
            time=datetime.datetime.strptime(request.POST['time'], '%I:%M %p'),
            date=datetime.datetime.strptime(request.POST['date'], '%m/%d/%Y'))
        if object_check:
            messages.add_message(request, messages.INFO,
                                 'Pickup not scheduled: time unavailable')
        else:
            if form.is_valid():
                a = form.save()
                if request.POST.get('repetition'):
                    if makeRecurringDonation(a, request):
                        return redirect('/schedule')
                else:
                    return redirect('/schedule')
        target_donor = Donor.objects.get(pk=request.POST['donor'])
    else:
        user_settings = UserSettings.objects.get(pk=request.user)
        target_truck = user_settings.truck
        target_donor = user_settings.donor
        form = DonationForm({
            'truck':
            target_truck.id,
            'donor':
            target_donor.id,
            'address1':
            target_donor.address1,
            'address2':
            target_donor.address2,
            'city':
            target_donor.city,
            'state':
            target_donor.state,
            'zip_code':
            target_donor.zip_code,
            'driver':
            target_truck.driver.id,
            'nearest_facility':
            target_donor.nearest_facility,
            'date':
            datetime.date(int(year),
                          months.index(month) + 1, int(day)),
        })
    context.update(csrf(request))
    context.update({
        'form': fieldsetForm(form, request),
        'button_value': 'Create',
        'page_title': 'New Pickup',
        'target_donor': target_donor
    })
    return render_to_response("truckmanagement/donation.html",
                              context,
                              context_instance=RequestContext(request))