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)
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))
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'])
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))