Ignore:
Timestamp:
6 Sep 2011, 08:22:00 (13 years ago)
Author:
Henrik Bettermann
Message:

Tweak site layout for students (experimental!). Students should see only a one-column.

Location:
main/waeup.sirp/trunk/src/waeup/sirp/students
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.sirp/trunk/src/waeup/sirp/students/permissions.py

    r6683 r6687  
    3939class StudentRole(grok.Role):
    4040    grok.name('waeup.Student')
    41     grok.permissions('waeup.Public')
     41    grok.permissions('waeup.Public', 'waeup.View')
    4242
    4343class StudentsOfficer(grok.Role):
  • main/waeup.sirp/trunk/src/waeup/sirp/students/viewlets.py

    r6660 r6687  
    44
    55grok.context(IWAeUPObject) # Make IWAeUPObject the default context
     6grok.templatedir('browser_templates')
    67
    7 class StudentSidebar(grok.ViewletManager):
    8     grok.name('left_student')
     8class StudentManageSidebar(grok.ViewletManager):
     9    grok.name('left_studentmanage')
    910
    10 class StudentLink(grok.Viewlet):
     11class StudentManageLink(grok.Viewlet):
    1112    """A link displayed in the student box which shows up for StudentNavigation
    1213    objects.
     
    1415    """
    1516    grok.baseclass()
    16     grok.viewletmanager(StudentSidebar)
     17    grok.viewletmanager(StudentManageSidebar)
    1718    grok.context(IWAeUPObject)
    1819    grok.view(Interface)
     
    2728        return u'<div class="portlet"><a href="%s">%s</a></div>' % (
    2829                url, self.text)
     30
     31class StudentManageBaseLink(StudentManageLink):
     32    grok.order(1)
     33    link = 'index'
     34    text = u'Base Data'
     35
     36class StudentManageClearanceLink(StudentManageLink):
     37    grok.order(2)
     38    link = 'view_clearance'
     39    text = u'Clearance Data'
     40
     41class StudentManagePersonalLink(StudentManageLink):
     42    grok.order(2)
     43    link = 'view_personal'
     44    text = u'Personal Data'
     45
     46class StudentManageStudyCourseLink(StudentManageLink):
     47    grok.order(3)
     48    link = 'studycourse'
     49    text = u'Study Course'
     50
     51class StudentManagePaymentsLink(StudentManageLink):
     52    grok.order(4)
     53    link = 'payments'
     54    text = u'Payments'
     55
     56class StudentManageAccommodationLink(StudentManageLink):
     57    grok.order(5)
     58    link = 'accommodation'
     59    text = u'Accommodation Data'
     60
     61class StudentManageHistoryLink(StudentManageLink):
     62    grok.order(6)
     63    link = 'history'
     64    text = u'History'
     65
     66
     67class StudentMenu(grok.ViewletManager):
     68    grok.name('top_student')
     69
     70class StudentLink(grok.Viewlet):
     71    """A link displayed in the student box which shows up for StudentNavigation
     72    objects.
     73
     74    """
     75    grok.baseclass()
     76    grok.viewletmanager(StudentMenu)
     77    grok.context(IWAeUPObject)
     78    grok.view(Interface)
     79    grok.order(5)
     80    grok.require('waeup.viewStudent')
     81    template = grok.PageTemplateFile('browser_templates/plainactionbutton.pt')
     82
     83    link = 'index'
     84    text = u'Base Data'
     85
     86    @property
     87    def alt(self):
     88        """Alternative text for icon.
     89        """
     90        return self.text
     91
     92    @property
     93    def target_url(self):
     94        """Get a URL to the target...
     95        """
     96        return self.view.url(self.context.getStudent(), self.link)
    2997
    3098class StudentBaseLink(StudentLink):
     
    56124    grok.order(5)
    57125    link = 'accommodation'
    58     text = u'Accommodation Data'
     126    text = u'Accommodation'
    59127
    60128class StudentHistoryLink(StudentLink):
     
    62130    link = 'history'
    63131    text = u'History'
     132
     133class PrimaryStudentNavManager(grok.ViewletManager):
     134    """Viewlet manager for the primary navigation tab.
     135    """
     136    grok.name('primary_nav_student')
     137
     138class PrimaryStudentNavTab(grok.Viewlet):
     139    """Base for primary student nav tabs.
     140    """
     141    grok.baseclass()
     142    grok.viewletmanager(PrimaryStudentNavManager)
     143    grok.template('primarynavtab')
     144    grok.order(1)
     145    grok.require('waeup.View')
     146    pnav = 0
     147    tab_title = u'Some Text'
     148
     149    @property
     150    def link_target(self):
     151        return self.view.application_url()
     152
     153    @property
     154    def active(self):
     155        view_pnav = getattr(self.view, 'pnav', 0)
     156        if view_pnav == self.pnav:
     157            return 'active'
     158        return ''
     159
     160class HomeTab(PrimaryStudentNavTab):
     161    """Home-tab in primary navigation.
     162    """
     163    grok.order(1)
     164    grok.require('waeup.Public')
     165    pnav = 0
     166    tab_title = u'Home'
     167
     168class ProspectusTab(PrimaryStudentNavTab):
     169    """Faculties-tab in primary navigation.
     170    """
     171    grok.order(2)
     172    grok.require('waeup.View')
     173    pnav = 1
     174    tab_title = u'Prospectus'
     175
     176    @property
     177    def link_target(self):
     178        return self.view.application_url('faculties')
     179
     180class MyDataTab(PrimaryStudentNavTab):
     181    """MyData-tab in primary navigation.
     182    """
     183    grok.order(3)
     184    grok.require('waeup.Public')
     185    pnav = 4
     186    tab_title = u'My Data'
     187
     188    @property
     189    def link_target(self):
     190        rel_link = '/students/%s' % self.request.principal.id
     191        return self.view.application_url() + rel_link
Note: See TracChangeset for help on using the changeset viewer.