def group_home(request): object_list = None clear_session(request, ["pwg", "search", "frequencies"]) if request.GET.get("init"): clear_session(request, ["search"]) if request.user.groups.filter(name="publicwork_jr"): object_list = request.user.person.publicworkgroup_set.all() for item in object_list: item.click_link = reverse("group_detail", args=[item.pk]) else: queryset, page = search_pw_group(request, PublicworkGroup) object_list = paginator(queryset, page=page) # add action links for item in object_list: item.click_link = reverse("group_detail", args=[item.pk]) context = { "object_list": object_list, "init": True if request.GET.get("init") else False, "goback_link": reverse("group_home"), "title": "public work - groups", "centers": [[str(cnt.pk), str(cnt)] for cnt in Center.objects.all()], "nav": "gp_home", } return render(request, "publicwork/groups/home.html", context)
def group_frequencies(request, pk): clear_session(request, ["search", "frequencies"]) belongs_center(request, pk, PublicworkGroup) page = request.GET["page"] if request.GET.get("page") else 1 pw_group = PublicworkGroup.objects.get(pk=pk) frequencies = get_frequencies([mbr.id for mbr in pw_group.members.all()]) context = { "object": pw_group, "title": "group detail | frequencies", "object_list": paginator( sorted(frequencies, key=lambda x: x["rank"], reverse=True), page=page, ), "nav": "frequencies", "now": datetime.now().date(), } return render(request, "publicwork/groups/detail.html", context)
def add_frequency(request, pk): object_list = None seeker = Seeker.objects.get(pk=pk) if request.GET.get("lect_pk"): lecture = Lecture.objects.get(pk=request.GET["lect_pk"]) if request.method == "POST": # create listener Listener.objects.create( lecture=lecture, seeker=seeker, ranking=int(request.POST["ranking"]), observations=request.POST["observations"], ) messages.success( request, "The seeker has been inserted on lecture!" ) return redirect("seeker_frequencies", pk=pk) context = { "seeker": seeker, "form": ListenerForm, "insert_to": f"{lecture.theme} - {lecture.center}", "title": "confirm to insert", } return render( request, "publicwork/elements/confirm_add_listener.html", context, ) if request.GET.get("init"): clear_session(request, ["search"]) else: queryset, page = search_lecture(request, Lecture) object_list = paginator(queryset, page=page) # add action links for item in object_list: item.add_link = reverse("add_frequency", args=[pk]) context = { "object": seeker, "object_list": object_list, "init": True if request.GET.get("init") else False, "goback_link": reverse("seeker_home"), "title": "add frequency", "type_list": LECTURE_TYPES, "pre_freqs": [lect.pk for lect in seeker.lecture_set.all()], "tab": "frequencies", "add": True, "goback": reverse("seeker_frequencies", args=[pk]), } return render(request, "publicwork/seeker_add_or_change.html", context)
def add_listener(request, lect_pk): object_list = None lecture = Lecture.objects.get(pk=lect_pk) if request.GET.get("seek_pk"): seeker = Seeker.objects.get(pk=request.GET["seek_pk"]) if request.method == "POST": # create listener Listener.objects.create( lecture=lecture, seeker=seeker, ranking=int(request.POST["ranking"]), observations=request.POST["observations"], ) messages.success( request, "The seeker has been inserted on lecture!" ) return redirect("lecture_detail", pk=lect_pk) context = { "seeker": seeker, "form": ListenerForm, "insert_to": f"{lecture.theme} {lecture.center}", "title": "confirm to insert", } return render( request, "publicwork/elements/confirm_add_listener.html", context, ) if request.GET.get("init"): clear_session(request, ["search"]) else: queryset, page = search_seeker(request, Seeker) object_list = paginator(queryset, page=page) # add action links for item in object_list: item.add_link = reverse("add_listener", args=[lect_pk]) context = { "object_list": object_list, "init": True if request.GET.get("init") else False, "goback_link": reverse("add_listener", args=[lecture.pk]), "status_list": SEEKER_STATUS, "pre_listeners": [seek.pk for seek in lecture.listeners.all()], "title": "add listener", "object": lecture, "centers": [[str(cnt.pk), str(cnt)] for cnt in Center.objects.all()], } return render(request, "publicwork/listener_add.html", context)
def membership_add_frequency(request, group_pk, person_pk): object_list = None person = Person.objects.get(pk=person_pk) if request.GET.get("pk"): event = Event.objects.get(pk=request.GET.get("pk")) if request.method == "POST": person.frequency_set.create( person=person, event=event, aspect=person.aspect, ranking=request.POST.get("ranking"), observations=request.POST.get("observations"), ) messages.success(request, "The frequency has been inserted!") return redirect( "mentoring_member_frequencies", group_pk=group_pk, person_pk=person_pk, ) context = { "object": person, "form": MentoringFrequencyForm, "insert_to": f"{event.activity.name} {event.center}", "title": "confirm to insert", } return render(request, "workgroup/elements/confirm_add_frequency.html", context) if request.GET.get("init"): clear_session(request, ["search"]) else: queryset, page = search_event(request, Event) object_list = paginator(queryset, page=page) # add action links for member in object_list: member.add_link = reverse("membership_add_frequency", args=[group_pk, person_pk]) context = { "object": person, "object_list": object_list, "init": True if request.GET.get("init") else False, "title": "insert frequencies", "type_list": ACTIVITY_TYPES, "pre_freqs": [obj.event.pk for obj in person.frequency_set.all()], "group_pk": group_pk, } return render(request, "workgroup/mentoring/member_add_frequency.html", context)
def group_add_mentor(request, pk): belongs_center(request, pk, PublicworkGroup) pw_group = PublicworkGroup.objects.get(pk=pk) if request.GET.get("person_pk"): person = Person.objects.get(pk=request.GET["person_pk"]) if request.method == "POST": pw_group.mentors.add(person) messages.success(request, "The mentor has been inserted on group!") return redirect("group_detail", pk=pk) context = { "member": person.name, "insert_to": f"{pw_group.name} {pw_group.center}", "title": "confirm to insert", } return render( request, "publicwork/elements/confirm_add_member.html", context, ) if request.GET.get("init"): clear_session(request, ["search"]) object_list = None else: queryset, page = search_person(request, Person) object_list = paginator(queryset, page=page) # add action links for item in object_list: item.add_link = (reverse("group_add_mentor", args=[pk]) + f"?person_pk={ item.pk }") context = { "object": pw_group, "object_list": object_list, "init": True if request.GET.get("init") else False, "goback_link": reverse("group_add_mentor", args=[pw_group.pk]), "aspect_list": ASPECTS, "status_list": STATUS, "title": "group add mentor", "nav": "add_mentor", "goback": reverse("group_detail", args=[pk]), "pk": pk, "flag": "group", } return render(request, "publicwork/groups/detail.html", context)
def mentoring_add_frequencies(request, group_pk): workgroup = Workgroup.objects.get(pk=group_pk) if request.GET.get("event_pk"): # get event event = Event.objects.get(pk=request.GET["event_pk"]) # create and prepare frequencies object in session, if necessary if not request.session.get("frequencies"): request.session["frequencies"] = { "event": {}, "listeners": [], } preparing_the_session(request, workgroup.members.all(), event) if request.method == "POST": listeners = get_listeners_dict(request) if listeners: for listener in listeners: new_freq = dict( event=event, person_id=listener["id"], aspect=listener["asp"], ranking=listener["rank"], observations=listener["obs"], ) Frequency.objects.create(**new_freq) return redirect("mentoring_group_detail", pk=group_pk) if request.GET.get("init"): clear_session(request, ["search"]) object_list = None else: queryset, page = search_event(request, Event) object_list = paginator(queryset, page=page) context = { "object": workgroup, "object_list": object_list, "init": True if request.GET.get("init") else False, "goback_link": reverse("group_detail", args=[group_pk]), "title": "workgroup add members", "nav": "detail", "tab": "add_frequencies", "goback": reverse("mentoring_group_detail", args=[group_pk]), "group_pk": group_pk, } return render(request, "workgroup/mentoring/group_detail.html", context)
def membership_insert(request, workgroup_id): object_list = None workgroup = Workgroup.objects.get(pk=workgroup_id) if request.GET.get("pk"): person = Person.objects.get(pk=request.GET.get("pk")) if request.method == "POST": workgroup.members.add(person) messages.success(request, "The person has been inserted on workgroup!") return redirect("workgroup_detail", pk=workgroup_id) context = { "person": person, "insert_to": f"{workgroup.name} {workgroup.center}", "title": "confirm to insert", } return render( request, "workgroup/elements/confirm_to_insert_membership.html", context, ) if request.GET.get("init"): clear_session(request, ["search"]) else: queryset, page = search_person(request, Person) object_list = paginator(queryset, page=page) # add action links for item in object_list: item.add_link = ( reverse("membership_insert", args=[workgroup_id]) + f"?pk={ item.pk }") context = { "object_list": object_list, "init": True if request.GET.get("init") else False, "goback_link": reverse("membership_insert", args=[workgroup.pk]), "aspect_list": ASPECTS, "status_list": STATUS, "form": MembershipForm(initial={"workgroup": workgroup}), "title": "create membership", "object": workgroup, "flag": "membership", } return render(request, "workgroup/membership_insert.html", context)
def group_add_member(request, pk): object_list = None belongs_center(request, pk, PublicworkGroup) pw_group = PublicworkGroup.objects.get(pk=pk) if request.GET.get("seek_pk"): seeker = Seeker.objects.get(pk=request.GET["seek_pk"]) if request.method == "POST": pw_group.members.add(seeker) messages.success(request, "The member has been inserted on group!") return redirect("group_detail", pk=pk) context = { "member": seeker.name, "insert_to": f"{pw_group.name} {pw_group.center}", "title": "confirm to insert", } return render( request, "publicwork/elements/confirm_add_member.html", context, ) if request.GET.get("init"): clear_session(request, ["search"]) else: queryset, page = search_seeker(request, Seeker) object_list = paginator(queryset, page=page) # add action links for item in object_list: item.add_member_link = reverse("group_add_member", args=[pk]) context = { "object": pw_group, "object_list": object_list, "init": True if request.GET.get("init") else False, "goback_link": reverse("group_add_member", args=[pw_group.pk]), "status_list": SEEKER_STATUS, "title": "group add member", "nav": "add_member", "goback": reverse("group_detail", args=[pk]), "centers": [[str(cnt.pk), str(cnt)] for cnt in Center.objects.all()], "pk": pk, } return render(request, "publicwork/groups/detail.html", context)
def center_home(request): object_list = None if request.GET.get("init"): clear_session(request, ["search"]) else: queryset, page = search_center(request, Center) object_list = paginator(queryset, page=page) # add action links for item in object_list: item.click_link = reverse("center_detail", args=[item.pk]) context = { "object_list": object_list, "init": True if request.GET.get("init") else False, "title": "center home", "nav": "home", } return render(request, "center/center_home.html", context)
def orders(request): object_list = None if request.session.get("order"): del request.session["order"] if request.GET.get("init"): clear_session(request, ["search"]) else: queryset, page = search_order(request, Order) object_list = paginator(queryset, 25, page=page) context = { "object_list": object_list, "init": True if request.GET.get("init") else False, "status_list": ORDER_STATUS, "title": "Orders", "nav": "order", } return render(request, "treasury/orders.html", context)
def membership_ps_create(request, person_id): object_list = None person = Person.objects.get(id=person_id) if request.GET.get("pk"): workgroup = Workgroup.objects.get(pk=request.GET.get("pk")) if request.method == "POST": workgroup.members.add(person) messages.success(request, "The person has been inserted on workgroup!") return redirect("membership_ps_list", person_id=person_id) context = { "insert_to": f"{workgroup.name} {workgroup.center}", "title": "confirm to insert", "person": person, # to header element } return render(request, "person/elements/confirm_to_insert.html", context) if request.GET.get("init"): clear_session(request, ["search"]) else: queryset, page = search_workgroup(request, Workgroup) object_list = paginator(queryset, page=page) context = { "object_list": object_list, "title": "insert membership", "init": True if request.GET.get("init") else False, "goback_link": reverse("membership_ps_create", args=[person_id]), "person": person, # to header element "workgroup_types": WORKGROUP_TYPES, "pre_groups": [person.workgroup.pk for person in person.membership_set.all()], } return render(request, "person/membership_ps_insert.html", context)
def lecture_home(request): object_list = None if request.GET.get("init"): clear_session(request, ["search"]) else: queryset, page = search_lecture(request, Lecture) object_list = paginator(queryset, page=page) # add action links for item in object_list: item.click_link = reverse("lecture_detail", args=[item.pk]) context = { "object_list": object_list, "init": True if request.GET.get("init") else False, "title": "lecture home", "type_list": LECTURE_TYPES, "nav": "lc_home", } return render(request, "publicwork/lecture_home.html", context)
def frequency_ps_insert(request, person_id): object_list = None person = Person.objects.get(id=person_id) if request.GET.get("pk"): event = Event.objects.get(pk=request.GET.get("pk")) if request.method == "POST": person.frequency_set.create( person=person, event=event, aspect=person.aspect, ) messages.success(request, "The Frequency has been inserted!") return redirect("frequency_ps_list", person_id=person_id) context = { "person": person, "insert_to": f"{event.activity.name} {event.center}", "title": "confirm to insert", } return render(request, "person/elements/confirm_to_insert.html", context) if request.GET.get("init"): clear_session(request, ["search"]) else: queryset, page = search_event(request, Event) object_list = paginator(queryset, page=page) # add action links for member in object_list: member.add_link = reverse("frequency_ps_insert", args=[person_id]) context = { "object_list": object_list, "init": True if request.GET.get("init") else False, "title": "insert frequencies", "person": person, # to header element "type_list": ACTIVITY_TYPES, "pre_freqs": [person.event.pk for person in person.frequency_set.all()], } return render(request, "person/frequency_insert.html", context)
def event_home(request): object_list = None if request.GET.get("init"): clear_session(request, ["search"]) else: queryset, page = search_event(request, Event) object_list = paginator(queryset, page=page) # add action links for item in object_list: item.click_link = reverse("event_detail", args=[item.pk]) context = { "object_list": object_list, "init": True if request.GET.get("init") else False, "title": "event home", "type_list": ACTIVITY_TYPES, "nav": "home", } return render(request, "event/event_home.html", context)
def group_detail(request, pk): clear_session(request, ["search", "frequencies"]) belongs_center(request, pk, PublicworkGroup) pw_group = PublicworkGroup.objects.get(pk=pk) object_list = pw_group.members.all().order_by("name") # add action links for item in object_list: item.click_link = (reverse("seeker_detail", args=[item.pk]) + f"?pwg={pk}") item.del_member_link = reverse("group_remove_member", args=[pk, item.pk]) context = { "object": pw_group, "object_list": object_list, "title": "group detail", "nav": "info", "table_title": "Members", } return render(request, "publicwork/groups/detail.html", context)
def workgroup_home(request): object_list = None if request.GET.get("init"): clear_session(request, ["search"]) else: queryset, page = search_workgroup(request, Workgroup) object_list = paginator(queryset, page=page) # add action links for item in object_list: item.click_link = reverse("workgroup_detail", args=[item.pk]) context = { "object_list": object_list, "init": True if request.GET.get("init") else False, "goback_link": reverse("workgroup_home"), "title": "workgroups", "workgroup_types": WORKGROUP_TYPES, "nav": "home", } return render(request, "workgroup/workgroup_home.html", context)
def seeker_home(request): object_list = None if request.GET.get("init"): clear_session(request, ["search"]) else: queryset, page = search_seeker(request, Seeker) object_list = paginator(queryset, page=page) # add action links for item in object_list: item.click_link = reverse("seeker_detail", args=[item.pk]) context = { "object_list": object_list, "init": True if request.GET.get("init") else False, "goback_link": reverse("seeker_home"), "status_list": SEEKER_STATUS, "title": "seeker home", "centers": [[str(cnt.pk), str(cnt)] for cnt in Center.objects.all()], "nav": "sk_home", } return render(request, "publicwork/seeker_home.html", context)
def person_home(request): object_list = None if request.GET.get("init"): clear_session(request, ["search"]) else: queryset, page = search_person(request, Person) object_list = paginator(queryset, page=page) # add action links for item in object_list: item.click_link = reverse("person_detail", args=[item.id]) context = { "object_list": object_list, "init": True if request.GET.get("init") else False, "aspect_list": ASPECTS, "status_list": STATUS, "title": "person home", "nav": "home", "flag": "person", } return render(request, "person/person_home.html", context)
def insert_yourself(request): clear_session(request, ["fbk"]) if request.method == "POST": # reCAPTCHA validation recaptcha_response = request.POST.get("g-recaptcha-response") data = { "secret": settings.GOOGLE_RECAPTCHA_SECRET_KEY, "response": recaptcha_response, } r = requests.post( "https://www.google.com/recaptcha/api/siteverify", data=data ) result = r.json() # if reCAPTCHA returns False if not result["success"]: request.session["fbk"] = {"type": "recaptcha"} return redirect("feedback") # checking if the email has already been used in the User if User.objects.filter(email=request.POST.get("email")): request.session["fbk"] = { "type": "pupil", "email": request.POST.get("email"), } return redirect("feedback") # checking if the email has already been used in the Seeker if Seeker.objects.filter(email=request.POST.get("email")): request.session["fbk"] = { "type": "seeker", "email": request.POST.get("email"), } return redirect("feedback") # checking if the email has already been used in the TempRegOfSeeker if TempRegOfSeeker.objects.filter(email=request.POST.get("email")): request.session["fbk"] = { "type": "email", "email": request.POST.get("email"), } return redirect("feedback") # populating form with request.POST form = TempRegOfSeekerForm(request.POST, request.FILES) if form.is_valid(): # save form data in TempRegOfSeeker table form.save() # get temp_seeker using email (in form cleaned_data) _seeker = TempRegOfSeeker.objects.get( email=form.cleaned_data.get("email") ) # send email _link = "{}://{}{}".format( "http", "localhost:8000", reverse("confirm_email", args=[_seeker.id]), ) send_email( body_text="publicwork/insert_yourself/emails/to_confirm.txt", body_html="publicwork/insert_yourself/emails/to_confirm.html", _subject="confirmação de email", _to=_seeker.email, _context={"name": _seeker.name, "link": _link}, ) request.session["fbk"] = { "type": "email", "email": request.POST.get("email"), } return redirect("feedback") context = { "form": TempRegOfSeekerForm(), "recaptcha_site_key": settings.GOOGLE_RECAPTCHA_SITE_KEY, "form_name": "Seeker", "form_path": "publicwork/forms/seeker.html", "goback": reverse("seeker_home"), "title": "create seeker", "to_create": True, } return render(request, "publicwork/insert_yourself/form.html", context)