def advanced_search(request): filters = {} for filter_name, collapsed in ADVANCED_SEARCH_FILTERS: filter = FILTERS[filter_name] filter_data = {"name": filter_name, "title": filter.title, "options": [], "request_name": filter.request_name, "collapsed": collapsed} if isinstance(filter, VocabularyFilter): for option in filter.model.objects.values("id", "slug", "name"): option["input_id"] = "%s-%i" % \ (filter_data["request_name"].replace(".", "-"), option["id"]) filter_data["options"].append(option) elif isinstance(filter, ChoicesFilter): for i, (slug, name) in enumerate(filter.choices): option = {"id": i, "slug": slug, "name": name} option["input_id"] = "%s-%i" % \ (filter_data["request_name"].replace(".", "-"), option["id"]) filter_data["options"].append(option) filters[filter_name] = filter_data license_types_dict = dict(LICENSE_TYPES) license_hierarchy_dict = dict(LICENSE_HIERARCHY) filters["cou_bucket"]["sub_option_request_name"] = FILTERS["license_type"].request_name for option in filters["cou_bucket"]["options"]: option["options"] = [] for i, license_type in enumerate(license_hierarchy_dict[option["slug"]]): sub_option = {"id": i, "slug": license_type, "name": license_types_dict[license_type]} sub_option["input_id"] = "%s-%i%i" % \ (filters["cou_bucket"]["sub_option_request_name"].replace(".", "-"), option["id"], sub_option["id"]) option["options"].append(sub_option) page_title = u"Advanced Search" breadcrumbs = [{"url": reverse("materials:advanced_search"), "title": page_title}] rubrics = [dict(id=id, name=name) for id, name in get_rubric_choices()] return direct_to_template(request, "materials/advanced-search.html", locals())
value = map(int, value) except (TypeError, ValueError): raise Http404() return value FILTERS = { "general_subjects": VocabularyFilter("general_subjects", "f.general_subject", GeneralSubject, u"Subject Area"), "grade_levels": VocabularyFilter("grade_levels", "f.edu_level", GradeLevel, u"Grade Level"), "course_material_types": VocabularyFilter("course_material_types", "f.material_types", CourseMaterialType, u"Material Type"), "library_material_types": VocabularyFilter("library_material_types", "f.lib_material_types", LibraryMaterialType, u"Material Type"), "media_formats": VocabularyFilter("media_formats", "f.media_formats", MediaFormat, u"Media Format"), "languages": VocabularyFilter("languages", "f.language", Language, u"Language"), "geographic_relevance": VocabularyFilter("geographic_relevance", "f.geographic_relevance", GeographicRelevance, u"Intended Regional Relevance"), "community_types": VocabularyFilter("community_types", "f.oer_type", CommunityType, u"OER Community Type"), "community_topics": VocabularyFilter("community_topics", "f.oer_topic", CommunityTopic, u"OER Community Topic"), "course_or_module": ChoicesFilter("course_or_module", "f.course_or_module", COURSE_OR_MODULE, u"Course Type"), "cou_bucket": ChoicesFilter("cou_bucket", "f.cou_bucket", COU_BUCKETS, u"Conditions of Use"), "license_type": ChoicesFilter("license", "f.license", LICENSE_TYPES, u"Conditions of Use"), "member_activities": ChoicesFilter("member_activities", "f.member_activity", MEMBER_ACTIVITY_TYPES, u"Member Activity"), "collection": VocabularyFilter("collection", "f.collection", Collection, u"Collection"), "keywords": KeywordFilter("keywords", "f.keyword"), "microsite": VocabularyFilter("microsites", "f.microsite", Microsite, u"Topic", ignore_all_values=False), "topics": VocabularyFilter("indexed_topics", "f.subtopic", Topic, u"SubTopic"), "featured": BooleanFilter("featured", "f.featured", u"Featured Resources"), "alignment": AlignmentFilter("alignment_tags", "f.alignment"), "evaluated_rubrics": RubricFilter("evaluated_rubrics", "f.rubric", get_rubric_choices(), u"Rubric"), "search": SearchFilter(), }