예제 #1
0
def index(request):
	queryset = Production.objects.filter(supertype='production')

	order = request.GET.get('order', 'date')
	asc = request.GET.get('dir', 'desc') == 'asc'

	queryset = apply_order(queryset, order, asc)

	form = ProductionIndexFilterForm(request.GET)

	if form.is_valid():
		if form.cleaned_data['platform']:
			queryset = queryset.filter(platforms=form.cleaned_data['platform'])
		if form.cleaned_data['production_type']:
			prod_types = ProductionType.get_tree(form.cleaned_data['production_type'])
			queryset = queryset.filter(types__in=prod_types)

	queryset = queryset.select_related('default_screenshot').prefetch_related('author_nicks__releaser', 'author_affiliation_nicks__releaser', 'platforms', 'types')

	production_page = get_page(
		queryset,
		request.GET.get('page', '1'))

	return render(request, 'productions/index.html', {
		'order': order,
		'production_page': production_page,
		'menu_section': "productions",
		'asc': asc,
		'form': form,
	})
예제 #2
0
    def get(self, request):
        queryset = Production.objects.filter(supertype=self.supertype)

        order = request.GET.get('order', 'date')
        asc = request.GET.get('dir', 'desc') == 'asc'

        queryset = apply_order(queryset, order, asc)

        form = self.filter_form_class(request.GET)

        if form.is_valid():
            if form.cleaned_data['platform']:
                queryset = queryset.filter(
                    platforms=form.cleaned_data['platform'])
            if form.cleaned_data['production_type']:
                prod_types = ProductionType.get_tree(
                    form.cleaned_data['production_type'])
                queryset = queryset.filter(types__in=prod_types)

        queryset = queryset.prefetch_related(
            'author_nicks__releaser', 'author_affiliation_nicks__releaser',
            'platforms', 'types')

        production_page = get_page(queryset, request.GET.get('page', '1'))

        return render(
            request, self.template, {
                'order': order,
                'production_page': production_page,
                'menu_section': "productions",
                'asc': asc,
                'form': form,
            })
예제 #3
0
def index(request):
    queryset = Production.objects.filter(supertype='graphics')

    order = request.GET.get('order', 'date')
    asc = request.GET.get('dir', 'desc') == 'asc'

    queryset = apply_order(queryset, order, asc)

    form = GraphicsIndexFilterForm(request.GET)

    if form.is_valid():
        if form.cleaned_data['platform']:
            queryset = queryset.filter(platforms=form.cleaned_data['platform'])
        if form.cleaned_data['production_type']:
            prod_types = ProductionType.get_tree(
                form.cleaned_data['production_type'])
            queryset = queryset.filter(types__in=prod_types)

    queryset = queryset.prefetch_related('author_nicks__releaser',
                                         'author_affiliation_nicks__releaser',
                                         'platforms', 'types')

    production_page = get_page(queryset, request.GET.get('page', '1'))

    return render(
        request, 'graphics/index.html', {
            'order': order,
            'production_page': production_page,
            'menu_section': "graphics",
            'asc': asc,
            'form': form,
        })
예제 #4
0
def index(request):
    queryset = Production.objects.filter(supertype="production")

    order = request.GET.get("order", "date")
    asc = request.GET.get("dir", "desc") == "asc"

    queryset = apply_order(queryset, order, asc)

    form = ProductionIndexFilterForm(request.GET)

    if form.is_valid():
        if form.cleaned_data["platform"]:
            queryset = queryset.filter(platforms=form.cleaned_data["platform"])
        if form.cleaned_data["production_type"]:
            prod_types = ProductionType.get_tree(form.cleaned_data["production_type"])
            queryset = queryset.filter(types__in=prod_types)

    queryset = queryset.select_related("default_screenshot").prefetch_related(
        "author_nicks__releaser", "author_affiliation_nicks__releaser", "platforms", "types"
    )

    production_page = get_page(queryset, request.GET.get("page", "1"))

    return render(
        request,
        "productions/index.html",
        {"order": order, "production_page": production_page, "menu_section": "productions", "asc": asc, "form": form},
    )