Changeset 9806 for main/waeup.kofa/trunk/src/waeup/kofa/browser/pages.py
- Timestamp:
- 17 Dec 2012, 08:06:52 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/waeup.kofa/trunk/src/waeup/kofa/browser/pages.py
r9743 r9806 62 62 get_users_with_role) 63 63 64 from waeup.kofa.students.catalog import search as searchstudents65 from waeup.kofa.students.catalog import StudentQueryResultItem66 64 from waeup.kofa.university.catalog import search 67 65 from waeup.kofa.university.vocabularies import course_levels … … 1881 1879 yield(dict(url=url, name=key, container=val)) 1882 1880 1883 class FilterStudentsInDepartmentPage(KofaPage):1884 """Page that filters and lists students.1885 """1886 grok.context(IDepartment)1887 grok.require('waeup.showStudents')1888 grok.name('students')1889 grok.template('filterstudentspage')1890 pnav = 11891 session_label = _('in session')1892 level_label = _('at level')1893 1894 def label(self):1895 return 'Students in %s ...' % self.context.longtitle()1896 1897 def _set_session_values(self):1898 vocab_terms = academic_sessions_vocab.by_value.values()1899 self.sessions = sorted(1900 [(x.title, x.token) for x in vocab_terms], reverse=True)1901 self.sessions += [('All Sessions', 'all')]1902 return1903 1904 def _set_level_values(self):1905 vocab_terms = course_levels.by_value.values()1906 self.levels = sorted(1907 [(x.title, x.token) for x in vocab_terms])1908 self.levels += [('All Levels', 'all')]1909 return1910 1911 def _searchCatalog(self, session, level):1912 if level not in (10, 999, None):1913 start_level = 100 * (level // 100)1914 end_level = start_level + 901915 else:1916 start_level = end_level = level1917 cat = queryUtility(ICatalog, name='students_catalog')1918 students = cat.searchResults(1919 current_session=(session, session),1920 current_level=(start_level, end_level),1921 depcode=(self.context.code, self.context.code)1922 )1923 hitlist = []1924 for student in students:1925 hitlist.append(StudentQueryResultItem(student, view=self))1926 return hitlist1927 1928 def update(self, SHOW=None, session=None, level=None):1929 datatable.need()1930 self.parent_url = self.url(self.context.__parent__)1931 self._set_session_values()1932 self._set_level_values()1933 self.hitlist = []1934 self.session_default = session1935 self.level_default = level1936 if SHOW is not None:1937 if session != 'all':1938 self.session = int(session)1939 self.session_string = '%s %s/%s' % (1940 self.session_label, self.session, self.session+1)1941 else:1942 self.session = None1943 self.session_string = _('in any session')1944 if level != 'all':1945 self.level = int(level)1946 self.level_string = '%s %s' % (self.level_label, self.level)1947 else:1948 self.level = None1949 self.level_string = _('at any level')1950 self.hitlist = self._searchCatalog(self.session, self.level)1951 if not self.hitlist:1952 self.flash(_('No student found.'))1953 return1954 1955 class FilterStudentsInCertificatePage(FilterStudentsInDepartmentPage):1956 """Page that filters and lists students.1957 """1958 grok.context(ICertificate)1959 1960 def label(self):1961 return 'Students studying %s ...' % self.context.longtitle()1962 1963 def _searchCatalog(self, session, level):1964 if level not in (10, 999, None):1965 start_level = 100 * (level // 100)1966 end_level = start_level + 901967 else:1968 start_level = end_level = level1969 cat = queryUtility(ICatalog, name='students_catalog')1970 students = cat.searchResults(1971 current_session=(session, session),1972 current_level=(start_level, end_level),1973 certcode=(self.context.code, self.context.code)1974 )1975 hitlist = []1976 for student in students:1977 hitlist.append(StudentQueryResultItem(student, view=self))1978 return hitlist1979 1980 class FilterStudentsInCoursePage(FilterStudentsInDepartmentPage):1981 """Page that filters and lists students.1982 """1983 grok.context(ICourse)1984 1985 def label(self):1986 return 'Students registered for %s ...' % self.context.longtitle()1987 1988 def _searchCatalog(self, session, level):1989 if level not in (10, 999, None):1990 start_level = 100 * (level // 100)1991 end_level = start_level + 901992 else:1993 start_level = end_level = level1994 cat = queryUtility(ICatalog, name='coursetickets_catalog')1995 coursetickets = cat.searchResults(1996 session=(session, session),1997 level=(start_level, end_level),1998 code=(self.context.code, self.context.code)1999 )2000 hitlist = []2001 for ticket in coursetickets:2002 # XXX: If students have registered the same courses twice2003 # they will be listed twice.2004 hitlist.append(StudentQueryResultItem(ticket.student, view=self))2005 return hitlist2006 2007 1881 class DepartmentManageFormPage(KofaEditFormPage): 2008 1882 """Manage the basic properties of a `Department` instance.
Note: See TracChangeset for help on using the changeset viewer.