Esempio n. 1
0
def homepage(request):
    """
    I4P Homepage
    """
    project_sheets = I4pProject.on_site.filter(best_of=True).order_by('?')[:14]
    project_translations = get_project_translations_from_parents(project_sheets,
                                                                 language_code=translation.get_language()
                                                                 )

    latest_members = list(User.objects.filter(is_active=True).order_by('-date_joined')[:7])
    random.shuffle(latest_members)

    
    data = request.GET

    context = {'project_sheets': project_sheets,
               'project_translations': project_translations,
               'last_members': latest_members,
               'about_tab_selected' : True}

    filter_forms, extra_context = build_filters_and_context(data)
    context.update(filter_forms)
    context.update(extra_context)


    return render_to_response(template_name='pages/homepage.html',
                              dictionary=context,
                              context_instance=RequestContext(request)
                              )
def search_form(request):
    additions = {
        'search_form': SearchForm(),
    }
    filter_forms, extra_context = build_filters_and_context(request.GET)
    additions.update(extra_context)
    additions.update(filter_forms)
    return additions
Esempio n. 3
0
def homepage(request):
    """
    I4P Homepage
    """
    project_sheets = I4pProject.objects.filter(best_of=True).order_by('?')[:14]
    project_translations = get_project_translations_from_parents(
        project_sheets, language_code=translation.get_language())
    data = request.GET

    context = {
        'project_sheets': project_sheets,
        'project_translations': project_translations,
        'about_tab_selected': True
    }

    filter_forms, extra_context = build_filters_and_context(data)
    context.update(filter_forms)
    context.update(extra_context)

    return render_to_response(template_name='homepage.html',
                              dictionary=context,
                              context_instance=RequestContext(request))
Esempio n. 4
0
def homepage(request):
    """
    I4P Homepage
    """
    project_sheets = I4pProject.objects.filter(best_of=True).order_by('?')[:14]
    project_translations = get_project_translations_from_parents(project_sheets,
                                                                 language_code=translation.get_language()
                                                                 )
    data = request.GET

    context = {'project_sheets': project_sheets,
               'project_translations': project_translations,
               'about_tab_selected' : True}

    filter_forms, extra_context = build_filters_and_context(data)
    context.update(filter_forms)
    context.update(extra_context)


    return render_to_response(template_name='homepage.html',
                              dictionary=context,
                              context_instance=RequestContext(request)
                              )
Esempio n. 5
0
def project_sheet_list(request):
    """
    Display a listing of all projects
    """
    language_code = translation.get_language()

    data = request.GET.copy()

    filter_forms_dict, extra_context = build_filters_and_context(data)

    ordered_project_sheets = I4pProjectTranslation.objects.none()
    filters = FilterSet(filter_forms_dict.values())

    if filters.is_valid():
        # First pass to filter project
        filtered_projects = filters.apply_to(queryset=I4pProject.objects.all(),
                                             model_class=I4pProject)
        # Second pass to select language
        project_sheet_ids = []
        for project in filtered_projects:
            project_sheet = get_project_translation_from_parent(project,
                                                                language_code,
                                                                fallback_language='en',
                                                                fallback_any=True)
            project_sheet_ids.append(project_sheet.id)
        i18n_project_sheets = I4pProjectTranslation.objects.filter(id__in=project_sheet_ids)

        # Third pass to filter sheet
        filtered_project_sheets = filters.apply_to(queryset=i18n_project_sheets,
                                                   model_class=I4pProjectTranslation)

        # Fourth pass to order sheet
        if data.get("order") == "creation":
            ordered_project_sheets = filtered_project_sheets.order_by('-project__created')
            extra_context["order"] = "creation"
        elif data.get("order") == "modification":
            ordered_project_sheets = filtered_project_sheets.order_by('-modified')
            extra_context["order"] = "modification"
        else:
            ordered_project_sheets = filtered_project_sheets.order_by('-project__best_of', 'slug')

        if data.has_key('page'):
            del data["page"]
        extra_context["getparams"] = data.urlencode()
        extra_context["orderparams"] = extra_context["getparams"]\
                                        .replace("order=creation", "")\
                                        .replace("order=modification", "")

        extra_context["selected_tags"] = [int(t.id) for t in filter_forms_dict["themes_filter"].cleaned_data["themes"]]


    extra_context.update(filter_forms_dict)
    extra_context["filters_tab_selected"] = True

    return object_list(request,
                       template_name='project_sheet/project_list.html',
                       queryset=ordered_project_sheets,
                       # paginate_by=12,
                       allow_empty=True,
                       template_object_name='project_translation',
                       extra_context=extra_context)