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 event_detail(request, pk): object = Event.objects.get(pk=pk) queryset = object.frequency_set.all().order_by("person__name_sa") object_list = paginator(queryset, 25, request.GET.get("page")) context = { "object": object, "object_list": object_list, "title": "event detail", "nav": "detail", } return render(request, "event/event_detail.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 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 frequency_ps_list(request, person_id): person = Person.objects.get(id=person_id) queryset = person.frequency_set.all() object_list = paginator(queryset, page=request.GET.get("page")) context = { "object_list": object_list, "title": "frequencies list", "person": person, # to header element, "nav": "detail", "tab": "frequencies", } return render(request, "person/person_detail.html", context)
def mentoring_member_historic(request, group_pk, person_pk): object = Person.objects.get(pk=person_pk) page = request.GET["page"] if request.GET.get("page") else 1 object_list = object.historic_set.all().order_by("-date") context = { "object": object, "title": "member detail | historic", "object_list": paginator(object_list, page=page), "nav": "detail", "tab": "historic", "goback": reverse("mentoring_group_detail", args=[group_pk]), "group_pk": group_pk, } return render(request, "workgroup/mentoring/member_detail.html", context)
def membership_ps_list(request, person_id): queryset = Membership.objects.filter( person=person_id).order_by("workgroup") person = (queryset[0].person if queryset else Person.objects.get( id=person_id)) object_list = paginator(queryset, page=request.GET.get("page")) context = { "object_list": object_list, "title": "membership list", "person": person, # to header element "nav": "detail", "tab": "membership", } return render(request, "person/person_detail.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 seeker_historic(request, pk): belongs_center(request, pk, Seeker) page = request.GET["page"] if request.GET.get("page") else 1 seeker = Seeker.objects.get(pk=pk) historics = seeker.historicofseeker_set.all().order_by("-date") context = { "object": seeker, "title": "seeker detail | historic", "object_list": paginator(historics, page=page), "nav": "seeker", "tab": "historic", } return render(request, "publicwork/seeker_detail.html", context)
def mentoring_member_frequencies(request, group_pk, person_pk): object = Person.objects.get(pk=person_pk) page = request.GET["page"] if request.GET.get("page") else 1 object_list = object.frequency_set.all().order_by("-event__date") ranking = sum([f.ranking for f in object_list]) context = { "object": object, "title": "member detail | frequencies", "object_list": paginator(object_list, page=page), "nav": "detail", "tab": "frequencies", "ranking": ranking, "goback": reverse("mentoring_group_detail", args=[group_pk]), "group_pk": group_pk, } return render(request, "workgroup/mentoring/member_detail.html", context)
def lecture_detail(request, pk): lect_object = Lecture.objects.get(pk=pk) queryset = lect_object.listener_set.all().order_by("seeker__name_sa") object_list = paginator(queryset, 25, page=request.GET.get("page")) # add action links for item in object_list: item.click_link = reverse("update_listener", args=[pk, item.pk]) item.del_link = reverse("remove_listener", args=[pk, item.pk]) context = { "object": lect_object, "object_list": object_list, "title": "lecture detail", } return render(request, "publicwork/lecture_detail.html", context)
def person_historic(request, person_id): queryset = Historic.objects.filter(person=person_id).order_by("-date") person = ( queryset[0].person if queryset else Person.objects.get(id=person_id) ) object_list = paginator(queryset, page=request.GET.get("page")) context = { "object_list": object_list, "title": "historic list", "person": person, # to header element "nav": "detail", "tab": "historic", } return render(request, "person/person_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 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 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_frequencies(request, pk): belongs_center(request, pk, PublicworkGroup) pw_group = PublicworkGroup.objects.get(pk=pk) if request.GET.get("lect_pk"): # get lecture lecture = Lecture.objects.get(pk=request.GET["lect_pk"]) # create and prepare frequencies object in session, if necessary if not request.session.get("frequencies"): request.session["frequencies"] = { "lecture": {}, "listeners": [], } preparing_the_session(request, pw_group.members.all(), lecture) if request.method == "POST": listeners = get_listeners_dict(request) if listeners: for listener in listeners: new_freq = dict( lecture=lecture, seeker_id=listener["id"], ranking=listener["rank"], observations=listener["obs"], ) Listener.objects.create(**new_freq) return redirect("group_detail", pk=pk) queryset, page = search_lecture(request, Lecture) object_list = paginator(queryset, page=page) # add action links for item in object_list: item.add_freqs_link = (reverse("group_add_frequencies", args=[pk]) + f"?lect_pk={item.pk}") context = { "object": pw_group, "object_list": object_list, "title": "add frequencies", "nav": "add_frequencies", "goback": reverse("group_detail", args=[pk]), "type_list": LECTURE_TYPES, "pk": pk, } return render(request, "publicwork/groups/detail.html", context)
def seeker_frequencies(request, pk): belongs_center(request, pk, Seeker) page = request.GET["page"] if request.GET.get("page") else 1 seeker = Seeker.objects.get(pk=pk) frequencies = seeker.listener_set.all() ranking = sum([f.ranking for f in frequencies]) context = { "object": seeker, "title": "seeker detail | frequencies", "object_list": paginator(frequencies, page=page), "nav": "seeker", "tab": "frequencies", "ranking": ranking, } return render(request, "publicwork/seeker_detail.html", context)
def workgroup_detail(request, pk): obj = Workgroup.objects.get(pk=pk) queryset = obj.membership_set.all().order_by("person__name_sa") object_list = paginator(queryset, 25, request.GET.get("page")) # add action links for member in object_list: member.click_link = reverse("membership_update", args=[pk, member.pk]) member.del_link = reverse("membership_delete", args=[pk, member.pk]) context = { "object": obj, "object_list": object_list, "title": "workgroup detail", "nav": "detail", } return render(request, "workgroup/workgroup_detail.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 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 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 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 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 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 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 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 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 mentoring_group_detail(request, pk): if request.session.get("frequencies"): del request.session["frequencies"] workgroup = Workgroup.objects.get(pk=pk) queryset = workgroup.membership_set.all().order_by("person__name_sa") object_list = paginator(queryset, 25, request.GET.get("page")) # add action links for member in object_list: member.click_link = reverse("mentoring_member_detail", args=[pk, member.person.pk]) context = { "object": workgroup, "object_list": object_list, "title": "workgroup detail", "nav": "detail", "tab": "members", "goback": reverse("mentoring_home"), } return render(request, "workgroup/mentoring/group_detail.html", context)