def forwards(self, orm):
     "Write your forwards methods here."
     try:
         from volunteers.models import Volunteer
         Volunteer.make_volunteers_for_each_person()
     except:
         pass
Example #2
0
    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,
                         '*****@*****.**')
Example #3
0
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})
Example #4
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'])
Example #5
0
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))
Example #6
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'])
Example #7
0
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('/')
Example #8
0
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("/")