예제 #1
0
def submit(request):
    if request.method == 'POST':
        data = json.loads(request.body.decode('utf-8'))
        form = VolunteerForm(data)
        if form.is_valid():
            volunteer = Volunteer()
            volunteer.name = data['name'].strip()
            volunteer.surname = data['lastname'].strip()
            volunteer.email = data['email'].strip()
            volunteer.expedient = data['expedient'].strip()
            volunteer.phone = data['phone'].strip()
            volunteer.shirt_size = data['shirt']
            volunteer.android_phone = data['android']

            if 'commentary' in data:
                volunteer.commentary = data['commentary'].strip()

            # School and degree
            volunteer.school = School.objects.get(code=data['college'])
            volunteer.degree = Degree.objects.get(code=data['degree'])

            volunteer.save()

            # Insert schedules
            for schedule in data['schedule']:
                volunteer_schedule = VolunteerSchedule()
                volunteer_schedule.schedule = Schedule.objects.get(
                    pk=schedule[4:])
                volunteer_schedule.volunteer = volunteer

                # Calculate schedule day
                date = Edition.objects.get(year=EDITION_YEAR).start_date
                volunteer_schedule.day = datetime.date(year=EDITION_YEAR,
                                                       month=date.month,
                                                       day=int(schedule[1:3]))

                volunteer_schedule.save()

            return HttpResponse()
        else:
            error = {'id': 1, 'message': 'Error en la validación'}
            return HttpResponseBadRequest(json.dumps(error))
    else:
        return HttpResponseNotAllowed(permitted_methods=['POST'])
예제 #2
0
파일: views.py 프로젝트: techhat/ConMan
def index(request):
    # First we need to check if the user has already submitted a request and 
    # if so we check to see if a role has been assigned.  If one has not we
    # notify them that their request has already been processed but not 
    # decision has been made.  If a role has been assigned we display it.
    volunteer_existed = False
    profile = request.user.get_profile()

    try:
        instance = Volunteer.objects.get(volunteer=profile)
        volunteer_existed = True
    except Volunteer.DoesNotExist:
        instance = profile

    if request.method == 'POST':
        vf = VolunteerForm(request.POST, instance=instance)
        if vf.is_valid():
            # not as elegant as I'd prefer...  there's gotta be a better way
            page = "volunteer_submitted.html"
            v = Volunteer()
            if volunteer_existed:
                v = instance
                page = "volunteer_updated.html"
            v.requested = vf.cleaned_data['requested']
            v.comments = vf.cleaned_data['comments']
            v.volunteer = profile
            v.save()
            # should send an email at this point
            return render_to_response(page,
                                      context_instance=RequestContext(request))

    else:
        vf = VolunteerForm(instance=instance)

    return render_to_response("call_for_volunteers.html",
                              { "volunteers_form" : vf },
                              context_instance=RequestContext(request))
예제 #3
0
def detail(request):
    if request.method == 'POST':
        form = VolunteerForm(request.POST)
        if form.is_valid():
            recorded_hours = form.save(commit=False)
            recorded_hours.user = request.user
            recorded_hours.save()
            return redirect('/volunteers/')
    else:
        form = VolunteerForm()
        hours = VolunteerHours.objects.filter(user=request.user)
        context = {'form': form, 'hours': hours}
        return render(request, 'volunteers/detail.html', context)
예제 #4
0
파일: views.py 프로젝트: techhat/ConMan
def manage(request, vol_id):
    volunteer = get_object_or_404(Volunteer, id=vol_id)

    if request.method == 'POST':
        vf = VolunteerForm(request.POST, instance=volunteer)
        if vf.is_valid():
            vf.save()
            return HttpResponseRedirect("/volunteer/list/")
#            return render_to_response("volunteer_list.html",
#                                      {"volunteers_form" : vf, 
#                                       "volunteer": volunteer },
#                                      context_instance=RequestContext(request))
    else:
        vf = VolunteerForm(instance=volunteer)

    return render_to_response("volunteer_manage.html",
                              { "volunteers_form": vf, "volunteer": volunteer },
                              context_instance=RequestContext(request))
예제 #5
0
def submit(request):
    if request.method == 'POST':
        data = json.loads(request.body.decode('utf-8'))
        error = VolunteerForm(data).get_error()
        if error != '':
            return HttpResponseBadRequest(json.dumps({'id': 1, 'message': error}))
        attendant = Attendant.objects.filter(identity=data['dni_nie'].strip().upper(), edition__year=EDITION_YEAR)
        if attendant.count() == 0:
            error = {'id': 2, 'message': 'Error, no existe ninguna entrada para tu DNI, consigue una antes de '
                                         'apuntarte para voluntario.'}
            return HttpResponseBadRequest(json.dumps(error))

        if Volunteer.objects.filter(identity__in=attendant).count() != 0:
            error = {'id': 3, 'message': 'Error, ya estas registrado como voluntario.'}
            return HttpResponseBadRequest(json.dumps(error))

        volunteer = Volunteer()
        volunteer.identity = attendant[0]
        volunteer.shirt_size = data['shirt']
        volunteer.android_phone = data['android']

        if 'commentary' in data:
            volunteer.commentary = data['commentary'].strip()

        volunteer.save()

        # Insert schedules
        for schedule in data['schedule_options']:
            volunteer_schedule = VolunteerSchedule()
            volunteer_schedule.schedule = schedule['schedule_type']
            volunteer_schedule.volunteer = volunteer
            # Calculate schedule day
            schedule_day = schedule["date"].split('-')
            volunteer_schedule.day = datetime.date(int(schedule_day[0]), int(schedule_day[1]), int(schedule_day[2]))

            volunteer_schedule.save()

        return HttpResponse()

    else:
        return HttpResponseNotAllowed(permitted_methods=['POST'])