def test_saving_and_retrieving_volunteers(self): first_volunteer = Volunteer() first_volunteer.email = '*****@*****.**' first_volunteer.save() second_volunteer = Volunteer() second_volunteer.email = '*****@*****.**' second_volunteer.save() saved_volunteers = Volunteer.objects.all() self.assertEqual(saved_volunteers.count(), 2) first_saved_volunteer = saved_volunteers[0] second_saved_volunteer = saved_volunteers[1] self.assertEqual(first_saved_volunteer.email, '*****@*****.**') self.assertEqual(second_saved_volunteer.email, '*****@*****.**')
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 home(request): form = Add_volunteer() if 'volunteer' in request.GET and request.GET['volunteer']: name = request.GET['volunteer'] users = Volunteer.objects.filter(name__icontains=name, arrived__lt=datetime.datetime.now()) return render(request, 'home.html', {'searched': name, 'users': users, 'form': form}) elif 'user_name' in request.GET and request.GET['user_name']: volunteer_id = Volunteer.objects.get(id=request.GET['user_name']).save() elif 'project' in request.GET and request.GET['project']: name = request.GET['project'] projects = Project.objects.filter(name__icontains=name) return render(request, 'home.html', {'form': form, 'search_project': name, 'projects': projects}) elif request.method == 'POST': form = Add_volunteer(request.POST, request.user) if form.is_valid(): clean_form = form.cleaned_data added = Volunteer(name=clean_form['name'], email=clean_form['email'], phone=clean_form['phone']) added.save() return render(request, 'home.html', {'form': form})
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'])
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))
def data_insert(request): q = Coordinator_question(question='lectures wanted') q.save() with open('data', 'rb') as f: s = f.read() data_dic = ast.literal_eval(s) attr_map = {'fname': 'first_name', 'lname': 'last_name', 'phonenum': 'phone', 'work_study_place': 'work_study_place', 'emailad': 'email', 'vol_message': 'volunteer_messages'} # assert False, data_dic for user_name, user_data in data_dic.iteritems(): v = Volunteer() for key, val in user_data.iteritems(): if key != 'name' and val: if key == 'eknight': for date_str, eknight_name in val.iteritems(): pass elif key == 20: continue elif key == 'previous_contacts': pass elif key == 'role': expertise = Expertise.objects.filter(name=val) val = expertise elif key == 'city': comm = Community.objects.filter(name=val) val = comm elif key == 'regdates': pass # for a in val: # if user_data['eknight']: # ek = EKnight.objects.get(name=user_data['eknight']) # else: # ek = EKnight.objects.get(name='other') # arrival = Arrival(user=v, user_arrived=a, eknight=ek, coordinator_message="") # arrival.save() attr = attr_map[key] if key in attr_map else key setattr(v, attr, val) vol = v.save() for a in user_data['regdates']: pass # if user_data['eknight']: # ek = EKnight.objects.get(name=user_data['eknight']) # else: ek = EKnight.objects.get(name='ללא חשמביר') arrival = Arrival(user=v, user_arrived=a, eknight=ek, coordinator_message="") arrival.save() add = "" if user_data['address']: add = Volunteer_address(user=v, address=user_data['address']) else: add = Volunteer_address(user=v, address="no address") add.save() ans = "" if user_data['wanted_lectures']: ans = Coordinator_question_answer(question=q, answer=user_data['wanted_lectures'], user=v) else: ans = Coordinator_question_answer(question=q, answer="no data", user=v) ans.save() # dic = {} # attribute_map = {} # for user_name, user_data in dic: # v = Volunteer() # for key, val in user_data: # attr = attribute_map[key] if key in attribute_map else key # setattr(v, attr, val) # v.save() # volunteer = Volunteer(first_name=row[0], last_name=row[1], email=row[3], phone=row[8], # home_address=row[9], work_place=row[10], github=row[17], facebook=[18], linkedin=row[19], tweeter=row[20], birth_date=row[21]) # volunteer.save() return HttpResponseRedirect('/')
def data_insert(request): q = Coordinator_question(question="lectures wanted") q.save() with open("data", "rb") as f: s = f.read() data_dic = ast.literal_eval(s) attr_map = { "fname": "first_name", "lname": "last_name", "phonenum": "phone", "work_study_place": "work_study_place", "emailad": "email", "vol_message": "volunteer_messages", } # assert False, data_dic for user_name, user_data in data_dic.iteritems(): v = Volunteer() for key, val in user_data.iteritems(): if key != "name" and val: if key == "eknight": for date_str, eknight_name in val.iteritems(): pass elif key == 20: continue elif key == "previous_contacts": pass elif key == "role": expertise = Expertise.objects.filter(name=val) val = expertise elif key == "city": comm = Community.objects.filter(name=val) val = comm elif key == "regdates": pass # for a in val: # if user_data['eknight']: # ek = EKnight.objects.get(name=user_data['eknight']) # else: # ek = EKnight.objects.get(name='other') # arrival = Arrival(user=v, user_arrived=a, eknight=ek, coordinator_message="") # arrival.save() attr = attr_map[key] if key in attr_map else key setattr(v, attr, val) vol = v.save() for a in user_data["regdates"]: pass # if user_data['eknight']: # ek = EKnight.objects.get(name=user_data['eknight']) # else: ek = EKnight.objects.get(name="ללא חשמביר") arrival = Arrival(user=v, user_arrived=a, eknight=ek, coordinator_message="") arrival.save() add = "" if user_data["address"]: add = Volunteer_address(user=v, address=user_data["address"]) else: add = Volunteer_address(user=v, address="no address") add.save() ans = "" if user_data["wanted_lectures"]: ans = Coordinator_question_answer(question=q, answer=user_data["wanted_lectures"], user=v) else: ans = Coordinator_question_answer(question=q, answer="no data", user=v) ans.save() # dic = {} # attribute_map = {} # for user_name, user_data in dic: # v = Volunteer() # for key, val in user_data: # attr = attribute_map[key] if key in attribute_map else key # setattr(v, attr, val) # v.save() # volunteer = Volunteer(first_name=row[0], last_name=row[1], email=row[3], phone=row[8], # home_address=row[9], work_place=row[10], github=row[17], facebook=[18], linkedin=row[19], tweeter=row[20], birth_date=row[21]) # volunteer.save() return HttpResponseRedirect("/")