def sectionbase_by_year_and_section(request, year, section): try: data = SectionBase.objects.get(contents__section__year=year, contents__section__ordinal=section) except SectionBase.DoesNotExist: return HttpResponse(status=404) if request.method == "GET": serializer = SectionBaseSerializer(data) return Response(serializer.data)
def sectionbases_by_year(request, year): try: data = SectionBase.objects.filter(contents__section__year=year) except SectionBase.DoesNotExist: return HttpResponse(status=404) if request.method == "GET": serializer = SectionBaseSerializer(data, many=True, context={"request": request}) return Response(serializer.data)
def generic_fragment_by_id(request, id): try: year, section = _year_section_query_from_id(id) data = SectionBase.objects.get(contents__section__year=year, contents__section__ordinal=section) targets = _get_fragment_by_id(id, data.contents.get("section")) if not len(targets) == 1: return HttpResponse(status=404) data.contents = targets[0].value except Section.DoesNotExist: return HttpResponse(status=404) if request.method == "GET": serializer = SectionBaseSerializer(data) return Response(serializer.data)
def sectionbase_by_year_section_subsection(request, year, section, subsection): try: data = SectionBase.objects.get(contents__section__year=year, contents__section__ordinal=section) subsection_id = _id_from_chunks(year, section, subsection) subsections = data.contents["section"]["subsections"] targets = [_ for _ in subsections if _["id"] == subsection_id] if not targets: return HttpResponse(status=404) data.contents = targets[0] if len(targets) == 1 else targets except SectionBase.DoesNotExist: return HttpResponse(status=404) if request.method == "GET": serializer = SectionBaseSerializer(data) return Response(serializer.data)