Changeset 7459


Ignore:
Timestamp:
12 Jan 2012, 16:19:57 (13 years ago)
Author:
Henrik Bettermann
Message:

Merge Bootstrap branch into trunk.

Location:
main/waeup.sirp/trunk/src/waeup/sirp
Files:
5 deleted
94 edited
4 copied

Legend:

Unmodified
Added
Removed
  • main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser.py

    r7321 r7459  
    3232    )
    3333from waeup.sirp.accesscodes.catalog import search
     34from waeup.sirp.browser.layout import action
    3435
    3536grok.context(ISIRPObject)
     
    6667    grok.require('waeup.manageACBatches')
    6768
    68     title = 'Create Access Code Batch'
     69    label = 'Create Access Code Batch'
    6970    pnav = 0
    7071
     
    7273        'prefix', 'entry_num', 'cost')
    7374
    74     @grok.action('Cancel')
     75    @action('Cancel')
    7576    def cancel(self, *args, **kw):
    7677        self.flash('Batch creation cancelled.')
    7778        self.redirect(self.url(self.context))
    7879
    79     @grok.action('Create batch')
     80    @action('Create batch')
    8081    def createBatch(self, **data):
    8182        creator = self.request.principal.id
  • main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser.txt

    r7372 r7459  
    5858    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    5959    ...
    60     <h2>Access Code Batches</h2>
     60    ...<h2>Access Code Batches</h2>
    6161    ...
    6262    ... The following batches are available:
     
    106106    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    107107    ...
    108     <h2>Access Code Batches</h2>
     108    ...<h2>Access Code Batches</h2>
    109109    ...
    110110    ... The following batches are available:
     
    155155    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    156156    ...
    157     <li ...>Archived APP-2 (APP-2_archive-...-zope.mgr.csv)</li>
     157    <div ...>Archived APP-2 (APP-2_archive-...-zope.mgr.csv)</div>
    158158    ...
    159159
     
    165165    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    166166    ...
    167     <li ...>No batch selected.</li>
     167    <div ...>No batch selected.</div>
    168168    ...
    169169
     
    345345    >>> print browser.contents
    346346    <!DOCTYPE html ...
    347     <li class="message">APP-1-<10-DIGITS> disabled.</li>
     347    ...APP-1-<10-DIGITS> disabled.</div>
    348348    ...
    349349
     
    355355    >>> print browser.contents
    356356    <!DOCTYPE html ...
    357     <li ...>APP-1-<10-DIGITS>: Disable transition not allowed.</li>
     357    <div ...>APP-1-<10-DIGITS>: Disable transition not allowed.</div>
    358358    ...
    359359
     
    365365    >>> print browser.contents
    366366    <!DOCTYPE html ...
    367     <li class="message">APP-1-<10-DIGITS> (re-)enabled.</li>
     367    ...APP-1-<10-DIGITS> (re-)enabled.</div>
    368368    ...
    369369
     
    375375    >>> print browser.contents
    376376    <!DOCTYPE html ...
    377     <li ...>APP-1-<10-DIGITS>: Re-enable transition not allowed.</li>
     377    <div ...>APP-1-<10-DIGITS>: Re-enable transition not allowed.</div>
    378378    ...
    379379
  • main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser_templates/admintaskacbatches.pt

    r5082 r7459  
    22<a href=""
    33   tal:attributes="href viewlet/link_target"
    4    tal:content="viewlet/link_title">Manage Users</a>
     4   tal:content="viewlet/link_title">Manage</a>
    55</p>
  • main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser_templates/batchcontainer.pt

    r7198 r7459  
    1515    </thead>
    1616    <tbody>
    17       <tr tal:repeat="batch context/values"
    18     tal:attributes="class python: repeat['batch'].odd() and 'even' or 'odd'">
     17      <tr tal:repeat="batch context/values">
    1918  <td>
    2019    <input type="checkbox" name="batches" value="batch/prefix"
     
    4241    </tbody>
    4342  </table>
    44   <input type="submit" name="archive" value="Archive" />
    45   <input type="submit" name="delete" value="Archive and Delete" />
     43  <input type="submit" class="btn" name="archive" value="Archive" />
     44  <input type="submit" class="btn" name="delete" value="Archive and Delete" />
    4645</form>
  • main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser_templates/reimportbatchpage.pt

    r7198 r7459  
    11<h3>Reimport Access Code Batches</h3>
    2 <p>
    3   Please select the files to reimport. Please note, that batches with
    4   same name have to be deleted before.
     2<p> Please select the files to reimport. Please note, that batches with  same name have to be deleted before.
    53</p>
    64<form method="POST">
     
    86    <thead>
    97      <tr>
    10         <th>&nbsp;</th>
    11   <th>File</th>
     8        <th>&nbsp;
     9        </th>
     10        <th>File
     11        </th>
    1212      </tr>
    1313    </thead>
    1414    <tbody>
    15       <tr tal:repeat="filename context/getImportFiles"
    16     tal:attributes="class python: repeat['filename'].odd() and 'even' or 'odd'">
    17   <td>
    18     <input type="checkbox" name="filenames" value="filename"
    19      tal:attributes="value filename" />
    20   </td>
    21   <td tal:content="filename">file.name</td>
     15      <tr tal:repeat="filename context/getImportFiles"  tal:attributes="class python: repeat['filename'].odd() and 'even' or 'odd'"> <td>
     16          <input type="checkbox" name="filenames" value="filename"  tal:attributes="value filename" /> </td>
     17        <td tal:content="filename">file.name</td>
    2218      </tr>
    2319      <tr tal:condition="python: len(list(context.getImportFiles())) == 0">
    24   <td colspan="5"><b>No import batches available</b></td>
     20        <td colspan="5"><b>No import batches available</b></td>
    2521      </tr>
    2622    </tbody>
    2723  </table>
    28 
    29   <input type="submit" name="cancel" value="Cancel" />
    30   <input type="submit" name="reimport" value="Reimport" />
     24  <input type="submit" class="btn primary" name="reimport" value="Reimport" />
     25  <input type="submit" class="btn" name="cancel" value="Cancel" />
    3126</form>
  • main/waeup.sirp/trunk/src/waeup/sirp/accesscodes/browser_templates/searchpage.pt

    r7198 r7459  
    33<br />
    44
    5   <input type="submit" name="search" value="Search" />
     5  <input type="submit" class="btn primary" name="search" value="Search" />
    66  for access codes
    77
     
    4646      </tbody>
    4747    </table>
    48     <div class="actionButtons">
    49         <input type="submit" name="disable" value="Disable ACs" />
    50         <input type="submit" name="enable" value="Enable ACs" />
     48    <div>
     49      <input type="submit" class="btn" name="disable" value="Disable ACs" />
     50      <input type="submit" class="btn" name="enable" value="Enable ACs" />
    5151    </div>
    5252
  • main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser.py

    r7438 r7459  
    3838from waeup.sirp.browser.interfaces import ICaptchaManager
    3939from waeup.sirp.browser.breadcrumbs import Breadcrumb
    40 from waeup.sirp.browser.layout import NullValidator, jsaction
     40from waeup.sirp.browser.layout import (
     41    NullValidator, jsaction, action, UtilityView)
    4142from waeup.sirp.browser.pages import add_local_role, del_local_roles
    4243from waeup.sirp.browser.resources import datepicker, tabs, datatable, warning
     
    120121        return
    121122
    122     @grok.action('Add applicants container', validator=NullValidator)
     123    @action('Add applicants container', validator=NullValidator)
    123124    def addApplicantsContainer(self, **data):
    124125        self.redirect(self.url(self.context, '@@add'))
    125126        return
    126127
    127     @grok.action('Cancel', validator=NullValidator)
     128    @action('Cancel', validator=NullValidator)
    128129    def cancel(self, **data):
    129130        self.redirect(self.url(self.context))
    130131        return
    131132
    132     @grok.action('Add local role', validator=NullValidator)
     133    @action('Add local role', validator=NullValidator)
    133134    def addLocalRole(self, **data):
    134135        return add_local_role(self,2, **data)
    135136
    136     @grok.action('Remove selected local roles')
     137    @action('Remove selected local roles')
    137138    def delLocalRoles(self, **data):
    138139        return del_local_roles(self,2,**data)
     
    156157        return super(ApplicantsContainerAddFormPage, self).update()
    157158
    158     @grok.action('Add applicants container')
     159    @action('Add applicants container')
    159160    def addApplicantsContainer(self, **data):
    160161        year = data['year']
     
    178179        return
    179180
    180     @grok.action('Cancel', validator=NullValidator)
     181    @action('Cancel', validator=NullValidator)
    181182    def cancel(self, **data):
    182183        self.redirect(self.url(self.context, '@@manage') + '#tab-1')
     
    280281        return get_users_with_local_roles(self.context)
    281282
    282     @grok.action('Save')
     283    @action('Save')
    283284    def apply(self, **data):
    284285        self.applyData(self.context, **data)
     
    310311        return
    311312
    312     @grok.action('Add applicant', validator=NullValidator)
     313    @action('Add applicant', validator=NullValidator)
    313314    def addApplicant(self, **data):
    314315        self.redirect(self.url(self.context, 'addapplicant'))
    315316        return
    316317
    317     @grok.action('Cancel', validator=NullValidator)
     318    @action('Cancel', validator=NullValidator)
    318319    def cancel(self, **data):
    319320        self.redirect(self.url(self.context))
    320321        return
    321322
    322     @grok.action('Add local role', validator=NullValidator)
     323    @action('Add local role', validator=NullValidator)
    323324    def addLocalRole(self, **data):
    324325        return add_local_role(self,3, **data)
    325326
    326     @grok.action('Remove selected local roles')
     327    @action('Remove selected local roles')
    327328    def delLocalRoles(self, **data):
    328329        return del_local_roles(self,3,**data)
     
    345346        return "Applicants Container: %s" % self.context.title
    346347
    347     @grok.action('Create application record')
     348    @action('Create application record')
    348349    def addApplicant(self, **data):
    349350        applicant = createObject(u'waeup.Applicant')
     
    409410        'applicant_id', 'firstname', 'lastname','email', 'course1')
    410411
    411 class CreateStudentPage(grok.View):
     412class CreateStudentPage(UtilityView, grok.View):
    412413    """Create a student object from applicatnt data
    413414    and copy applicant object.
     
    426427        return
    427428
    428 class AcceptanceFeePaymentAddPage(grok.View):
     429class AcceptanceFeePaymentAddPage(UtilityView, grok.View):
    429430    """ Page to add an online payment ticket
    430431    """
     
    493494            self.context.__parent__.display_fullname,self.context.p_id)
    494495
    495 class OnlinePaymentCallbackPage(grok.View):
     496class OnlinePaymentCallbackPage(UtilityView, grok.View):
    496497    """ Callback view
    497498    """
     
    525526        return
    526527
    527 class ExportPDFPaymentSlipPage(grok.View):
     528class ExportPDFPaymentSlipPage(UtilityView, grok.View):
    528529    """Deliver a PDF slip of the context.
    529530    """
     
    552553            self.context.__parent__, applicantview)
    553554
    554 class ExportPDFPage(grok.View):
     555class ExportPDFPage(UtilityView, grok.View):
    555556    """Deliver a PDF slip of the context.
    556557    """
     
    671672            dict(name=x, title=y) for x, y in allowed_transitions]
    672673
    673     @grok.action('Save')
     674    @action('Save')
    674675    def save(self, **data):
    675676        form = self.request.form
     
    739740    # We explicitely want the forms to be validated before payment tickets
    740741    # can be created. If no validation is requested, use
    741     # 'validator=NullValidator' in the grok.action directive
    742     @grok.action('Add online payment ticket')
     742    # 'validator=NullValidator' in the action directive
     743    @action('Add online payment ticket')
    743744    def addPaymentTicket(self, **data):
    744745        self.redirect(self.url(self.context, '@@addafp'))
     
    763764    form_fields['date_of_birth'].custom_widget = FriendlyDateWidget('le-year')
    764765    form_fields['phone'].custom_widget = PhoneWidget
     766    form_fields['applicant_id'].for_display = True
    765767    grok.template('applicanteditpage')
    766768    manage_applications = False
     
    808810    # We explicitely want the forms to be validated before payment tickets
    809811    # can be created. If no validation is requested, use
    810     # 'validator=NullValidator' in the grok.action directive
    811     @grok.action('Add online payment ticket')
     812    # 'validator=NullValidator' in the action directive
     813    @action('Add online payment ticket')
    812814    def addPaymentTicket(self, **data):
    813815        self.redirect(self.url(self.context, '@@addafp'))
     
    820822        return
    821823
    822     @grok.action('Save')
     824    @action('Save')
    823825    def save(self, **data):
    824826        if self.passport_changed is False:  # False is not None!
     
    828830        return
    829831
    830     @grok.action('Final Submit')
     832    @action('Final Submit')
    831833    def finalsubmit(self, **data):
    832834        if self.passport_changed is False:  # False is not None!
     
    903905        return
    904906
    905     @grok.action('Get login credentials')
     907    @action('Get login credentials')
    906908    def register(self, **data):
    907909        if not self.captcha_result.is_valid:
  • main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser_templates/applicantdisplaypage.pt

    r7384 r7459  
    1313<img src="" tal:attributes="src view/passport_url" />
    1414
    15 <table class="zebra">
     15<table class="form-table">
    1616  <tbody>
    1717    <tal:block repeat="widget view/widgets">
     
    2626    </tal:block>
    2727    <tr>
    28       <td class="fieldname" width="33%">
     28      <td class="fieldname">
    2929          Admitted Course of Study:
    3030      </td>
     
    4444</table>
    4545<h3 i18n:translate="">Acceptance Fee Payment Tickets</h3>
    46 <table class="zebra">
     46<table>
    4747  <thead>
    4848    <tr>
  • main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser_templates/applicanteditpage.pt

    r7254 r7459  
    11<form action="." tal:attributes="action request/URL" method="post"
    2       class="edit-form" enctype="multipart/form-data">
     2      enctype="multipart/form-data">
    33
    44  <h2 i18n:translate=""
     
    1414  </div>
    1515
    16   <div class="form-status"
     16  <div class="alert-message error"
    1717    tal:define="status view/status"
    1818    tal:condition="status">
     
    2323  </div>
    2424
    25   <table class="zebra">
     25  <table class="form-table">
    2626    <tbody>
    2727      <tal:block repeat="widget view/widgets">
    2828        <tr>
    29           <td class="label">
    30             <label tal:attributes="for widget/name">
    31               <span class="required" tal:condition="widget/required">*</span>
    32               <span i18n:translate="" tal:content="widget/label">label</span>:
    33             </label>
     29          <td class="fieldname">
     30            <span tal:condition="widget/required">*</span>
     31            <span i18n:translate="" tal:content="widget/label">label</span>:
    3432          </td>
    35           <td class="field">
    36             <span class="widget" tal:content="structure widget">
     33          <td>
     34            <span tal:content="structure widget">
    3735              <input type="text" />
    3836            </span>
     
    4139            </tal:error>
    4240            <tal:hint tal:condition="widget/hint">
    43               <span class="hint" tal:content="structure widget/hint">hint</span>
     41              <span tal:content="structure widget/hint">hint</span>
    4442            </tal:hint>
    4543          </td>
     
    4745      </tal:block>
    4846      <tr>
    49         <td class="label">
    50           <label i18n:translate="" for="form.passport">Photograph</label>
     47        <td class="fieldname">
     48          Photograph
    5149        </td>
    52         <td class="field">
    53           <span class="widget">
    54             <img src="passport.jpg" /><br />
    55             <input type="file" name="form.passport" />
    56             <br />
    57             <span i18n:translate="">
    58               Max. file size:
    59               <span tal:replace="view/max_upload_size">10 KB</span>
    60             </span>
     50        <td>
     51          <img src="passport.jpg" /><br />
     52          <input type="file" name="form.passport" />
     53          <br />
     54          <span i18n:translate="">
     55            Max. file size:
     56            <span tal:replace="view/max_upload_size">10 KB</span>
    6157          </span>
    6258      </tr>
    6359      <tr tal:condition="view/manage_applications">
    64         <td class="label"><label>Password:</label></td>
     60        <td class="fieldname">Password:</td>
    6561        <td>
    6662          <input name="password" type="password"  />
     
    6864      </tr>
    6965      <tr tal:condition="view/manage_applications">
    70         <td class="label"><label>Retype password:</label></td>
     66        <td class="fieldname">Retype password:</td>
    7167        <td>
    7268          <input name="control_password" type="password" />
     
    7470      </tr>
    7571      <tr tal:condition="view/manage_applications">
    76         <td class="label"><label>Application Transition:</label></td>
     72        <td class="fieldname">Application Transition:</td>
    7773        <td>
    7874          <select id="transition" name="transition">
     
    8884
    8985  <div tal:condition="not: view/manage_applications">
    90     <input class="checkboxType" id="confirm_passport" name="confirm_passport"
     86    <input id="confirm_passport" name="confirm_passport"
    9187           type="checkbox" value="True"/>
    9288    I confirm that the Passport Photograph uploaded on this form is a
     
    9490  </div>
    9591
    96   <div class="actionButtons" tal:condition="view/availableActions">
     92  <div tal:condition="view/availableActions">
    9793    <span tal:repeat="action view/actions"
    9894          tal:omit-tag="">
     
    105101  <h3 i18n:translate="">Acceptance Fee Payment Tickets</h3>
    106102
    107   <table class="display dataTableManage">
     103  <table>
    108104    <thead>
    109105    <tr>
     
    136132  </table>
    137133
    138   <div class="actionButtons" tal:condition="view/availableActions">
     134  <div tal:condition="view/availableActions">
    139135    <span tal:repeat="action view/actions"
    140136          tal:omit-tag="">
  • main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser_templates/applicantregister.pt

    r7381 r7459  
    11<form action="." tal:attributes="action request/URL" method="post"
    2       class="edit-form" enctype="multipart/form-data">
     2      enctype="multipart/form-data">
    33
    44  <h2 i18n:translate=""
     
    66    tal:content="view/label">Label</h2>
    77
    8   <div class="form-status"
     8  <div class="alert-message error"
    99    tal:define="status view/status"
    1010    tal:condition="status">
     
    1515  </div>
    1616
    17   <table class="zebra">
     17  <table class="form-table">
    1818    <tbody>
    1919      <tal:block repeat="widget view/widgets">
    2020        <tr>
    21           <td class="label">
    22             <label tal:attributes="for widget/name">
    23               <span class="required" tal:condition="widget/required">*</span>
    24               <span i18n:translate="" tal:content="widget/label">label</span>:
    25             </label>
     21          <td class="fieldname">
     22            <span tal:condition="widget/required">*</span>
     23            <span i18n:translate="" tal:content="widget/label">label</span>:
    2624          </td>
    27           <td class="field">
    28             <span class="widget" tal:content="structure widget">
     25          <td>
     26            <span tal:content="structure widget">
    2927              <input type="text" />
    3028            </span>
     
    3331            </tal:error>
    3432            <tal:hint tal:condition="widget/hint">
    35               <span class="hint" tal:content="structure widget/hint">hint</span>
     33              <span tal:content="structure widget/hint">hint</span>
    3634            </tal:hint>
    3735          </td>
     
    5452    credentials will be sent to the address provided.
    5553  </p>
    56   <div class="actionButtons" tal:condition="view/availableActions">
     54  <div tal:condition="view/availableActions">
    5755    <input tal:repeat="action view/actions"
    5856           tal:replace="structure action/render"
  • main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser_templates/applicantscontaineraddpage.pt

    r6756 r7459  
    66    tal:content="view/label">Label</h2>
    77
    8   <div class="form-status"
     8  <div class="alert-message error"
    99    tal:define="status view/status"
    1010    tal:condition="status">
     
    1515  </div>
    1616
    17   <table class="zebra">
     17  <table class="form-table">
    1818    <tbody>
    1919      <tal:block repeat="widget view/widgets">
    2020        <tr>
    21           <td class="label">
    22             <label tal:attributes="for widget/name">
    23               <span class="required" tal:condition="widget/required">*</span>
    24               <span i18n:translate="" tal:content="widget/label">label</span>:
    25             </label>
     21          <td class="fieldname">
     22            <span tal:condition="widget/required">*</span>
     23            <span i18n:translate="" tal:content="widget/label">label</span>:
    2624          </td>
    27           <td class="field">
    28             <span class="widget" tal:content="structure widget">
     25          <td>
     26            <span tal:content="structure widget">
    2927              <input type="text" />
    3028            </span>
     
    3331            </tal:error>
    3432            <tal:hint tal:condition="widget/hint">
    35               <span class="hint" tal:content="structure widget/hint">hint</span>
     33              <span tal:content="structure widget/hint">hint</span>
    3634            </tal:hint>
    3735          </td>
     
    4139  </table>
    4240
    43   <div class="actionButtons" tal:condition="view/availableActions">
     41  <div tal:condition="view/availableActions">
    4442    <input tal:repeat="action view/actions"
    4543             tal:replace="structure action/render"
  • main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser_templates/applicantscontainermanagepage.pt

    r7364 r7459  
    11<form action="." tal:attributes="action request/URL" method="POST"  class="edit-form" enctype="multipart/form-data">
    22  <h2 i18n:translate="" tal:condition="view/label" tal:content="view/label">Label</h2>
    3   <div class="form-status"  tal:define="status view/status"  tal:condition="status"> Form Status:
     3  <div class="alert-message error"  tal:define="status view/status"  tal:condition="status"> Form Status:
    44    <span i18n:translate="" tal:content="view/status"> Form status summary
    55    </span>
    66  </div>
    7   <div id="tabs">
    8     <ul>
    9       <li>
    10       <a href="#tab-1">
    11         <span>Settings
    12         </span></a>
    13       </li>
    14       <li>
    15       <a href="#tab-2">
    16         <span>Applicants
    17         </span></a>
    18       </li>
    19       <li>
    20       <a href="#tab-3">
    21         <span>Local Roles
    22         </span></a>
    23       </li>
    24     </ul>
    25     <div id="tab-1">
    26       <table class="zebra">
     7  <ul class="tabs" data-tabs="tabs">
     8    <li class="active">
     9    <a href="#tab-1">
     10      <span>Settings
     11      </span></a>
     12    </li>
     13    <li>
     14    <a href="#tab-2">
     15      <span>Applicants
     16      </span></a>
     17    </li>
     18    <li>
     19    <a href="#tab-3">
     20      <span>Local Roles
     21      </span></a>
     22    </li>
     23  </ul>
     24  <div class="tab-content">
     25    <div id="tab-1" class="active">
     26      <table class="form-table">
    2727        <tbody>
    2828          <tal:block repeat="widget view/widgets">
    2929            <tr>
    30               <td class="label">
    31                 <label tal:attributes="for widget/name">
    32                   <span class="required" tal:condition="widget/required">*
    33                   </span>
    34                   <span i18n:translate="" tal:content="widget/label">label
    35                   </span>:
    36                 </label> </td>
    37               <td class="field">
    38                 <span class="widget" tal:content="structure widget">
     30              <td class="fieldname">
     31                <span tal:condition="widget/required">*
     32                </span>
     33                <span i18n:translate="" tal:content="widget/label">label
     34                </span>:
     35              </td>
     36              <td>
     37                <span tal:content="structure widget">
    3938                  <input type="text" />
    4039                </span>
     
    4443                </tal:error>
    4544                <tal:hint tal:condition="widget/hint">
    46                   <span class="hint" tal:content="structure widget/hint">hint
     45                  <span tal:content="structure widget/hint">hint
    4746                  </span>
    4847                </tal:hint> </td>
     
    5150        </tbody>
    5251      </table>
    53       <div class="actionButtons" tal:condition="view/availableActions">
     52      <div tal:condition="view/availableActions">
    5453        <span tal:repeat="action view/actions" tal:omit-tag="">
    5554          <input tal:condition="python:action.label in view.taboneactions"
     
    9897        </tbody>
    9998      </table>
    100       <div class="actionButtons" tal:condition="view/availableActions">
     99      <div tal:condition="view/availableActions">
    101100        <span tal:repeat="action view/actions" tal:omit-tag="">
    102101          <input tal:condition="python:action.label in view.tabtwoactions"
     
    120119        </thead>
    121120        <tbody>
    122           <tr tal:repeat="entry view/getUsersWithLocalRoles" class="gradeB"> <td>
     121          <tr tal:repeat="entry view/getUsersWithLocalRoles" class="gradeC"> <td>
    123122              <input type="checkbox" name="role_id"
    124123                tal:attributes="value python: entry['user_name']+'|'+entry['local_role']" /> </td>
     
    129128        </tbody>
    130129      </table>
    131       <div class="actionButtons" tal:condition="view/availableActions">
     130      <div tal:condition="view/availableActions">
    132131        <span tal:repeat="action view/actions" tal:omit-tag="">
    133132          <input tal:condition="python:action.label in view.tabthreeactions1"
     
    135134        </span>
    136135      </div> <br /><br />
    137       <table class="zebra">
     136      <table class="form-table">
    138137        <tr> <td>
    139138            <select id="user" name="user">
  • main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser_templates/applicantscontainerpage.pt

    r6509 r7459  
    55<br />
    66
    7 <table class="zebra" tal:condition="layout/isAuthenticated">
     7<table class="form-table" tal:condition="layout/isAuthenticated">
    88  <tbody>
    99    <tal:block repeat="widget view/widgets">
     
    1313          <tal:block replace="python:widget.label"/>:
    1414        </td>
    15         <td class="field">
     15        <td>
    1616          <tal:block tal:replace="structure widget" />
    1717        </td>
  • main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser_templates/applicantsrootmanagepage.pt

    r7213 r7459  
    11<h2 i18n:translate="" tal:condition="view/label" tal:content="view/label">Label</h2>
    2 <div class="form-status" tal:define="status view/status" tal:condition="status">
     2<div tal:define="status view/status" tal:condition="status" class="alert-message error">
    33  <div i18n:translate="" tal:content="view/status"> Form status summary
    44  </div>
     
    1010  </ul>
    1111</div>
    12 <form action="." tal:attributes="action request/URL" method="POST"  class="edit-form" enctype="multipart/form-data">
    13   <div id="tabs">
    14     <ul>
    15       <li>
    16       <a href="#tab-1">
    17         <span tal:content="view/subunits">Contents
    18         </span></a>
    19       </li>
    20       <li>
    21       <a href="#tab-2">
    22         <span>Local Roles
    23         </span></a>
    24       </li>
    25     </ul>
    26     <div id="tab-1">
     12<form action="." tal:attributes="action request/URL" method="POST"  enctype="multipart/form-data">
     13  <ul class="tabs" data-tabs="tabs">
     14    <li class="active">
     15    <a href="#tab-1">
     16      <span tal:content="view/subunits">Contents
     17      </span></a>
     18    </li>
     19    <li>
     20    <a href="#tab-2">
     21      <span>Local Roles
     22      </span></a>
     23    </li>
     24  </ul>
     25  <div class="tab-content">
     26    <div id="tab-1" class="active">
    2727      <h3 tal:content="view/subunits">Applicants Containers</h3>
    2828      <table class="display dataTableManage">
     
    4040        </thead>
    4141        <tbody>
    42           <tr tal:repeat="entry context/values"         class="gradeB"> <td>
     42          <tr tal:repeat="entry context/values"         class="gradeC"> <td>
    4343              <input type="checkbox" name="val_id"   tal:attributes="value entry/__name__" /> </td>
    4444            <td tal:content="entry/year">Year </td> <td>
     
    4848        </tbody>
    4949      </table>
    50       <div class="actionButtons" tal:condition="view/availableActions">
     50      <div tal:condition="view/availableActions">
    5151        <span tal:repeat="action view/actions" tal:omit-tag="">
    5252          <input tal:condition="python:action.label in view.taboneactions"   tal:replace="structure action/render"/>
     
    6969        </thead>
    7070        <tbody>
    71           <tr tal:repeat="entry view/getUsersWithLocalRoles" class="gradeB">  <td>
     71          <tr tal:repeat="entry view/getUsersWithLocalRoles" class="gradeC">  <td>
    7272              <input type="checkbox" name="role_id" tal:attributes="value python: entry['user_name']+'|'+entry['local_role']" />  </td>
    7373            <td tal:content="entry/user_name"> USERNAME   </td>
     
    7777        </tbody>
    7878      </table>
    79       <div class="actionButtons" tal:condition="view/availableActions">
     79      <div tal:condition="view/availableActions">
    8080        <span tal:repeat="action view/actions" tal:omit-tag="">
    8181          <input tal:condition="python:action.label in view.tabtwoactions1" tal:replace="structure action/render"/>
    8282        </span>
    8383      </div> <br /><br />
    84       <table class="zebra">
     84      <table class="form-table">
    8585        <tr> <td>
    8686            <select id="user" name="user">
  • main/waeup.sirp/trunk/src/waeup/sirp/applicants/browser_templates/applicantsrootpage.pt

    r6756 r7459  
    1010  </thead>
    1111  <tbody>
    12     <tr tal:repeat="entry context/values"
    13         class="gradeB">
     12    <tr tal:repeat="entry context/values" class="gradeC">
    1413      <td tal:content="entry/year">Year
    1514      </td>     
    1615      <td>
    17         <a href=""
    18            tal:attributes="href python:view.url(entry)"
    19            tal:content="entry/__name__">Code</a>
     16             <a href=""
     17           tal:attributes="href python:view.url(entry)"
     18           tal:content="entry/__name__">Code</a>
    2019      </td>
    2120      <td tal:content="entry/title">Title
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/batchprocessing.txt

    r7262 r7459  
    561561    True
    562562    >>> browser.getControl('Show', index=0).click()
    563     >>> '<input type="submit" name="back" value="Back" />' in browser.contents
     563    >>> '<input class="btn primary" type="submit" name="back" value="Back" />' in browser.contents
    564564    True
    565565    >>> browser.getControl('Back', index=0).click()
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/browser.txt

    r7401 r7459  
    5454  >>> print browser.contents
    5555  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
    56   ...<li class="message">Your message has been sent.</li>
     56  ...Your message has been sent...
    5757  ...
    5858
     
    7777The edit form contains the default value for the portal skin::
    7878
    79   >>> 'waeuptheme-gray1.css' in browser.contents
     79  >>> 'waeup-base.css' in browser.contents
    8080  True
    8181
     
    8585  >>> print browser.contents
    8686  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
    87   ...<li class="message">Settings have been saved.</li>
     87  ...Settings have been saved...
    8888  ...
    8989
     
    9292  >>> print browser.contents
    9393  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
    94   ...<li class="message">Plugins were updated. See log file for details.</li>
     94  ...Plugins were updated. See log file for details...
    9595  ...
    9696
     
    118118  >>> print browser.contents
    119119  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
    120   ...manage portal users...
     120  ...Portal Users...
    121121  ...
    122122
     
    195195  >>> print browser.contents
    196196  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
    197   ...<li class="message">Your message has been sent.</li>
     197  ...Your message has been sent...
    198198  ...
    199199
     
    214214  >>> print browser.contents
    215215  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
    216   ...<span class="required">*</span>
     216  ...*...
    217217  ...<span>Name of faculty</span>:
    218218  ...
     
    371371  >>> print browser.contents
    372372  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
    373   ...<span class="required">*</span>
     373  ...*</span>
    374374  ...<span>Name of department</span>:
    375375  ...
     
    400400  >>> print browser.contents
    401401  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
    402   ...<li class="message">The code chosen already exists in this faculty.</li>
     402  ...The code chosen already exists in this faculty...
    403403  ...
    404404
     
    535535  >>> print browser.contents
    536536  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
    537   ...<span class="required">*</span>
     537  ...*</span>
    538538  ...<span>Title of course</span>:
    539539  ...
     
    574574  >>> print browser.contents
    575575  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
    576   ...<li class="message">A course with same code already exists:...</li>
     576  ...A course with same code already exists:...
    577577  ...
    578578
     
    746746  >>> print browser.contents
    747747  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
    748   ...<span class="required">*</span>
     748  ...*</span>
    749749  ...<span>Title</span>:
    750750  ...
     
    785785  >>> print browser.contents
    786786  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
    787   ...<li class="message">A certificate with same code already exists:...</li>
     787  ...A certificate with same code already exists:...
    788788  ...
    789789
     
    950950  >>> print browser.contents
    951951  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"...
    952   ...<span class="required">*</span>
     952  ...*</span>
    953953  ...<span>Level</span>:
    954954  ...
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/layout.py

    r7364 r7459  
    3434from waeup.sirp.interfaces import ISIRPObject, IUserAccount
    3535from waeup.sirp.browser.interfaces import ITheme
    36 from waeup.sirp.browser.theming import get_all_themes, SIRPThemeGray1
     36from waeup.sirp.browser.theming import get_all_themes, SIRPThemeBase
    3737from waeup.sirp.students.interfaces import IStudentNavigation
    3838from waeup.sirp.applicants.interfaces import IApplicant
     
    5252default_primary_nav_template.__grok_name__ = 'default_primary_nav'
    5353
    54 class jsaction(grok.action):
     54class action(grok.action):
    5555
    5656    def __call__(self, success):
    57         action = JSAction(self.label, success=success, **self.options)
     57        action = SIRPAction(self.label, success=success, **self.options)
    5858        self.actions.append(action)
    5959        return action
    6060
    61 class JSAction(Action):
    62 
    63     msg = '\'Are you sure?\''
     61class SIRPAction(Action):
     62
     63    def __init__(self, label, style='', **options):
     64        super(SIRPAction, self).__init__(label, **options)
     65        self.style = style
    6466
    6567    def render(self):
     
    7072            label = zope.i18n.translate(self.label, context=self.form.request)
    7173        return ('<input type="submit" id="%s" name="%s" value="%s"'
    72                 ' class="button" onclick="return confirmPost(%s)" />' %
     74                ' class="btn %s"/>' %
     75                (self.__name__, self.__name__, escape(label, quote=True),
     76                self.style))
     77
     78class jsaction(grok.action):
     79
     80    def __call__(self, success):
     81        action = JSAction(self.label, success=success, **self.options)
     82        self.actions.append(action)
     83        return action
     84
     85class JSAction(Action):
     86
     87    msg = '\'Are you sure?\''
     88
     89    def render(self):
     90        if not self.available():
     91            return ''
     92        label = self.label
     93        if isinstance(label, Message):
     94            label = zope.i18n.translate(self.label, context=self.form.request)
     95        return ('<input type="submit" id="%s" name="%s" value="%s"'
     96                ' class="btn" onclick="return confirmPost(%s)" />' %
    7397                (self.__name__, self.__name__, escape(label, quote=True), self.msg)
    7498                )
     
    116140        return self.url(site, name)
    117141
    118     def flash(self, message, type='message'):
     142    def flash(self, message, type='alert-message warning'):
    119143        """Send a short message to the user.
    120144        """
     
    125149        return True
    126150
    127 class SIRPLayout(Layout, UtilityView):
     151class SIRPLayout(UtilityView,Layout):
    128152    """A megrok.layout.Layout with additional methods.
    129153    """
    130154    grok.baseclass()
    131155
    132 class SIRPForm(Form, UtilityView):
     156class SIRPForm(UtilityView,Form):
    133157    """A megrok.layout.Form with additional methods.
    134158    """
     
    137161    def setUpWidgets(self,ignore_request=False):
    138162        super(SIRPForm,self).setUpWidgets(ignore_request)
     163        # Width parameters will be overridden by Bootstrap
     164        # so we have to set the css class
    139165        if self.widgets.get('subject'):
    140             self.widgets['subject'].displayWidth = 45
     166            self.widgets['subject'].cssClass = 'span9'
    141167        if self.widgets.get('body'):
    142168            self.widgets['body'].height = 10
    143169        if self.widgets.get('body'):
    144             self.widgets['body'].width = 35
    145 
    146 class SIRPPage(Page):
     170            self.widgets['body'].cssClass = 'span9'
     171
     172class SIRPPage(UtilityView,Page):
    147173    """A megrok.layout page with additional methods.
    148174    """
    149175    grok.baseclass()
    150176
    151 class SIRPDisplayFormPage(DisplayForm, UtilityView):
     177class SIRPDisplayFormPage(UtilityView,DisplayForm):
    152178    """A megrok.layout.DisplayForm with additional methods.
    153179    """
     
    155181    template = default_waeup_display_template
    156182
    157 class SIRPEditFormPage(EditForm, UtilityView):
     183class SIRPEditFormPage(UtilityView,EditForm):
    158184    """A megrok.layout.EditForm with additional methods.
    159185    """
     
    163189    def setUpWidgets(self,ignore_request=False):
    164190        super(SIRPEditFormPage,self).setUpWidgets(ignore_request)
     191        for widget in self.widgets:
     192            if widget.__class__.__name__ == 'TextWidget':
     193                widget.cssClass = 'span8'
     194            elif widget.__class__.__name__ == 'IntWidget':
     195                widget.cssClass = 'span2'
     196        #import pdb; pdb.set_trace()
    165197        if self.widgets.get('title'):
    166             self.widgets['title'].displayWidth = 80
     198            self.widgets['title'].cssClass = 'span12'
    167199        if self.widgets.get('frontpage'):
    168             self.widgets['frontpage'].width = 70
     200            self.widgets['frontpage'].cssClass = 'span12'
    169201        if self.widgets.get('phone'):
    170             self.widgets['phone'].displayWidth = 13
     202            self.widgets['phone'].cssClass = 'span4'
    171203        if self.widgets.get('notice'):
    172204            self.widgets['notice'].height = 3
    173 
    174 class SIRPAddFormPage(AddForm,  UtilityView):
     205        if self.widgets.get('perm_address'):
     206            self.widgets['perm_address'].cssClass = 'span8'
     207            self.widgets['perm_address'].height = 10
     208
     209class SIRPAddFormPage(UtilityView,AddForm):
    175210    """A megrok.layout.AddForm with additional methods.
    176211    """
     
    184219
    185220    #: An instance of the default theme to use for the site layout
    186     default_theme = SIRPThemeGray1()
     221    default_theme = SIRPThemeBase()
    187222    stafftemp = grok.PageTemplateFile('templates/staffsitelayout.pt')
    188223    studenttemp = grok.PageTemplateFile('templates/studentsitelayout.pt')
     
    194229    def getAppTitle(self):
    195230        return getattr(grok.getSite()['configuration'], 'name', u'Sample University')
     231
     232    def getAppAcronym(self):
     233        return getattr(grok.getSite()['configuration'], 'acronym', u'Acronym')
    196234
    197235    def isAuthenticated(self):
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/pages.py

    r7404 r7459  
    5959from waeup.sirp.authentication import get_principal_role_manager
    6060from waeup.sirp.utils.helpers import get_user_account
    61 from waeup.sirp.browser.layout import jsaction, JSAction
     61from waeup.sirp.browser.layout import jsaction, action
    6262
    6363grok.context(ISIRPObject)
     
    215215        return get_user_account(self.request)
    216216
    217     @grok.action('Send message now')
     217    @action('Send message now', style='primary')
    218218    def send(self, *args, **data):
    219219        fullname = self.request.principal.title
     
    244244                          'fullname', 'email_from', 'body')
    245245
    246     @grok.action('Send now')
     246    @action('Send now', style='primary')
    247247    def send(self, *args, **data):
    248248        sirp_utils = getUtility(ISIRPUtils)
     
    378378    title = 'Portal Users'
    379379
    380     @grok.action('Add user')
     380    @action('Add user', style='primary')
    381381    def addUser(self, **data):
    382382        name = data['name']
     
    426426        self.widgets['description'].height = 3
    427427
    428     @grok.action('Save')
     428    @action('Save', style='primary')
    429429    def save(self, **data):
    430430        form = self.request.form
     
    444444        return
    445445
    446     @grok.action('Cancel', validator=NullValidator)
     446    @action('Cancel', validator=NullValidator)
    447447    def cancel(self, **data):
    448448        self.redirect(self.url(self.context.__parent__))
     
    461461        return u'Send message to %s' % self.context.title
    462462
    463     @grok.action('Send message now')
     463    @action('Send message now', style='primary')
    464464    def send(self, *args, **data):
    465465        try:
     
    596596        return super(ConfigurationContainerManageFormPage, self).update()
    597597
    598     @grok.action('Save')
     598    @action('Save', style='primary')
    599599    def save(self, **data):
    600600        self.applyData(self.context, **data)
     
    602602        return
    603603
    604     @grok.action('Add session configuration', validator=NullValidator)
     604    @action('Add session configuration', validator=NullValidator, style='primary')
    605605    def addSubunit(self, **data):
    606606        self.redirect(self.url(self.context, '@@add'))
     
    621621        return
    622622
    623     @grok.action('Update plugins', validator=NullValidator)
     623    @action('Update plugins', validator=NullValidator)
    624624    def updatePlugins(self, **data):
    625625        grok.getSite().updatePlugins()
     
    638638    pnav = 0
    639639
    640     @grok.action('Add Session Configuration')
     640    @action('Add Session Configuration', style='primary')
    641641    def addSessionConfiguration(self, **data):
    642642        sessionconfiguration = createObject(u'waeup.SessionConfiguration')
     
    650650        return
    651651
    652     @grok.action('Cancel', validator=NullValidator)
     652    @action('Cancel', validator=NullValidator)
    653653    def cancel(self):
    654654        self.redirect(self.url(self.context, '@@index')+'#tab-2')
     
    674674        return 'Edit academic session %s configuration' % session_string
    675675
    676     @grok.action('Save')
     676    @action('Save', style='primary')
    677677    def save(self, **data):
    678678        self.applyData(self.context, **data)
     
    681681        return
    682682
    683     @grok.action('Cancel', validator=NullValidator)
     683    @action('Cancel', validator=NullValidator)
    684684    def cancel(self):
    685685        self.redirect(self.url(self.context.__parent__, '@@index')+'#tab-2')
     
    12101210        return
    12111211
    1212     @grok.action('Add faculty', validator=NullValidator)
     1212    @action('Add faculty', validator=NullValidator)
    12131213    def addFaculty(self, **data):
    12141214        self.redirect(self.url(self.context, '@@add'))
    12151215        return
    12161216
    1217     @grok.action('Cancel', validator=NullValidator)
     1217    @action('Cancel', validator=NullValidator)
    12181218    def cancel(self, **data):
    12191219        self.redirect(self.url(self.context))
     
    12321232    pnav = 1
    12331233
    1234     @grok.action('Add faculty')
     1234    @action('Add faculty', style='primary')
    12351235    def addFaculty(self, **data):
    12361236        faculty = createObject(u'waeup.Faculty')
     
    12431243        self.redirect(self.url(self.context, u'@@manage')+'#tab-1')
    12441244
    1245     @grok.action('Cancel')
     1245    @action('Cancel')
    12461246    def cancel(self, **data):
    12471247        self.redirect(self.url(self.context))
     
    13151315        return
    13161316
    1317     @grok.action('Save')
     1317    @action('Save', style='primary')
    13181318    def save(self, **data):
    13191319        self.applyData(self.context, **data)
    13201320        return
    13211321
    1322     @grok.action('Cancel', validator=NullValidator)
     1322    @action('Cancel', validator=NullValidator)
    13231323    def cancel(self, **data):
    13241324        self.redirect(self.url(self.context))
    13251325        return
    13261326
    1327     @grok.action('Add department', validator=NullValidator)
     1327    @action('Add department', validator=NullValidator)
    13281328    def addSubunit(self, **data):
    13291329        self.redirect(self.url(self.context, '@@add'))
    13301330        return
    13311331
    1332     @grok.action('Add local role', validator=NullValidator)
     1332    @action('Add local role', validator=NullValidator)
    13331333    def addLocalRole(self, **data):
    13341334        return add_local_role(self, '3', **data)
    13351335
    1336     @grok.action('Remove selected local roles')
     1336    @action('Remove selected local roles')
    13371337    def delLocalRoles(self, **data):
    13381338        return del_local_roles(self,3,**data)
     
    13521352        return self.context.longtitle()
    13531353
    1354     @grok.action('Add department')
     1354    @action('Add department', style='primary')
    13551355    def addDepartment(self, **data):
    13561356        department = createObject(u'waeup.Department')
     
    13641364        self.redirect(self.url(self.context, u'@@manage')+'#tab-2')
    13651365
    1366     @grok.action('Cancel')
     1366    @action('Cancel')
    13671367    def cancel(self, **data):
    13681368        self.redirect(self.url(self.context))
     
    15031503        return get_users_with_local_roles(self.context)
    15041504
    1505     @grok.action('Save')
     1505    @action('Save', style='primary')
    15061506    def save(self, **data):
    15071507        self.applyData(self.context, **data)
     
    15201520        return
    15211521
    1522     @grok.action('Add course', validator=NullValidator)
     1522    @action('Add course', validator=NullValidator)
    15231523    def addCourse(self, **data):
    15241524        self.redirect(self.url(self.context, 'addcourse'))
    15251525        return
    15261526
    1527     @grok.action('Add certificate', validator=NullValidator)
     1527    @action('Add certificate', validator=NullValidator)
    15281528    def addCertificate(self, **data):
    15291529        self.redirect(self.url(self.context, 'addcertificate'))
    15301530        return
    15311531
    1532     @grok.action('Cancel', validator=NullValidator)
     1532    @action('Cancel', validator=NullValidator)
    15331533    def cancel(self, **data):
    15341534        self.redirect(self.url(self.context))
    15351535        return
    15361536
    1537     @grok.action('Add local role', validator=NullValidator)
     1537    @action('Add local role', validator=NullValidator)
    15381538    def addLocalRole(self, **data):
    15391539        return add_local_role(self, 4, **data)
    15401540
    1541     @grok.action('Remove selected local roles')
     1541    @action('Remove selected local roles')
    15421542    def delLocalRoles(self, **data):
    15431543        return del_local_roles(self,4,**data)
     
    15571557        return self.context.longtitle()
    15581558
    1559     @grok.action('Add course')
     1559    @action('Add course')
    15601560    def addCourse(self, **data):
    15611561        course = createObject(u'waeup.Course')
     
    15791579        self.redirect(self.url(self.context, u'@@manage')+'#tab-2')
    15801580
    1581     @grok.action('Cancel', validator=NullValidator)
     1581    @action('Cancel', validator=NullValidator)
    15821582    def cancel(self, **data):
    15831583        self.redirect(self.url(self.context))
     
    15981598        return self.context.longtitle()
    15991599
    1600     @grok.action('Add certificate')
     1600    @action('Add certificate')
    16011601    def addCertificate(self, **data):
    16021602        certificate = createObject(u'waeup.Certificate')
     
    16211621        return
    16221622
    1623     @grok.action('Cancel', validator=NullValidator)
     1623    @action('Cancel', validator=NullValidator)
    16241624    def cancel(self): #, **data):
    16251625        self.redirect(self.url(self.context))
     
    16571657        return 'Course: %s (%s)' % (self.context.title, self.context.code)
    16581658
    1659     @grok.action('Save')
     1659    @action('Save', style='primary')
    16601660    def save(self, **data):
    16611661        self.applyData(self.context, **data)
    16621662        return
    16631663
    1664     @grok.action('Save and return')
     1664    @action('Save and return')
    16651665    def saveAndReturn(self, **data):
    16661666        self.applyData(self.context, **data)
     
    16681668        return
    16691669
    1670     @grok.action('Cancel', validator=NullValidator)
     1670    @action('Cancel', validator=NullValidator)
    16711671    def cancel(self, **data):
    16721672        self.redirect(self.url(self.context))
     
    17311731    form_fields = grok.AutoFields(ICertificate)
    17321732
    1733     @grok.action('Save')
     1733    @action('Save', style='primary')
    17341734    def save(self, **data):
    17351735        self.applyData(self.context, **data)
     
    17411741        return
    17421742
    1743     @grok.action('Add course referrer', validator=NullValidator)
     1743    @action('Add course referrer', validator=NullValidator)
    17441744    def addCertificateCourse(self, **data):
    17451745        self.redirect(self.url(self.context, 'addcertificatecourse'))
    17461746        return
    17471747
    1748     @grok.action('Cancel', validator=NullValidator)
     1748    @action('Cancel', validator=NullValidator)
    17491749    def cancel(self, **data):
    17501750        self.redirect(self.url(self.context))
     
    17651765        return get_users_with_local_roles(self.context)
    17661766
    1767     @grok.action('Add local role', validator=NullValidator)
     1767    @action('Add local role', validator=NullValidator)
    17681768    def addLocalRole(self, **data):
    17691769        return add_local_role(self, 3, **data)
    17701770
    1771     @grok.action('Remove selected local roles')
     1771    @action('Remove selected local roles')
    17721772    def delLocalRoles(self, **data):
    17731773        return del_local_roles(self,3,**data)
     
    17881788        return "Certificate: %s (%s)" % (self.context.title, self.context.code)
    17891789
    1790     @grok.action('Add course referrer')
     1790    @action('Add course referrer')
    17911791    def addCertcourse(self, **data):
    17921792        try:
     
    17981798        self.redirect(self.url(self.context, u'@@manage')+'#tab-2')
    17991799
    1800     @grok.action('Cancel', validator=NullValidator)
     1800    @action('Cancel', validator=NullValidator)
    18011801    def cancel(self, **data):
    18021802        self.redirect(self.url(self.context))
     
    18381838        return 'Course Referrer: %s' % (self.context.__name__)
    18391839
    1840     @grok.action('Save and return')
     1840    @action('Save and return')
    18411841    def saveAndReturn(self, **data):
    18421842        parent = self.context.__parent__
     
    18531853        return
    18541854
    1855     @grok.action('Cancel', validator=NullValidator)
     1855    @action('Cancel', validator=NullValidator)
    18561856    def cancel(self, **data):
    18571857        self.redirect(self.url(self.context))
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/resources.py

    r7328 r7459  
    140140toggleall = ResourceInclusion(waeup_sirp, 'toggleall.js')
    141141
    142 #: A resource that binds jQueryUI tabs to <div> tags with class
     142#: A resource that binds Bootstrap tabs to <div> tags with class
    143143#: ``tabs``.
    144144#:
    145 #: If you want jQuery tabs for some <div>s in your page then you
     145#: If you want Bootstrap tabs in your page then you
    146146#: have to perform two steps:
    147147#:
     
    159159#:   into the HTML page generated.
    160160#:
    161 #: * In your HTML code add some ``<div>`` tag with ``class`` set to
    162 #:   ``tabs``, like this:
     161#: * In your HTML code add some tags with like this:
    163162#:
    164163#:    .. code-block:: html
    165 #:
    166 #:      <div id="tabs">
    167 #:        <ul>
    168 #:          <li><a href="#tab-1"><span>Tab 1 Heading</span></a></li>
    169 #:          <li><a href="#tab-2"><span>Tab 2 Heading</span></a></li>
    170 #:        </ul>
    171 #:        <div id="tab-1">
    172 #:          Content of tab 1
    173 #:        </div>
    174 #:        <div id="tab-2">
    175 #:          Content of tab 2
    176 #:        </div>
    177 #:      </div>
     164
     165#:     <ul class="tabs" data-tabs="tabs" >
     166#:       <li class="active"><a href="#tab-1">Tab 1 Heading</a></li>
     167#:       <li><a href="#tab-2">Tab 2 Heading</a></li>
     168#:       <li><a href="#tab-3">Tab 3 Heading</a></li>
     169#:     </ul>
     170
     171#:     <div class="tab-content">
     172#:       <div id="tab-1" class="active">...</div>
     173#:       <div id="tab-2">...</div>
     174#:       <div id="tab-3">...</div>
     175#:     </div>
    178176#:
    179177#: When the HTML is rendered, clicking into one of the tabs will make
    180178#: other <div>s disappear. See
    181179#:
    182 #:   http://jqueryui.com/demos/tabs/
     180#:   http://twitter.github.com/bootstrap/javascript.html#tabs
    183181#:
    184182#: for details.
    185183#:
    186 tabs = ResourceInclusion(waeup_sirp, 'tabs.js',
    187                          depends=[jquery, jqueryui])
     184tabs = ResourceInclusion(waeup_sirp, 'bootstrap-tabs-1.4.0.js',
     185                          depends=[jquery])
     186
    188187
    189188#: Resource that makes datatables for jQuery UI available.
     
    249248                              depends=[datatables, datatables_css])
    250249
    251 #: Register basic YUI based CSS as a resource.
    252 reset_fonts_grids = ResourceInclusion(
    253     waeup_sirp, 'yuirfg.css')
    254 
    255 yuiapp_css = ResourceInclusion(
    256     waeup_sirp, 'yuiapp.css',
    257     depends=[reset_fonts_grids])
    258 
    259 #: Register basic SIRP base CSS (which is based on ``yuiapp.css`` as a
    260 #: resource.
     250#: Register Twitter's Bootsrap css including dropdown js as a resource.
     251bootstrap_min = ResourceInclusion(
     252    waeup_sirp, 'bootstrap.min-1.4.0.css')
     253
     254dropdown = ResourceInclusion(
     255    waeup_sirp, 'bootstrap-dropdown-1.4.0.js',
     256    depends=[jquery])
     257
     258#: Register basic SIRP CSS (which is based on ``bootstrap.min-1.4.0.css``
     259#: and ``base`` as a resource.
    261260waeup_base_css = ResourceInclusion(
    262261    waeup_sirp, 'waeup-base.css',
    263     depends=[yuiapp_css, base])
    264 
    265 #: The red SIRP theme registered as a resource.
    266 waeuptheme_red1 = ResourceInclusion(
    267     waeup_sirp, 'waeuptheme-red1.css',
    268     depends=[waeup_base_css])
    269 
    270 #: The gray SIRP theme registered as a resource.
    271 waeuptheme_gray1 = ResourceInclusion(
    272     waeup_sirp, 'waeuptheme-gray1.css',
    273     depends=[waeup_base_css])
     262    depends=[dropdown,bootstrap_min, base])
    274263
    275264#: A basic theme based on jQuery only (crappy yet).
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/static/mobile.css

    r6690 r7459  
    1 #primary-navigation li a {
    2   font-size:100%;
    3   padding-bottom: 0.5em;
    4   padding-left: 0.5em;
    5   padding-right: 0.5em;
    6   padding-top: 0.5em;
     1.container {
     2  width: 480px;
    73}
    84
    9 #user-navigation li a {
    10   font-size: 86%;
    11   padding-bottom: 0.5em;
    12   padding-left: 0.5em;
    13   padding-right: 0.5em;
    14   padding-top: 0.8em;
     5body {
     6  padding-top: 60px;
    157}
    168
    17 #hd {
    18   padding-left:0.3em;
    19   padding-right:0.3em;
     9select {
     10  width: 60px;
    2011}
    2112
    22 #bd {
    23   padding:0.6em;
     13.dataTables_length {
     14    float: left;
     15    width: 40%;
    2416}
     17
     18.dataTables_filter {
     19    float: right;
     20    text-align: right;
     21    width: 60%;
     22}
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/static/waeup-base.css

    r7321 r7459  
    11/* This is the base stylesheet for SIRP. It defines base styles
    2 additionally or modifying yuiapp.css styles and yuirfg.css. For themes, please create
     2additionally or modifying Bootstrap styles. For themes, please create
    33a stylesheet overriding values set here in a file named
    44'waeuptheme-<SOME-NAME>.css' and include a utility and a resource in theming.py
    55and resources.py respectively. */
    66
    7 #hd { background-color:#003366; }
    8 .block .hd { background-color:#003366; color:#fff; border-bottom:10px solid #262626; }
    9 .block .bd h1 { font-size:153.9%; color:green; margin-bottom:0.5em;}
    10 .block .bd h2 { font-size:153.9%; color:#003366; margin-bottom:0.5em;}
    11 .block .bd h3 { font-size:130%; color:#003366; margin-bottom:0.5em;}
    12 .spaces .hd { background-color:transparent; }
    13 .spaces .hd ul li { background-color:#003366; }
    14 a { color:#003366; }
    15 .tabs .hd ul li a:hover { background-color:#8d0399; }
     7/* bootstrap.min customizations */
    168
    17 /***** Henrik Stuff *****/
    18 
    19 .breadcrumbs {
    20   background-color: #fff;
    21   padding: 3px;
    22   margin-bottom: 1.3em
     9body {
     10  padding-top: 56px;
     11  background-color: #EEEEEE;
    2312}
    2413
    25 a, table td a {
    26   text-decoration: none;
     14.container-fluid>.sidebar {
     15  width: 165px;
    2716}
    2817
    29 a:hover {
    30   text-decoration: underline;
     18.container-fluid > .content {
     19  margin-left: 180px;
     20}
     21
     22.well {
     23  border: 0px;
     24  background-color: #FFFFFF;
     25  padding-bottom: 12px;
     26  padding-left: 12px;
     27  padding-right: 12px;
     28  padding-top: 12px;
     29}
     30
     31.content {
     32  background-color: #FFFFFF;
     33  margin-left: -20px;
     34  margin-right: -20px;
     35  padding-bottom: 16px;
     36  padding-left: 20px;
     37  padding-right: 20px;
     38  padding-top: 16px;
     39  border-top-left-radius: 3px;
     40  border-top-right-radius: 3px;
     41}
     42
     43.container {
     44  width: 700px;
     45}
     46
     47h2 {
     48  margin-bottom: 12px;
     49}
     50
     51.breadcrumb {
     52  margin-left: 20px;
     53  margin-right: 20px;
     54  margin-bottom: 14px;
     55  padding-left: 20px;
     56  padding-right: 20px;
     57  width: 940px;
     58  background-color: #FFFFFF;
     59  background-image: None;
     60  border: 0px;
     61  border-top-left-radius: 3px;
     62  border-top-right-radius: 3px;
     63  border-bottom-left-radius: 3px;
     64  border-bottom-right-radius: 3px;
     65}
     66
     67
     68select {
     69  width: 180px;
     70}
     71
     72 /* IE doesn't like the footer tag*/
     73.footer {
     74  padding-top: 17px;
     75  border-top: 1px solid #eee;
     76  margin-top: 50px;
     77}
     78
     79 /* dataTables stuff */
     80
     81.dataTables_wrapper {
     82  min-height: 50px;
     83  margin-bottom: 50px;
     84}
     85
     86.dataTables_filter {
     87  margin-bottom: 20px;
     88}
     89
     90 /* SIRP stuff */
     91
     92.actionbar {
     93  margin-bottom: 16px;
     94}
     95
     96.error {
     97  color: red;
     98}
     99
     100.form-table {
     101  width: 100%;
     102}
     103
     104.form-table td {
     105  padding: 5px 5px 4px;
     106  border-top: none;
     107}
     108
     109.fieldname {
     110  width: 25%;
    31111}
    32112
     
    38118  padding: 4px;
    39119  margin-bottom: 8px;
     120  line-height: 16px;
    40121}
    41122
    42 .form-status {
    43     border:1px solid #fbb;
    44     background-color:#fdd;
    45     text-align:center;
    46     padding: 2px;
     123.student-info-bar{
     124  padding: 7px 14px;
     125  margin-left: -20px;
     126  margin-right: -20px;
     127  margin-bottom: 14px;
     128  padding-left: 20px;
     129  padding-right: 20px;
     130  width: 700px;
     131  background-color: #FFFFFF;
     132  background-image: None;
     133  border: 0px;
     134  border-top-left-radius: 3px;
     135  border-top-right-radius: 3px;
     136  border-bottom-left-radius: 3px;
     137  border-bottom-right-radius: 3px;
    47138}
    48139
    49 .hint {
    50     color: #CD0A0A;
    51     padding-left: 4px;
     140.student-info-bar li {
     141  display: inline;
     142  text-shadow: 0 1px 0 #ffffff;
    52143}
    53 
    54 
    55 .block {
    56     margin-bottom: 0.5em;
     144.student-info-bar .divider {
     145  padding: 0 5px;
     146  color: #bfbfbf;
    57147}
    58 
    59 .block .bd {
    60     padding-bottom: 1em;
     148.student-info-bar .active a {
     149  color: #404040;
    61150}
    62 
    63 .actionButtons {
    64     padding-top: 1em;
    65 }
    66 
    67151.wfstatus {
    68152  float: right;
     153  line-height: 18px;
    69154}
    70 
    71 .studentmenu {
    72   text-align: left;
    73   line-height: 2;
    74 }
    75 
    76 .error {
    77   border:0px
    78 }
    79 
    80 /* Define different styles for headlines in rendered restructured text */
    81 
    82 #rest h1 {
    83   font-size:130%;
    84 }
    85 
    86 #rest h2 {
    87   font-size:100%;
    88 }
    89 
    90 #rest h3 {
    91   font-size:100%;
    92 }
    93 
    94 
    95 #rest h4 {
    96   font-size:100%;
    97 }
    98 
    99 /* jquery-ui customizations */
    100 
    101 .ui-corner-all, .ui-corner-top {
    102   -moz-border-radius-bottomleft: 0px;
    103   -moz-border-radius-bottomright: 0px;
    104   -moz-border-radius-topleft: 7px;
    105   -moz-border-radius-topright: 7px;
    106 }
    107 
    108 .ui-widget {
    109   font-family: Verdana,Arial,sans-serif;
    110   font-size: 100%;
    111 }
    112 
    113 .ui-tabs .ui-tabs-nav li a:hover {
    114   text-decoration: underline;
    115 }
    116 
    117 .dataTables_wrapper {
    118   min-height: 100px;
    119 }
    120 
    121 .dataTables_info {
    122   padding-top: 15px;
    123   float: None;
    124 }
    125 
    126 .dataTables_paginate {
    127   padding-top: 15px;
    128 }
    129 
    130 
    131 /***** Uli Stuff *****/
    132 
    133 /* Make YUI button icons appear vertically centered... */
    134 .yui-skin-sam .yui-button a img {
    135   vertical-align: middle;
    136   margin-right: 3px;
    137   margin-top: -1px;
    138   margin-left: -2px;
    139 }
    140 
    141 /* Fix logo image height: as image is taller than h1 text, header area
    142    explodes otherwise */
    143 #logo img {
    144   margin-top: -45px;
    145   position: relative;
    146   top: 12px;
    147 }
    148 
    149 .actionbar {
    150   margin-top: -18px;
    151   margin-bottom: 18px;
    152 }
    153 
    154 /* Form labels */
    155 form label, form label span {
    156   color: #333;
    157   font-weight: bold;
    158   font-size: 100%;
    159 }
    160 
    161 /* Fixes to let tables appear correctly... */
    162 table, tr, th, td {font-family: arial,sans-serif;}
    163 
    164 /* Odd and even table rows */
    165 tr.even,
    166 .yui-skin-sam tr.yui-dt-even {
    167   background-color: #fff;
    168 }
    169 tr.odd,
    170 .yui-skin-sam tr.yui-dt-odd {
    171   background-color: #eee;
    172 }
    173 
    174 /* unselected paginator page numbers */
    175 .yui-skin-sam .yui-pg-pages a.yui-pg-page {
    176   background-color: #fff;
    177   color: #000;
    178   text-decoration: none;
    179   border: 1px solid #000;
    180   padding-left: 5px;
    181 }
    182 
    183 /* selected paginator page, hover for unselected pages */
    184 .yui-skin-sam .yui-pg-pages a.yui-pg-page:hover,
    185 .yui-skin-sam span.yui-pg-page {
    186   background-color: #000;
    187   color: #fff;
    188 }
    189 
    190 /* paginator prev, next, etc. links */
    191 .yui-skin-sam .yui-dt .yui-dt-paginator a.yui-pg-first,
    192 .yui-skin-sam .yui-dt .yui-dt-paginator a.yui-pg-previous,
    193 .yui-skin-sam .yui-dt .yui-dt-paginator a.yui-pg-last,
    194 .yui-skin-sam .yui-dt .yui-dt-paginator a.yui-pg-next {
    195   color: #000;
    196   text-decoration: none;
    197   background-color: #fff;
    198 }
    199 
    200 /* Header row */
    201 th .yui-dt-liner {
    202   color: #fff;
    203   background: #000 url();
    204 }
    205 
    206 /* Header cells text, when not selected */
    207 .yui-skin-sam .yui-dt th, .yui-skin-sam .yui-dt th a {
    208   font-weight: bold;
    209   color: #fff;
    210 }
    211 
    212 /* Sortable header cells, when selected */
    213 .yui-skin-sam th.yui-dt-desc .yui-dt-liner .yui-dt-sortable,
    214 .yui-skin-sam th.yui-dt-asc .yui-dt-liner .yui-dt-sortable {
    215   color: #000;
    216 }
    217 
    218 /* Action buttons */
    219 
    220 .yui-button {
    221         display: -moz-inline-box;
    222         display: inline-block;
    223         vertical-align: text-bottom;
    224 }
    225 .yui-button .first-child {
    226         display: block;
    227         *display: inline-block;
    228 }
    229 .yui-button button, .yui-button a {
    230         display: block;
    231         *display: inline-block;
    232         border: none;
    233         margin: 0;
    234 }
    235 .yui-button button {
    236         background-color: transparent;
    237         *overflow: visible;
    238         cursor: pointer;
    239 }
    240 .yui-button a {
    241         text-decoration: none;
    242 }
    243 .yui-skin-sam .yui-button {
    244         border-width: 1px 0;
    245         border-style: solid;
    246         border-color: #808080;
    247         background: url(sprite.png) repeat-x 0 0;
    248         margin: auto .25em;
    249 }
    250 .yui-skin-sam .yui-button .first-child {
    251         border-width: 0 1px;
    252         border-style: solid;
    253         border-color: #808080;
    254         margin: 0 -1px;
    255         _margin: 0;
    256 }
    257 .yui-skin-sam .yui-button button, .yui-skin-sam .yui-button a {
    258         padding: 0 10px;
    259         font-size: 93%;
    260         line-height: 2;
    261         *line-height: 1.7;
    262         min-height: 2em;
    263         *min-height: auto;
    264         color: #000;
    265 }
    266 .yui-skin-sam .yui-button a {
    267         *line-height: 1.875;
    268         *padding-bottom: 1px;
    269 }
    270 
    271 
    272 /* The follwing is stolen from jquery... */
    273 
    274 /* Interaction Cues
    275 ----------------------------------*/
    276 .ui-state-disabled { cursor: default !important; }
    277 
    278 
    279 /* Icons
    280 ----------------------------------*/
    281 
    282 /* states and images */
    283 .ui-icon { display: block;
    284            text-indent: -99999px; overflow: hidden;
    285            background-repeat: no-repeat; }
    286 
    287 /* states and images */
    288 .ui-icon { width: 16px; height: 16px; background-image: url(ui-icons_222222_256x240.png); }
    289 .ui-widget-content .ui-icon {background-image: url(ui-icons_222222_256x240.png); }
    290 .ui-widget-header .ui-icon {background-image: url(ui-icons_ffffff_256x240.png); }
    291 .ui-state-default .ui-icon { background-image: url(ui-icons_ef8c08_256x240.png); }
    292 .ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(ui-icons_ef8c08_256x240.png); }
    293 .ui-state-active .ui-icon {background-image: url(ui-icons_ef8c08_256x240.png); }
    294 .ui-state-highlight .ui-icon {background-image: url(ui-icons_228ef1_256x240.png); }
    295 .ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(ui-icons_e73434_256x240.png); }
    296 
    297 /* positioning */
    298 .ui-icon-carat-1-n { background-position: 0 0; }
    299 .ui-icon-carat-1-ne { background-position: -16px 0; }
    300 .ui-icon-carat-1-e { background-position: -32px 0; }
    301 .ui-icon-carat-1-se { background-position: -48px 0; }
    302 .ui-icon-carat-1-s { background-position: -64px 0; }
    303 .ui-icon-carat-1-sw { background-position: -80px 0; }
    304 .ui-icon-carat-1-w { background-position: -96px 0; }
    305 .ui-icon-carat-1-nw { background-position: -112px 0; }
    306 .ui-icon-carat-2-n-s { background-position: -128px 0; }
    307 .ui-icon-carat-2-e-w { background-position: -144px 0; }
    308 .ui-icon-triangle-1-n { background-position: 0 -16px; }
    309 .ui-icon-triangle-1-ne { background-position: -16px -16px; }
    310 .ui-icon-triangle-1-e { background-position: -32px -16px; }
    311 .ui-icon-triangle-1-se { background-position: -48px -16px; }
    312 .ui-icon-triangle-1-s { background-position: -64px -16px; }
    313 .ui-icon-triangle-1-sw { background-position: -80px -16px; }
    314 .ui-icon-triangle-1-w { background-position: -96px -16px; }
    315 .ui-icon-triangle-1-nw { background-position: -112px -16px; }
    316 .ui-icon-triangle-2-n-s { background-position: -128px -16px; }
    317 .ui-icon-triangle-2-e-w { background-position: -144px -16px; }
    318 .ui-icon-arrow-1-n { background-position: 0 -32px; }
    319 .ui-icon-arrow-1-ne { background-position: -16px -32px; }
    320 .ui-icon-arrow-1-e { background-position: -32px -32px; }
    321 .ui-icon-arrow-1-se { background-position: -48px -32px; }
    322 .ui-icon-arrow-1-s { background-position: -64px -32px; }
    323 .ui-icon-arrow-1-sw { background-position: -80px -32px; }
    324 .ui-icon-arrow-1-w { background-position: -96px -32px; }
    325 .ui-icon-arrow-1-nw { background-position: -112px -32px; }
    326 .ui-icon-arrow-2-n-s { background-position: -128px -32px; }
    327 .ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
    328 .ui-icon-arrow-2-e-w { background-position: -160px -32px; }
    329 .ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
    330 .ui-icon-arrowstop-1-n { background-position: -192px -32px; }
    331 .ui-icon-arrowstop-1-e { background-position: -208px -32px; }
    332 .ui-icon-arrowstop-1-s { background-position: -224px -32px; }
    333 .ui-icon-arrowstop-1-w { background-position: -240px -32px; }
    334 .ui-icon-arrowthick-1-n { background-position: 0 -48px; }
    335 .ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
    336 .ui-icon-arrowthick-1-e { background-position: -32px -48px; }
    337 .ui-icon-arrowthick-1-se { background-position: -48px -48px; }
    338 .ui-icon-arrowthick-1-s { background-position: -64px -48px; }
    339 .ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
    340 .ui-icon-arrowthick-1-w { background-position: -96px -48px; }
    341 .ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
    342 .ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
    343 .ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
    344 .ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
    345 .ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
    346 .ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
    347 .ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
    348 .ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
    349 .ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
    350 .ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
    351 .ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
    352 .ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
    353 .ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
    354 .ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
    355 .ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
    356 .ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
    357 .ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
    358 .ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
    359 .ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
    360 .ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
    361 .ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
    362 .ui-icon-arrow-4 { background-position: 0 -80px; }
    363 .ui-icon-arrow-4-diag { background-position: -16px -80px; }
    364 .ui-icon-extlink { background-position: -32px -80px; }
    365 .ui-icon-newwin { background-position: -48px -80px; }
    366 .ui-icon-refresh { background-position: -64px -80px; }
    367 .ui-icon-shuffle { background-position: -80px -80px; }
    368 .ui-icon-transfer-e-w { background-position: -96px -80px; }
    369 .ui-icon-transferthick-e-w { background-position: -112px -80px; }
    370 .ui-icon-folder-collapsed { background-position: 0 -96px; }
    371 .ui-icon-folder-open { background-position: -16px -96px; }
    372 .ui-icon-document { background-position: -32px -96px; }
    373 .ui-icon-document-b { background-position: -48px -96px; }
    374 .ui-icon-note { background-position: -64px -96px; }
    375 .ui-icon-mail-closed { background-position: -80px -96px; }
    376 .ui-icon-mail-open { background-position: -96px -96px; }
    377 .ui-icon-suitcase { background-position: -112px -96px; }
    378 .ui-icon-comment { background-position: -128px -96px; }
    379 .ui-icon-person { background-position: -144px -96px; }
    380 .ui-icon-print { background-position: -160px -96px; }
    381 .ui-icon-trash { background-position: -176px -96px; }
    382 .ui-icon-locked { background-position: -192px -96px; }
    383 .ui-icon-unlocked { background-position: -208px -96px; }
    384 .ui-icon-bookmark { background-position: -224px -96px; }
    385 .ui-icon-tag { background-position: -240px -96px; }
    386 .ui-icon-home { background-position: 0 -112px; }
    387 .ui-icon-flag { background-position: -16px -112px; }
    388 .ui-icon-calendar { background-position: -32px -112px; }
    389 .ui-icon-cart { background-position: -48px -112px; }
    390 .ui-icon-pencil { background-position: -64px -112px; }
    391 .ui-icon-clock { background-position: -80px -112px; }
    392 .ui-icon-disk { background-position: -96px -112px; }
    393 .ui-icon-calculator { background-position: -112px -112px; }
    394 .ui-icon-zoomin { background-position: -128px -112px; }
    395 .ui-icon-zoomout { background-position: -144px -112px; }
    396 .ui-icon-search { background-position: -160px -112px; }
    397 .ui-icon-wrench { background-position: -176px -112px; }
    398 .ui-icon-gear { background-position: -192px -112px; }
    399 .ui-icon-heart { background-position: -208px -112px; }
    400 .ui-icon-star { background-position: -224px -112px; }
    401 .ui-icon-link { background-position: -240px -112px; }
    402 .ui-icon-cancel { background-position: 0 -128px; }
    403 .ui-icon-plus { background-position: -16px -128px; }
    404 .ui-icon-plusthick { background-position: -32px -128px; }
    405 .ui-icon-minus { background-position: -48px -128px; }
    406 .ui-icon-minusthick { background-position: -64px -128px; }
    407 .ui-icon-close { background-position: -80px -128px; }
    408 .ui-icon-closethick { background-position: -96px -128px; }
    409 .ui-icon-key { background-position: -112px -128px; }
    410 .ui-icon-lightbulb { background-position: -128px -128px; }
    411 .ui-icon-scissors { background-position: -144px -128px; }
    412 .ui-icon-clipboard { background-position: -160px -128px; }
    413 .ui-icon-copy { background-position: -176px -128px; }
    414 .ui-icon-contact { background-position: -192px -128px; }
    415 .ui-icon-image { background-position: -208px -128px; }
    416 .ui-icon-video { background-position: -224px -128px; }
    417 .ui-icon-script { background-position: -240px -128px; }
    418 .ui-icon-alert { background-position: 0 -144px; }
    419 .ui-icon-info { background-position: -16px -144px; }
    420 .ui-icon-notice { background-position: -32px -144px; }
    421 .ui-icon-help { background-position: -48px -144px; }
    422 .ui-icon-check { background-position: -64px -144px; }
    423 .ui-icon-bullet { background-position: -80px -144px; }
    424 .ui-icon-radio-off { background-position: -96px -144px; }
    425 .ui-icon-radio-on { background-position: -112px -144px; }
    426 .ui-icon-pin-w { background-position: -128px -144px; }
    427 .ui-icon-pin-s { background-position: -144px -144px; }
    428 .ui-icon-play { background-position: 0 -160px; }
    429 .ui-icon-pause { background-position: -16px -160px; }
    430 .ui-icon-seek-next { background-position: -32px -160px; }
    431 .ui-icon-seek-prev { background-position: -48px -160px; }
    432 .ui-icon-seek-end { background-position: -64px -160px; }
    433 .ui-icon-seek-first { background-position: -80px -160px; }
    434 .ui-icon-stop { background-position: -96px -160px; }
    435 .ui-icon-eject { background-position: -112px -160px; }
    436 .ui-icon-volume-off { background-position: -128px -160px; }
    437 .ui-icon-volume-on { background-position: -144px -160px; }
    438 .ui-icon-power { background-position: 0 -176px; }
    439 .ui-icon-signal-diag { background-position: -16px -176px; }
    440 .ui-icon-signal { background-position: -32px -176px; }
    441 .ui-icon-battery-0 { background-position: -48px -176px; }
    442 .ui-icon-battery-1 { background-position: -64px -176px; }
    443 .ui-icon-battery-2 { background-position: -80px -176px; }
    444 .ui-icon-battery-3 { background-position: -96px -176px; }
    445 .ui-icon-circle-plus { background-position: 0 -192px; }
    446 .ui-icon-circle-minus { background-position: -16px -192px; }
    447 .ui-icon-circle-close { background-position: -32px -192px; }
    448 .ui-icon-circle-triangle-e { background-position: -48px -192px; }
    449 .ui-icon-circle-triangle-s { background-position: -64px -192px; }
    450 .ui-icon-circle-triangle-w { background-position: -80px -192px; }
    451 .ui-icon-circle-triangle-n { background-position: -96px -192px; }
    452 .ui-icon-circle-arrow-e { background-position: -112px -192px; }
    453 .ui-icon-circle-arrow-s { background-position: -128px -192px; }
    454 .ui-icon-circle-arrow-w { background-position: -144px -192px; }
    455 .ui-icon-circle-arrow-n { background-position: -160px -192px; }
    456 .ui-icon-circle-zoomin { background-position: -176px -192px; }
    457 .ui-icon-circle-zoomout { background-position: -192px -192px; }
    458 .ui-icon-circle-check { background-position: -208px -192px; }
    459 .ui-icon-circlesmall-plus { background-position: 0 -208px; }
    460 .ui-icon-circlesmall-minus { background-position: -16px -208px; }
    461 .ui-icon-circlesmall-close { background-position: -32px -208px; }
    462 .ui-icon-squaresmall-plus { background-position: -48px -208px; }
    463 .ui-icon-squaresmall-minus { background-position: -64px -208px; }
    464 .ui-icon-squaresmall-close { background-position: -80px -208px; }
    465 .ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
    466 .ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
    467 .ui-icon-grip-solid-vertical { background-position: -32px -224px; }
    468 .ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
    469 .ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
    470 .ui-icon-grip-diagonal-se { background-position: -80px -224px; }
    471 
    472 span.ui-icon {
    473                position: relative;
    474                float: left;
    475                margin-right: 4px;
    476                margin-bottom: 0pt;
    477                margin-left: -0pt;
    478                left: 0.2em;
    479 }
    480 a span.ui-icon {
    481                  margin-top: 4px;
    482                  }
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/actionbutton.pt

    r6717 r7459  
    1 <span class="yui-button" tal:condition="viewlet/target_url">
    2   <span class="first-child">
    3     <a href=""
    4        tal:attributes="href viewlet/target_url">
    5       <img src="" alt="edit"
    6            tal:attributes="src viewlet/icon_url;
    7                            alt viewlet/alt"/>
    8     <span tal:content="viewlet/text">TEXT</span></a>
    9   </span>
    10 </span>
     1<a class="btn actionbar" tal:condition="viewlet/target_url"
     2   tal:attributes="href viewlet/target_url">
     3  <img src="" alt="edit"
     4   tal:attributes="src viewlet/icon_url;
     5           alt viewlet/alt"/>
     6  <span tal:replace="viewlet/text">TEXT</span>
     7</a>
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/breadcrumbs.pt

    r5389 r7459  
    1 <div class="breadcrumbs">
    2   <span tal:repeat="item viewlet/getEntries">
    3     <a href="#"
    4        tal:attributes="href item/url">
    5       <span tal:content="item/title">
    6         Entry
    7       </span>
     1<span tal:repeat="item viewlet/getEntries">
     2  <li>
     3    <a href="#" tal:attributes="href item/url">
     4      <span tal:content="item/title">Entry</span>
    85    </a>
    9     <span tal:condition="not: repeat/item/end">
    10       >
    11     </span>
    12   </span>
    13 </div>
     6    <span tal:condition="not: repeat/item/end" class="divider">/</span>
     7  </li>
     8</span>
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/certificatecoursepage.pt

    r6008 r7459  
    11<h2 tal:content="context/longtitle">TITLE</h2>
    22
    3 <table class="zebra">
     3<table class="form-table">
    44  <thead>
    55  </thead>
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/certificatemanagepage.pt

    r7335 r7459  
    33tal:content="view/label">Label</h2>
    44
    5 <div class="form-status"
     5<div class="alert-message error"
    66    tal:define="status view/status"
    77    tal:condition="status">
     
    1313
    1414<form action="." tal:attributes="action request/URL" method="POST"
    15       class="edit-form" enctype="multipart/form-data">
     15      enctype="multipart/form-data">
    1616
    17 <div id="tabs">
    18   <ul>
    19     <li><a href="#tab-1"><span>Settings</span></a></li>
     17  <ul class="tabs" data-tabs="tabs">
     18    <li class="active"><a href="#tab-1"><span>Settings</span></a></li>
    2019    <li><a href="#tab-2"><span>Course Referrers</span></a></li>
    2120    <li><a href="#tab-3"><span>Local Roles</span></a></li>
    2221  </ul>
    2322   
    24   <div id="tab-1">
    25         <table class="zebra">
     23  <div class="tab-content">
     24    <div id="tab-1" class="active">
     25          <table class="form-table">
     26          <tbody>
     27          <tal:block repeat="widget view/widgets">
     28            <tr>
     29              <td class="fieldname">
     30                <span tal:condition="widget/required">*</span>
     31                <span i18n:translate="" tal:content="widget/label">label</span>:
     32              </td>
     33              <td>
     34                <span tal:content="structure widget">
     35                  <input type="text" />
     36                </span>
     37                <tal:error tal:condition="widget/error">
     38                  <span tal:replace="structure widget/error">error</span>
     39                </tal:error>
     40                <tal:hint tal:condition="widget/hint">
     41                  <span tal:content="structure widget/hint">hint</span>
     42                </tal:hint>
     43              </td>
     44            </tr>
     45          </tal:block>
     46          </tbody>
     47          </table>
     48          <div tal:condition="view/availableActions">
     49            <span tal:repeat="action view/actions"
     50                  tal:omit-tag="">
     51              <input tal:condition="python:action.label in view.taboneactions"
     52                     tal:replace="structure action/render"/>
     53            </span>
     54          </div>
     55    </div>
     56    <div id="tab-2">
     57      <h3>Course Referrers</h3>
     58      <table class="display dataTableManage">
     59        <thead>
     60          <tr>
     61            <th>&nbsp;</th><th>Level</th><th>Semester</th><th>Referrer</th><th>Course</th><th>Title</th>
     62            <th>Mandatory</th>
     63          </tr>
     64        </thead>
    2665        <tbody>
    27         <tal:block repeat="widget view/widgets">
    28           <tr>
    29             <td class="label">
    30               <label tal:attributes="for widget/name">
    31                 <span class="required" tal:condition="widget/required">*</span>
    32                 <span i18n:translate="" tal:content="widget/label">label</span>:
    33               </label>
     66          <tr tal:repeat="cc context/values" class="gradeC">
     67             <td>
     68              <input type="checkbox"
     69                         name="val_id"
     70                         tal:attributes="value cc/__name__" />
    3471            </td>
    35             <td class="field">
    36               <span class="widget" tal:content="structure widget">
    37                 <input type="text" />
     72             <td>
     73              <span tal:content="cc/level">
     74                   LEVEL
    3875              </span>
    39               <tal:error tal:condition="widget/error">
    40                 <span tal:replace="structure widget/error">error</span>
    41               </tal:error>
    42               <tal:hint tal:condition="widget/hint">
    43                 <span class="hint" tal:content="structure widget/hint">hint</span>
    44               </tal:hint>
     76            </td>
     77            <td tal:content="cc/course/semester">SEMESTER</td>
     78            <td>
     79              <a tal:attributes="href python: view.url(cc)"
     80                     tal:content="cc/__name__">
     81                REFERRER CODE
     82              </a>
     83            </td>
     84            <td>
     85              <a tal:attributes="href python:view.url(cc.course)"
     86                     tal:content="cc/course/code">
     87                COURSE CODE
     88              </a>
     89            </td>
     90            <td>
     91              <span tal:content="cc/course/title">
     92                   COURSE TITLE
     93              </span>
     94            </td>
     95            <td>
     96              <span tal:content="cc/core_or_elective">
     97                   MANDATORY
     98              </span>
    4599            </td>
    46100          </tr>
    47         </tal:block>
    48101        </tbody>
    49         </table>
    50         <div class="actionButtons" tal:condition="view/availableActions">
    51           <span tal:repeat="action view/actions"
    52                 tal:omit-tag="">
    53             <input tal:condition="python:action.label in view.taboneactions"
    54                    tal:replace="structure action/render"/>
    55           </span>
    56         </div>
    57   </div>
    58   <div id="tab-2">
    59     <h3>Course Referrers</h3>
    60     <table class="display dataTableManage">
    61       <thead>
    62         <tr>
    63           <th>&nbsp;</th><th>Level</th><th>Semester</th><th>Referrer</th><th>Course</th><th>Title</th>
    64           <th>Mandatory</th>
     102      </table>
     103      <div tal:condition="view/availableActions">
     104        <span tal:repeat="action view/actions"
     105              tal:omit-tag="">
     106          <input tal:condition="python:action.label in view.tabtwoactions"
     107                 tal:replace="structure action/render"/>
     108        </span>
     109      </div>
     110    </div>
     111    <div id="tab-3"> <br />
     112      <table class="display dataTableManage">
     113        <thead>
     114          <tr>
     115            <th>&nbsp;
     116            </th>
     117            <th>User Id
     118            </th>
     119            <th>Name
     120            </th>
     121            <th>Local Role
     122            </th>
     123          </tr>
     124        </thead>
     125        <tbody>
     126          <tr tal:repeat="entry view/getUsersWithLocalRoles" class="gradeC"> <td>
     127              <input type="checkbox" name="role_id" tal:attributes="value python: entry['user_name']+'|'+entry['local_role']" /> </td>
     128            <td tal:content="entry/user_name"> USERNAME </td>
     129            <td tal:content="entry/user_title"> USERTITLE </td>
     130            <td tal:content="entry/local_role_title"> LOCAL ROLE </td>
     131          </tr>
     132        </tbody>
     133      </table>
     134      <div tal:condition="view/availableActions">
     135        <span tal:repeat="action view/actions" tal:omit-tag="">
     136          <input tal:condition="python:action.label in view.tabthreeactions1" tal:replace="structure action/render"/>
     137        </span>
     138      </div><br /><br />
     139      <table class="form-table">
     140        <tr> <td>
     141            <select id="user" name="user">
     142              <option tal:repeat="user view/getUsers" tal:attributes="value user/name">
     143              <span tal:replace="user/val/title">USERTITLE
     144              </span>
     145              </option>
     146            </select> </td> <td>
     147            <select id="local_role" name="local_role">
     148              <option tal:repeat="localrole view/getLocalRoles" tal:attributes="value localrole/name">
     149              <span tal:replace="localrole/title">LOCALROLETITLE
     150              </span>
     151              </option>
     152            </select> </td> <td>
     153            <div tal:condition="view/availableActions">
     154              <span tal:repeat="action view/actions" tal:omit-tag="">
     155                <input tal:condition="python:action.label in view.tabthreeactions2" tal:replace="structure action/render"/>
     156              </span>
     157            </div> </td>
    65158        </tr>
    66       </thead>
    67       <tbody>
    68         <tr tal:repeat="cc context/values">
    69            <td>
    70             <input type="checkbox"
    71                  name="val_id"
    72                  tal:attributes="value cc/__name__" />
    73           </td>
    74            <td>
    75             <span tal:content="cc/level">
    76            LEVEL
    77             </span>
    78           </td>
    79           <td tal:content="cc/course/semester">SEMESTER</td>
    80           <td>
    81             <a tal:attributes="href python: view.url(cc)"
    82              tal:content="cc/__name__">
    83                 REFERRER CODE
    84             </a>
    85           </td>
    86           <td>
    87             <a tal:attributes="href python:view.url(cc.course)"
    88              tal:content="cc/course/code">
    89                 COURSE CODE
    90             </a>
    91           </td>
    92           <td>
    93             <span tal:content="cc/course/title">
    94            COURSE TITLE
    95             </span>
    96           </td>
    97           <td>
    98             <span tal:content="cc/core_or_elective">
    99            MANDATORY
    100             </span>
    101           </td>
    102         </tr>
    103       </tbody>
    104     </table>
    105     <div class="actionButtons" tal:condition="view/availableActions">
    106       <span tal:repeat="action view/actions"
    107             tal:omit-tag="">
    108         <input tal:condition="python:action.label in view.tabtwoactions"
    109                tal:replace="structure action/render"/>
    110       </span>
     159      </table>
    111160    </div>
    112161  </div>
    113   <div id="tab-3"> <br />
    114     <table class="display dataTableManage">
    115       <thead>
    116         <tr>
    117           <th>&nbsp;
    118           </th>
    119           <th>User Id
    120           </th>
    121           <th>Name
    122           </th>
    123           <th>Local Role
    124           </th>
    125         </tr>
    126       </thead>
    127       <tbody>
    128         <tr tal:repeat="entry view/getUsersWithLocalRoles" class="gradeB"> <td>
    129             <input type="checkbox" name="role_id" tal:attributes="value python: entry['user_name']+'|'+entry['local_role']" /> </td>
    130           <td tal:content="entry/user_name"> USERNAME </td>
    131           <td tal:content="entry/user_title"> USERTITLE </td>
    132           <td tal:content="entry/local_role_title"> LOCAL ROLE </td>
    133         </tr>
    134       </tbody>
    135     </table>
    136     <div class="actionButtons" tal:condition="view/availableActions">
    137       <span tal:repeat="action view/actions" tal:omit-tag="">
    138         <input tal:condition="python:action.label in view.tabthreeactions1" tal:replace="structure action/render"/>
    139       </span>
    140     </div><br /><br />
    141     <table class="zebra">
    142       <tr> <td>
    143           <select id="user" name="user">
    144             <option tal:repeat="user view/getUsers" tal:attributes="value user/name">
    145             <span tal:replace="user/val/title">USERTITLE
    146             </span>
    147             </option>
    148           </select> </td> <td>
    149           <select id="local_role" name="local_role">
    150             <option tal:repeat="localrole view/getLocalRoles" tal:attributes="value localrole/name">
    151             <span tal:replace="localrole/title">LOCALROLETITLE
    152             </span>
    153             </option>
    154           </select> </td> <td>
    155           <div tal:condition="view/availableActions">
    156             <span tal:repeat="action view/actions" tal:omit-tag="">
    157               <input tal:condition="python:action.label in view.tabthreeactions2" tal:replace="structure action/render"/>
    158             </span>
    159           </div> </td>
    160       </tr>
    161     </table>
    162   </div>
    163 </div>
    164162</form> 
    165163
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/certificatepage.pt

    r6344 r7459  
    11<h2 tal:content="context/longtitle">TITLE</h2>
    22
    3 <table class="zebra">
     3<table class="form-table">
    44<thead>
    55</thead> 
     
    77  <tal:block repeat="widget view/widgets">
    88    <tr>
    9       <td>
    10         <label tal:attributes="for widget/name">
    11           <span i18n:translate=""
     9      <td class="fieldname">
     10        <span i18n:translate=""
    1211                         tal:content="widget/label">label</span>:
    13         </label>
    1412      </td>
    15       <td class="field" tal:on-error="default">
    16         <div class="widget" tal:content="structure widget">
     13      <td tal:on-error="default">
     14        <div tal:content="structure widget">
    1715          <input type="text" />
    1816        </div>
     
    3331</thead>
    3432<tbody>
    35   <tr tal:repeat="cc context/values">
     33  <tr tal:repeat="cc context/values" class="gradeC">
    3634     <td>
    3735      <span tal:content="cc/level">
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/configurationmanagepage.pt

    r6916 r7459  
    11<h2 i18n:translate="" tal:condition="view/label" tal:content="view/label">Label</h2>
    2 <div class="form-status"  tal:define="status view/status"  tal:condition="status"> Form Status:
     2<div class="alert-message error"  tal:define="status view/status"  tal:condition="status"> Form Status:
    33  <span i18n:translate="" tal:content="view/status"> Form status summary
    44  </span>
    55</div>
    6 <form action="." tal:attributes="action request/URL" method="POST" class="edit-form" enctype="multipart/form-data">
    7   <div id="tabs">
    8     <ul>
    9       <li>
     6<form action="." tal:attributes="action request/URL" method="POST" enctype="multipart/form-data">
     7    <ul class="tabs" data-tabs="tabs">
     8      <li class="active">
    109      <a href="#tab-1">
    1110        <span>Site Settings
     
    1615      </li>
    1716    </ul>
    18     <div id="tab-1">
    19       <table class="zebra">
     17    <div class="tab-content">
     18    <div id="tab-1" class="active">
     19      <table class="form-table">
    2020        <tbody>
    2121          <tal:block repeat="widget view/widgets">
    2222            <tr>
    23               <td class="label">
    24                 <label tal:attributes="for widget/name">
    25                   <span class="required" tal:condition="widget/required">*
     23              <td class="fieldname">
     24                  <span tal:condition="widget/required">*
    2625                  </span>
    2726                  <span i18n:translate="" tal:content="widget/label">label
    2827                  </span>:
    29                 </label> </td>
    30               <td class="field">
    31                 <span class="widget" tal:content="structure widget">
     28              </td>
     29              <td>
     30                <span tal:content="structure widget">
    3231                  <input type="text" />
    3332                </span>
     
    3736                </tal:error>
    3837                <tal:hint tal:condition="widget/hint">
    39                   <span class="hint" tal:content="structure widget/hint">hint
     38                  <span tal:content="structure widget/hint">hint
    4039                  </span>
    4140                </tal:hint> </td>
     
    4443        </tbody>
    4544      </table>
    46       <div class="actionButtons" tal:condition="view/availableActions">
     45      <div tal:condition="view/availableActions">
    4746        <span tal:repeat="action view/actions" tal:omit-tag="">
    48           <input tal:condition="python:action.label in view.taboneactions" tal:replace="structure action/render"/>
     47          <input tal:condition="python:action.label in view.taboneactions"
     48                 tal:replace="structure action/render"/>
    4949        </span>
    5050      </div>
     
    6161        </thead>
    6262        <tbody>
    63           <tr tal:repeat="entry view/getSessionConfigurations" class="gradeB"> <td>
     63          <tr tal:repeat="entry view/getSessionConfigurations" class="gradeC"> <td>
    6464              <input type="checkbox" name="val_id" tal:attributes="value entry/name" /> </td> <td>
    6565              <a href="" tal:attributes="href entry/url" tal:content="entry/title">Name</a> </td>
     
    6767        </tbody>
    6868      </table>
    69       <div class="actionButtons" tal:condition="view/availableActions">
     69      <div tal:condition="view/availableActions">
    7070        <span tal:repeat="action view/actions" tal:omit-tag="">
    7171          <input tal:condition="python:action.label in view.tabtwoactions" tal:replace="structure action/render"/>
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/contactform.pt

    r7227 r7459  
    11<form action="." tal:attributes="action request/URL" method="post"
    2       class="edit-form" enctype="multipart/form-data">
     2      enctype="multipart/form-data">
    33
    44  <h2 i18n:translate=""
     
    66    tal:content="view/label">Label</h2>
    77
    8   <div class="form-status"
     8  <div class="alert-message error"
    99      tal:define="status view/status"
    1010      tal:condition="status">
     
    2121         tal:content="widget/label">Label
    2222    </div>
    23     <div class="widget" tal:content="structure widget">
     23    <div tal:content="structure widget">
    2424      Textbody
    2525    </div>
     
    2727  </tal:block>
    2828
    29   <div class="actionButtons" tal:condition="view/availableActions">
     29  <div tal:condition="view/availableActions">
    3030    <input tal:repeat="action view/actions"
    3131           tal:replace="structure action/render"
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/coursepage.pt

    r5946 r7459  
    11<h2 tal:content="context/title">TITLE</h2>
    22
    3 <table class="listing">
     3<table class="form-table">
    44  <thead>
    55  </thead>
    66  <tbody>
    7     <tr class="odd">
     7    <tr>
    88      <td>Code:</td>
    99      <td tal:content="context/__name__">CODE</td>
    1010    </tr> 
    11     <tr class="even">
     11    <tr>
    1212      <td>Title:</td>
    1313      <td tal:content="context/title">THE TITLE</td>
    1414    </tr>
    15     <tr class="odd">
     15    <tr>
    1616      <td>Credits:</td>
    1717      <td tal:content="context/credits">CREDITS</td>
    1818    </tr>
    19     <tr class="even">
     19    <tr>
    2020      <td>Passmark:</td>
    2121      <td tal:content="context/passmark">PASSMARK</td>
    2222    </tr>
    23     <tr class="odd">
     23    <tr>
    2424      <td>Semester/Term:</td>
    2525      <td tal:content="context/semester">SEMESTER</td>
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterimport1page.pt

    r6908 r7459  
    1616    </thead>
    1717    <tbody>
    18       <tr tal:repeat="file view/getFiles"
    19       tal:attributes="class python: repeat['file'].odd() and 'odd' or ''">
     18      <tr tal:repeat="file view/getFiles">
    2019        <td>
    21           <button type="submit" name="select"
     20          <button type="submit" name="select" class="btn primary"
    2221            tal:attributes="value file/name">Select</button>
    2322        </td>
     
    2928    </tbody>
    3029  </table>
    31   <input type="submit" name="cancel" value="Cancel" />
     30  <input type="submit" name="cancel" class="btn" value="Cancel" />
    3231</form>
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterimport2page.pt

    r6908 r7459  
    1313  </p>
    1414  <div>
    15     <table class = "zebra"
     15    <table
    1616           tal:define="body view/getPreviewBody;
    1717                        headers view/getPreviewHeader;
     
    1919      <thead>
    2020        <tr>
    21           <th style="border: 1px solid #888;"
    22               tal:repeat="headerfield headers"
     21          <th tal:repeat="headerfield headers"
    2322              tal:content="headerfield"> headerfield
    2423          </th>
     
    2827        <tr tal:repeat="row body">
    2928          <td tal:repeat="value row"
    30               tal:content="value"
    31               style="border: 1px solid #000;"> value
     29              tal:content="value"> value
    3230          </td>
    3331        </tr>
     
    6260    </p>
    6361  </div>
    64   <input type="submit" name="cancel" value="Cancel" />
    65   <input type="submit" name="back1" value="Back to step 1" />
    66   <input tal:attributes="disabled python: view.getWarnings() and 'disabled' or ''"
     62  <input class="btn" type="submit" name="cancel" value="Cancel" />
     63  <input class="btn danger" type="submit" name="back1" value="Back to step 1" />
     64  <input class="btn primary" tal:attributes="disabled python: view.getWarnings() and 'disabled' or ''"
    6765    type="submit" name="proceed" value="Proceed to step 3..." />
    6866</form>
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterimport3page.pt

    r6908 r7459  
     1<div class="alert-message success" tal:condition="not: view/getWarnings">
     2  Header fields OK
     3</div>
     4
    15<h2 i18n:translate=""
    26tal:condition="view/label"
     
    2529     tal:attributes="value view/mode" />
    2630  </p>
    27   <div class="alert notice ui-state-info" tal:condition="not: view/getWarnings">
    28     <span class="ui-icon ui-icon-info">A</span>
    29     Header fields OK
    30   </div>
     31
    3132  <div>
    32     <table class = "zebra"
     33    <table class="condensed-table"
    3334     tal:define="body view/getPreviewBody;
    3435           headers view/headerfields;
     
    3637      <thead>
    3738        <tr>
    38           <th style="border: 1px solid #888;"
    39               tal:repeat="headerfield headers"
     39          <th tal:repeat="headerfield headers"
    4040              tal:content="headerfield">
    4141            headerfield
     
    4343        </tr>
    4444        <tr>
    45           <th style="border: 1px solid #888; text-align=center;"
    46               tal:repeat="headerfield headers">
     45          <th tal:repeat="headerfield headers">
    4746            <i>change to:</i>
    4847          </th>
    4948        </tr>
    5049        <tr>
    51           <th style="border: 1px solid #888;"
    52               tal:repeat="headerfield headers">
     50          <th tal:repeat="headerfield headers">
    5351            <select name="headerfield">
    5452              <option tal:repeat="opt view/getPossibleHeaders"
     
    6563        <tr tal:repeat="row body">
    6664          <td tal:repeat="value row"
    67               tal:content="value"
    68               style="border: 1px solid #000;">
     65              tal:content="value">
    6966            value
    7067          </td>
     
    7471  </div>
    7572
    76   <input type="submit" name="cancel" value="Cancel" />
    77   <input type="reset" name="reset" value="Reset" />
    78   <input type="submit" name="update" value="Set headerfields" />
    79   <br />
    80   <input type="submit" name="back2" value="Back to step 2" />
    81   <input tal:attributes="disabled python: view.getWarnings() and 'disabled' or ''"
     73  <input class="btn" type="submit" name="cancel" value="Cancel" />
     74  <input class="btn" type="reset" name="reset" value="Reset" />
     75  <input class="btn" type="submit" name="update" value="Set headerfields" />
     76  <br /><br />
     77  <input class="btn danger" type="submit" name="back2" value="Back to step 2" />
     78  <input class="btn primary" tal:attributes="disabled python: view.getWarnings() and 'disabled' or ''"
    8279   type="submit" name="proceed" value="Perform import..." />
    8380</form>
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterimport4page.pt

    r6908 r7459  
    1818</p>
    1919<form method="POST">
    20   <input type="submit" name="finish" value="Back to data center" />
    21   <input type="submit" name="showlog" value="View processing log" />
     20  <input class="btn primary" type="submit" name="finish" value="Back to data center" />
     21  <input class="btn" type="submit" name="showlog" value="View processing log" />
    2222</form>
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterlogspage.pt

    r6909 r7459  
    1 <h2 i18n:translate=""
    2 tal:condition="view/label"
    3 tal:content="view/label">Label</h2>
    4 
     1<h2 i18n:translate="" tal:condition="view/label" tal:content="view/label">Label</h2>
    52<div tal:define="files view/files">
    6   <p tal:condition="not: files">
    7     Currently no log files are available.
     3  <p tal:condition="not: files">Currently no log files are available.
    84  </p>
    9   <table tal:condition="files">
     5  <table tal:condition="files" class="condensed-table">
    106    <thead>
    117      <tr>
    12   <th></th><th>File</th><th>Date</th><th>Size</th>
     8        <th>
     9        </th>
     10        <th>File
     11        </th>
     12        <th>Date
     13        </th>
     14        <th>Size
     15        </th>
    1316      </tr>
    1417    </thead>
    1518    <tbody>
    16       <tr tal:repeat="file files"
    17     tal:attributes="class python: repeat['file'].odd() and 'odd' or 'even'">
    18   <td class="text-center">
    19     <form method="POST">
    20       <input type="submit" name="show" value="Show" />
    21       <input type="hidden" name="logname"
    22        tal:attributes="value file/name" />
    23     </form>
    24   </td>
    25   <td tal:content="file/name">file.name</td>
    26   <td tal:content="file/uploaddate">Fri Jan 15 17:44:25 2010</td>
    27   <td tal:content="file/getSize">12 bytes</td>
     19      <tr tal:repeat="file files" tal:attributes="class python: repeat['file'].odd() and 'odd' or 'even'">
     20        <td class="text-center">
     21          <form method="POST">
     22            <input type="submit" class="btn primary" name="show" value="Show" />
     23            <input type="hidden" name="logname" tal:attributes="value file/name" />
     24          </form></td>
     25        <td tal:content="file/name">file.name</td>
     26        <td tal:content="file/uploaddate">Fri Jan 15 17:44:25 2010</td>
     27        <td tal:content="file/getSize">12 bytes</td>
    2828      </tr>
    2929    </tbody>
    3030  </table>
    31 
    3231  <form method="POST">
    33     <input type="submit" name="back" value="Back to Data Center" />
     32    <input type="submit" class="btn" name="back" value="Back to Data Center" />
    3433  </form>
    35 
    3634</div>
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterlogsshowfilepage.pt

    r4858 r7459  
    44
    55<form method="POST">
    6   <input type="submit" name="back" value="Back" />
     6  <input class="btn primary" type="submit" name="back" value="Back" />
    77</form>
    88
    9 <div class="bd">
     9<div>
    1010  <pre tal:content="view/filecontents">
    1111    blah, blah
     
    1414
    1515<form method="POST">
    16   <input type="submit" name="back" value="Back" />
     16  <input class="btn primary" type="submit" name="back" value="Back" />
    1717</form>
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacentermanagepage.pt

    r6909 r7459  
    55<form method="POST">
    66  <div>
    7     <label for="newpath">Storage path:</label>
     7    Storage path:
    88    <input type="text" name="newpath"
    99     tal:attributes="value context/storage" />
    1010    <br /><br />
    11     <div>
    12       <input type="checkbox" name="move" checked="checked" />
    13       <label for="move">Copy existing data to new storage?</label>
    14     </div>
    15     <div>
    16       <input type="checkbox" name="overwrite" checked="no" />
    17       <label for="overwrite">Overwrite contents in new location?</label>
    18     </div>
    19     <br />
    20     <input type="submit" name="save" value="Save" />
    21     <input type="reset" name="reset" value="Reset" />
    22     <input type="submit" name="cancel" value="Cancel" />
     11    Copy existing data to new storage? &nbsp;&nbsp;
     12    <input type="checkbox" name="move" checked="checked" />
     13    <br /><br />
     14    Overwrite contents in new location? &nbsp;&nbsp;
     15    <input type="checkbox" name="overwrite" checked="no" />
     16    <br /><br />
     17    <input class="btn primary" type="submit" name="save" value="Save" />
     18    <input class="btn" type="reset" name="reset" value="Reset" />
     19    <input class="btn" type="submit" name="cancel" value="Cancel" />
    2320  </div>
    2421</form>
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenterpage.pt

    r4958 r7459  
    1919  </thead>
    2020  <tbody>
    21     <tr tal:repeat="file context/getFiles"
    22         tal:attributes="class python: repeat['file'].odd() and 'odd' or 'even'">
     21    <tr tal:repeat="file context/getFiles">
    2322      <td tal:content="file/name">thefilename</td>
    2423      <td tal:content="file/size">12 k</td>
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/datacenteruploadpage.pt

    r6908 r7459  
    55<form method="post" enctype="multipart/form-data">
    66  <input type="file" name="uploadfile:file" />
     7  <br /><br />
    78  <div>
    8     <input type="submit" name="SUBMIT" value="Upload" />
    9     <input type="submit" name="CANCEL" value="Cancel" />
     9    <input class="btn primary" type="submit" name="SUBMIT" value="Upload" />
     10    <input class="btn" type="submit" name="CANCEL" value="Cancel" />
    1011  </div>
    1112</form>
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/default_waeup_display_form.pt

    r7384 r7459  
    33    tal:content="view/label">Label</h2>
    44
    5 <table class="zebra">
     5<table class="form-table">
    66  <tbody>
    77    <tal:block repeat="widget view/widgets">
    88      <tr>
    9         <td class="fieldname" width="33%">
     9        <td class="fieldname">
    1010          <tal:block content="widget/label"/>:
    1111        </td>
     
    1818  </tbody>
    1919  <tfoot>
    20     <tr class="controls">
     20    <tr>
    2121      <td colspan="2" class="align-right">
    2222        <input tal:repeat="action view/actions"
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/default_waeup_edit_form.pt

    r7112 r7459  
    11<form action="." tal:attributes="action request/URL" method="post"
    2       class="edit-form" enctype="multipart/form-data">
     2      enctype="multipart/form-data">
    33
    44  <h2 i18n:translate=""
     
    66    tal:content="view/label">Label</h2>
    77
    8   <div class="form-status"
     8  <div class="alert-message error"
    99      tal:define="status view/status"
    1010      tal:condition="status">
     
    1313        Form status summary
    1414      </span>
    15       <ul tal:condition="view/errors">
    16         <li tal:repeat="error view/error_views">
    17            <span tal:replace="structure error">Error Type</span>
    18         </li>
    19       </ul>
    2015  </div>
    2116
    22   <table class="zebra">
     17  <table class="form-table">
    2318    <tbody>
    2419      <tal:block repeat="widget view/widgets">
    2520        <tr>
    26           <td class="label">
    27             <label tal:attributes="for widget/name">
    28               <span class="required" tal:condition="widget/required">*</span>
    29               <span i18n:translate="" tal:content="widget/label">label</span>:
    30             </label>
     21          <td class="fieldname">
     22            <span tal:condition="widget/required">*</span>
     23            <span i18n:translate="" tal:content="widget/label">label</span>:
    3124          </td>
    32           <td class="field">
    33             <span class="widget" tal:content="structure widget">
     25          <td>
     26            <span tal:content="structure widget">
    3427              <input type="text" />
    3528            </span>
     
    3831            </tal:error>
    3932            <tal:hint tal:condition="widget/hint">
    40               <span class="hint" tal:content="structure widget/hint">hint</span>
     33              <span tal:content="structure widget/hint">hint</span>
    4134            </tal:hint>
    4235          </td>
     
    4639    </tbody>
    4740  </table>
    48   <div class="actionButtons" tal:condition="view/availableActions">
     41  <div tal:condition="view/availableActions">
    4942    <input tal:repeat="action view/actions"
    5043           tal:replace="structure action/render"
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/departmentmanagepage.pt

    r7213 r7459  
    11<h2 i18n:translate="" tal:condition="view/label" tal:content="view/label">Label</h2>
    2 <div class="form-status"  tal:define="status view/status"  tal:condition="status"> Form Status:
     2<div class="alert-message error"  tal:define="status view/status"  tal:condition="status"> Form Status:
    33  <span i18n:translate="" tal:content="view/status"> Form status summary
    44  </span>
    55</div>
    6 <form action="." tal:attributes="action request/URL" method="POST" class="edit-form" enctype="multipart/form-data">
    7   <div id="tabs">
    8     <ul>
    9       <li>
    10       <a href="#tab-1">
    11         <span>Settings
    12         </span></a>
    13       </li>
    14       <li>
    15       <a href="#tab-2">Courses</a>
    16       </li>
    17       <li>
    18       <a href="#tab-3">Certificates</a>
    19       </li>
    20       <li>
    21       <a href="#tab-4">Local Roles</a>
    22       </li>
    23     </ul>
    24     <div id="tab-1">
    25       <table class="zebra">
     6<form action="." tal:attributes="action request/URL" method="POST" enctype="multipart/form-data">
     7  <ul class="tabs" data-tabs="tabs">
     8    <li class="active">
     9    <a href="#tab-1">
     10      <span>Settings
     11      </span></a>
     12    </li>
     13    <li>
     14    <a href="#tab-2">Courses</a>
     15    </li>
     16    <li>
     17    <a href="#tab-3">Certificates</a>
     18    </li>
     19    <li>
     20    <a href="#tab-4">Local Roles</a>
     21    </li>
     22  </ul>
     23  <div class="tab-content">
     24    <div id="tab-1" class="active">
     25      <table class="form-table">
    2626        <tbody>
    2727          <tal:block repeat="widget view/widgets">
    2828            <tr>
    29               <td class="label">
    30                 <label tal:attributes="for widget/name">
    31                   <span class="required" tal:condition="widget/required">*
     29              <td class="fieldname">
     30                  <span tal:condition="widget/required">*
    3231                  </span>
    3332                  <span i18n:translate="" tal:content="widget/label">label
    3433                  </span>:
    35                 </label> </td>
    36               <td class="field">
    37                 <span class="widget" tal:content="structure widget">
     34              </td>
     35              <td>
     36                <span tal:content="structure widget">
    3837                  <input type="text" />
    3938                </span>
     
    4342                </tal:error>
    4443                <tal:hint tal:condition="widget/hint">
    45                   <span class="hint" tal:content="structure widget/hint">hint
     44                  <span tal:content="structure widget/hint">hint
    4645                  </span>
    4746                </tal:hint> </td>
     
    5049        </tbody>
    5150      </table>
    52       <div class="actionButtons" tal:condition="view/availableActions">
     51      <div tal:condition="view/availableActions">
    5352        <span tal:repeat="action view/actions" tal:omit-tag="">
    5453          <input tal:condition="python:action.label in view.taboneactions" tal:replace="structure action/render"/>
     
    6968        </thead>
    7069        <tbody>
    71           <tr tal:repeat="entry view/getCourses" class="gradeB"> <td>
     70          <tr tal:repeat="entry view/getCourses" class="gradeC"> <td>
    7271              <input type="checkbox" name="val_id" tal:attributes="value entry/name" /> </td> <td>
    7372              <a href="" tal:attributes="href entry/url" tal:content="entry/name">Name</a> </td>
     
    7675        </tbody>
    7776      </table>
    78       <div class="actionButtons" tal:condition="view/availableActions">
     77      <div tal:condition="view/availableActions">
    7978        <span tal:repeat="action view/actions" tal:omit-tag="">
    8079          <input tal:condition="python:action.label in view.tabtwoactions" tal:replace="structure action/render"/>
     
    9594        </thead>
    9695        <tbody>
    97           <tr tal:repeat="entry view/getCertificates" class="gradeB"> <td>
     96          <tr tal:repeat="entry view/getCertificates" class="gradeC"> <td>
    9897              <input type="checkbox" name="val_id" tal:attributes="value entry/name" /> </td> <td>
    9998              <a href="" tal:attributes="href entry/url" tal:content="entry/name">Name</a> </td>
     
    102101        </tbody>
    103102      </table>
    104       <div class="actionButtons" tal:condition="view/availableActions">
     103      <div tal:condition="view/availableActions">
    105104        <span tal:repeat="action view/actions" tal:omit-tag="">
    106105          <input tal:condition="python:action.label in view.tabthreeactions" tal:replace="structure action/render"/>
     
    123122        </thead>
    124123        <tbody>
    125           <tr tal:repeat="entry view/getUsersWithLocalRoles" class="gradeB"> <td>
     124          <tr tal:repeat="entry view/getUsersWithLocalRoles" class="gradeC"> <td>
    126125              <input type="checkbox" name="role_id" tal:attributes="value python: entry['user_name']+'|'+entry['local_role']" /> </td>
    127126            <td tal:content="entry/user_name"> USERNAME </td>
     
    131130        </tbody>
    132131      </table>
    133       <div class="actionButtons" tal:condition="view/availableActions">
     132      <div tal:condition="view/availableActions">
    134133        <span tal:repeat="action view/actions" tal:omit-tag="">
    135134          <input tal:condition="python:action.label in view.tabfouractions1" tal:replace="structure action/render"/>
    136135        </span>
    137136      </div> <br /><br />
    138       <table class="zebra">
     137      <table class="form-table">
    139138        <tr> <td>
    140139            <select id="user" name="user">
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/departmentpage.pt

    r6461 r7459  
    33tal:content="view/label">Label</h2>
    44
    5 <div id="tabs">
    6     <ul>
    7       <li><a href="#tab-1"><span>Courses</span></a></li>
    8       <li><a href="#tab-2"><span>Certificates</span></a></li>
    9     </ul>
    10    
    11     <div id="tab-1">
     5<ul class="tabs" data-tabs="tabs">
     6  <li class="active"><a href="#tab-1"><span>Courses</span></a></li>
     7  <li><a href="#tab-2"><span>Certificates</span></a></li>
     8</ul>
     9<div class="tab-content">
     10    <div id="tab-1" class="active">
    1211    <br />
    1312    <table class="display dataTable">
     
    1817      </thead>
    1918      <tbody>
    20         <tr tal:repeat="entry view/getCourses"
    21         class="gradeB">
     19        <tr tal:repeat="entry view/getCourses" class="gradeC">
    2220          <td>
    2321                <a href=""
     
    4240      </thead>
    4341      <tbody>
    44         <tr tal:repeat="entry view/getCertificates"
    45         class="gradeB">
     42        <tr tal:repeat="entry view/getCertificates" class="gradeC">
    4643          <td>
    4744                <a href=""
     
    5552      </tbody>
    5653    </table>
    57     <br /><br />
    5854    </div>
    5955</div>
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/facultiescontainermanagepage.pt

    r7333 r7459  
    33    tal:content="view/label">Label</h2>
    44
    5 <div class="form-status"
     5<div class="alert-message error"
    66    tal:define="status view/status"
    77    tal:condition="status">
     
    1313
    1414<form action="." tal:attributes="action request/URL" method="POST"
    15       class="edit-form" enctype="multipart/form-data">
     15      enctype="multipart/form-data">
    1616
    17   <div id="tabs">
    18     <ul>
    19       <li><a href="#tab-1">
    20         <span tal:content="view/subunits">Contents</span>
    21       </a></li>
    22     </ul>
    23 
    24     <div id="tab-1">
    25       <h3 tal:content="view/subunits">Faculties</h3>
    26       <table class="zebra">
    27         <thead>
    28           <tr>
    29             <th>&nbsp;</th><th>Code</th><th>Title</th>
    30           </tr>
    31         </thead>
    32         <tbody>
    33           <tr tal:repeat="dep context/values">
    34             <td>
    35               <input type="checkbox"
    36                      name="val_id"
    37                      tal:attributes="value dep/code" />
    38             </td>
    39             <td>
    40               <a tal:attributes="href python: view.url(dep)"
    41                  tal:content="dep/__name__">
    42                 ID
    43               </a>
    44             </td>
    45             <td>
    46               <span tal:content="dep/title">
    47                 ID
    48               </span>
    49             </td>
    50           </tr>
    51         </tbody>
    52       </table>
    53       <div class="actionButtons" tal:condition="view/availableActions">
    54         <span tal:repeat="action view/actions"
    55               tal:omit-tag="">
    56           <input tal:condition="python:action.label in view.taboneactions"
    57                  tal:replace="structure action/render"/>
    58         </span>
    59       </div>
    60 
    61     </div>
     17  <table>
     18    <thead>
     19      <tr>
     20        <th>&nbsp;</th><th>Code</th><th>Title</th>
     21      </tr>
     22    </thead>
     23    <tbody>
     24      <tr tal:repeat="dep context/values">
     25        <td>
     26          <input type="checkbox"
     27                 name="val_id"
     28                 tal:attributes="value dep/code" />
     29        </td>
     30        <td>
     31          <a tal:attributes="href python: view.url(dep)"
     32             tal:content="dep/__name__">
     33            ID
     34          </a>
     35        </td>
     36        <td>
     37          <span tal:content="dep/title">
     38            ID
     39          </span>
     40        </td>
     41      </tr>
     42    </tbody>
     43  </table>
     44  <div tal:condition="view/availableActions">
     45    <span tal:repeat="action view/actions"
     46          tal:omit-tag="">
     47      <input tal:condition="python:action.label in view.taboneactions"
     48             tal:replace="structure action/render"/>
     49    </span>
    6250  </div>
    6351</form>
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/facultymanagepage.pt

    r7213 r7459  
    11<h2 i18n:translate="" tal:condition="view/label" tal:content="view/label">Label</h2>
    2 <div class="form-status" tal:define="status view/status" tal:condition="status"> Form Status:
     2<div class="alert-message error" tal:define="status view/status"
     3     tal:condition="status"> Form Status:
    34  <span i18n:translate="" tal:content="view/status"> Form status summary
    45  </span>
    56</div>
    6 <form action="." tal:attributes="action request/URL" method="POST" class="edit-form" enctype="multipart/form-data">
    7   <div id="tabs">
    8     <ul>
    9       <li>
    10       <a href="#tab-1">
    11         <span>Settings
    12         </span></a>
    13       </li>
    14       <li>
    15       <a href="#tab-2">
    16         <span tal:content="view/subunits">Contents
    17         </span> </a>
    18       </li>
    19       <li>
    20       <a href="#tab-3">
    21         <span>Local Roles
    22         </span></a>
    23       </li>
    24     </ul>
    25     <div id="tab-1">
    26       <table class="zebra">
     7<form action="." tal:attributes="action request/URL" method="POST" enctype="multipart/form-data">
     8  <ul class="tabs" data-tabs="tabs">
     9    <li class="active">
     10    <a href="#tab-1">
     11      <span>Settings
     12      </span></a>
     13    </li>
     14    <li>
     15    <a href="#tab-2">
     16      <span tal:content="view/subunits">Contents
     17      </span> </a>
     18    </li>
     19    <li>
     20    <a href="#tab-3">
     21      <span>Local Roles
     22      </span></a>
     23    </li>
     24  </ul>
     25  <div class="tab-content">
     26    <div id="tab-1" class="active">
     27      <table class="form-table">
    2728        <tbody>
    2829          <tal:block repeat="widget view/widgets">
    2930            <tr>
    30               <td class="label">
    31                 <label tal:attributes="for widget/name">
    32                   <span class="required" tal:condition="widget/required">*
    33                   </span>
    34                   <span i18n:translate="" tal:content="widget/label">label
    35                   </span>:
    36                 </label> </td>
    37               <td class="field">
    38                 <span class="widget" tal:content="structure widget">
     31              <td class="fieldname">
     32                <span tal:condition="widget/required">*
     33                </span>
     34                <span i18n:translate="" tal:content="widget/label">label
     35                </span>:
     36              </td>
     37              <td>
     38                <span tal:content="structure widget">
    3939                  <input type="text" />
    4040                </span>
     
    4444                </tal:error>
    4545                <tal:hint tal:condition="widget/hint">
    46                   <span class="hint" tal:content="structure widget/hint">hint
     46                  <span tal:content="structure widget/hint">hint
    4747                  </span>
    4848                </tal:hint> </td>
     
    5151        </tbody>
    5252      </table>
    53       <div class="actionButtons" tal:condition="view/availableActions">
     53      <div tal:condition="view/availableActions">
    5454        <span tal:repeat="action view/actions" tal:omit-tag="">
    55           <input tal:condition="python:action.label in view.taboneactions" tal:replace="structure action/render"/>
     55          <input tal:condition="python:action.label in view.taboneactions"
     56                 tal:replace="structure action/render"/>
    5657        </span>
    5758      </div>
     
    5960    <div id="tab-2">
    6061      <h3 tal:content="view/subunits">Departments</h3>
    61       <table class="zebra">
     62      <table>
    6263        <thead>
    6364          <tr>
     
    7273        <tbody>
    7374          <tr tal:repeat="dep context/values"> <td>
    74               <input type="checkbox" name="val_id" tal:attributes="value dep/code" /> </td> <td>
    75               <a tal:attributes="href python: view.url(dep)" tal:content="dep/__name__"> ID</a> </td> <td>
     75              <input type="checkbox" name="val_id"
     76                     tal:attributes="value dep/code" /> </td> <td>
     77              <a tal:attributes="href python: view.url(dep)"
     78                 tal:content="dep/__name__"> ID</a> </td> <td>
    7679              <span tal:content="dep/title">ID
    7780              </span> </td>
     
    7982        </tbody>
    8083      </table>
    81       <div class="actionButtons" tal:condition="view/availableActions">
     84      <div tal:condition="view/availableActions">
    8285        <span tal:repeat="action view/actions" tal:omit-tag="">
    83           <input tal:condition="python:action.label in view.tabtwoactions" tal:replace="structure action/render"/>
     86          <input tal:condition="python:action.label in view.tabtwoactions"
     87                 tal:replace="structure action/render"/>
    8488        </span>
    8589      </div>
     
    100104        </thead>
    101105        <tbody>
    102           <tr tal:repeat="entry view/getUsersWithLocalRoles" class="gradeB"> <td>
    103               <input type="checkbox" name="role_id" tal:attributes="value python: entry['user_name']+'|'+entry['local_role']" /> </td>
     106          <tr tal:repeat="entry view/getUsersWithLocalRoles" class="gradeC"> <td>
     107              <input type="checkbox" name="role_id"
     108              tal:attributes="value python: entry['user_name']+'|'+entry['local_role']" /> </td>
    104109            <td tal:content="entry/user_name"> USERNAME </td>
    105110            <td tal:content="entry/user_title"> USERTITLE </td>
     
    108113        </tbody>
    109114      </table>
    110       <div class="actionButtons" tal:condition="view/availableActions">
     115      <div tal:condition="view/availableActions">
    111116        <span tal:repeat="action view/actions" tal:omit-tag="">
    112           <input tal:condition="python:action.label in view.tabthreeactions1" tal:replace="structure action/render"/>
     117          <input tal:condition="python:action.label in view.tabthreeactions1"
     118                 tal:replace="structure action/render"/>
    113119        </span>
    114120      </div><br /><br />
    115       <table class="zebra">
     121      <table class="form-table">
    116122        <tr> <td>
    117123            <select id="user" name="user">
     
    122128            </select> </td> <td>
    123129            <select id="local_role" name="local_role">
    124               <option tal:repeat="localrole view/getLocalRoles" tal:attributes="value localrole/name">
     130              <option tal:repeat="localrole view/getLocalRoles"
     131                      tal:attributes="value localrole/name">
    125132              <span tal:replace="localrole/title">LOCALROLETITLE
    126133              </span>
     
    129136            <div tal:condition="view/availableActions">
    130137              <span tal:repeat="action view/actions" tal:omit-tag="">
    131                 <input tal:condition="python:action.label in view.tabthreeactions2" tal:replace="structure action/render"/>
     138                <input tal:condition="python:action.label in view.tabthreeactions2"
     139                       tal:replace="structure action/render"/>
    132140              </span>
    133141            </div> </td>
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/facultypage.pt

    r5993 r7459  
    55</div>
    66
    7 <table class="zebra">
     7<table>
    88  <thead>
    99    <tr>
     
    1414  <tbody>
    1515    <tr tal:repeat="value context/values">
    16       <td> <a tal:attributes="href value/__name__"> <span tal:content="value/code">Name</span></a></td>
     16      <td> <a tal:attributes="href value/__name__">
     17          <span tal:content="value/code">Name</span></a></td>
    1718      <td tal:content="value/longtitle">Title</td>
    1819    </tr>
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/loginpage.pt

    r7369 r7459  
    11<h2 i18n:translate=""  tal:condition="view/label"  tal:content="view/label">Label</h2>
    22<form method="post">
    3   <table id="login" class="form summary="Table for entering login information">
     3  <table id="login" class="form-table" summary="Table for entering login information">
    44    <tbody>
    55      <tr>
    6         <th>
    7           <label for="form.login">User Name or Student Id
    8           </label>
    9         </th> <td>
    10           <input type="text" id="login" name="form.login" size="20" /> </td>
     6        <td class="fieldname">
     7          User Name or Student Id:
     8        </td>
     9        <td>
     10          <input type="text" id="login" name="form.login" size="20" />
     11        </td>
    1112      </tr>
    1213      <tr>
    13         <th>
    14           <label for="form.password">Password
    15           </label>
    16         </th><td>
     14        <td class="fieldname">
     15          Password:
     16        </td>
     17        <td>
    1718          <input type="password" id="password" name="form.password"  size="20" value="" />
    1819          &nbsp;&nbsp;
     
    2324  </table>
    2425  <input type="hidden" name="camefrom"   tal:attributes="value view/camefrom" />
    25   <input type="submit" name="SUBMIT" value="Login" /><br /><br />
     26  <input class="btn primary" type="submit" name="SUBMIT" value="Login" /><br /><br />
    2627  <p>Don't forget to logout or exit your browser when you're done.
    2728  If you are having trouble logging in, make sure to enable  cookies in your web browser.
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/messages.pt

    r6225 r7459  
    1 <ul>
    2   <li
    3     tal:repeat="message view/messages"
    4     tal:attributes="class message/type"
    5     tal:content="structure message/message">Sauron will arrive soon!
    6   </li>
    7 </ul>
     1<div
     2  tal:repeat="message view/messages"
     3  tal:attributes="class message/type"
     4  tal:content="structure message/message">Sauron will arrive soon!
     5</div>
     6
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/myrolespage.pt

    r7179 r7459  
    11<h3 i18n:translate="">My Portal Roles:</h3>
    2 <span tal:repeat="role view/getSiteRoles">
    3   <div tal:content="role" >ROLE</div>
    4 </span>
    5 <br /><br />
     2<table class="form-table">
     3<tr tal:repeat="role view/getSiteRoles">
     4    <td>
     5      <div tal:content="role" >ROLE</div>
     6    </td>
     7  </tr>
     8</table>
     9
    610<h3 i18n:translate="">My Local Roles:</h3>
    7 <table>
     11<table class="form-table">
    812  <tr tal:repeat="role view/getLocalRoles">
    913    <td valign="top" ><span tal:content="role" >ROLE</span>:</td>
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/notfound.pt

    r6190 r7459  
    33</h2>
    44
    5 <div class="error"><b>Please note the following:</b></div>
     5<div><b>Please note the following:</b></div>
    66<div>
    77  <ol class="list">
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/plainactionbutton.pt

    r7367 r7459  
    1 <span class="yui-button" tal:condition="viewlet/target_url">
    2   <span class="first-child">
     1<span tal:condition="viewlet/target_url">
     2  <span>
    33    <a href=""
    44       tal:attributes="href viewlet/target_url">
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/searchpage.pt

    r6460 r7459  
    33  <input type="text" name="query"
    44         tal:attributes="value view/query" />
    5     <input type="submit" name="SUBMIT" value="Search" />
     5    <input class="btn primary" type="submit" name="SUBMIT" value="Search" />
    66</form>
    77<br />
     
    3131        </tbody>
    3232    </table>
    33     <div class="actionButtons">
    34     </div>
    3533</span>
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/staffsitelayout.pt

    r6723 r7459  
    1313        tal:attributes="title string:RSS feed of ${layout/getAppTitle};
    1414            href python: view.url(layout.site, 'feed.rss')" />
     15  </head>
     16  <body>
     17    <div class="topbar" data-scrollspy="scrollspy" >
     18      <div class="topbar-inner">
     19        <div class="container-fluid">
     20          <a class="brand" href="#" tal:content="layout/getAppAcronym">Acronym</a>
     21          <ul class="nav">
     22            <tal:primary_nav content="structure provider:primary_nav" />
     23          </ul>
     24          <ul class="nav secondary-nav">
     25            <li tal:condition="not: layout/isAuthenticated">
     26            <a href="#" tal:attributes="href python: view.url(layout.site, 'login')">
     27                Login
     28            </a>
     29            </li>
     30            <li tal:condition="layout/isAuthenticated">
     31            <a href="#" tal:attributes="href python: view.url(layout.site, '@@contactadmin')">
     32                Contact
     33            </a>
     34            </li>
     35            <li tal:condition="layout/isAuthenticated">
     36            <a href="#" tal:attributes="href python: view.url(context, '@@logout')">Logout</a>
     37            </li>
     38          </ul>
     39        </div>
     40      </div>
     41    </div>
    1542
    16   </head>
    17   <body class="rounded yui-skin-sam">
    18     <div id="doc3" class="yui-t1">
    19       <div id="hd" role="banner">
    20         <div id="hd">
    21           <h1 id="logo">
    22             <a href="" tal:attributes="href view/application_url">
    23               <span class="uni-logo">
    24               </span> </a>
    25             <span id="uni-title" tal:content="layout/getAppTitle"> Sample University
    26             </span> </h1>
    27           <div id="navigation" class="yui-navset" style="text-align:right;">
    28             <ul id="primary-navigation">
    29               <tal:primary_nav content="structure provider:primary_nav" />
     43    <ul class="breadcrumb">
     44      <tal:breadcrumbs
     45            tal:condition="python: layout.isAuthenticated()"
     46            tal:content="structure provider:breadcrumbs" />
     47      <span tal:condition="layout/getStudentName" class="wfstatus">
     48            Student Id:
     49          <span tal:replace="python:context.getStudent().student_id">Id
     50          </span>&nbsp;&nbsp;
     51          State:
     52          <span tal:replace="python:context.getStudent().state">State
     53          </span>
     54      </span>
     55    </ul>
     56
     57    <div class="container-fluid">
     58      <div class="sidebar">
     59        <div class="well">
     60          <div tal:condition="layout/getStudentName">
     61            <h5 tal:content="layout/getStudentName">Student name</h5>
     62            <ul>
     63              <tal:left content="structure provider:left_studentmanage" />
    3064            </ul>
    31             <ul id="user-navigation">
    32               <li tal:condition="not: layout/isAuthenticated">
    33               <a href="#" tal:attributes="href python: view.url(layout.site, 'login')">
    34                   Login
    35               </a>
    36               </li>
    37               <li tal:condition="layout/isAuthenticated">
    38               <a href="#" tal:attributes="href python: view.url(layout.site, '@@contactadmin')">
    39                   Contact
    40               </a>
    41               </li>
    42               <li tal:condition="layout/isAuthenticated">
    43               <a href="#" tal:attributes="href python: view.url(context, '@@logout')">Logout</a>
    44               </li>
     65          </div>
     66          <div tal:condition="layout/isAuthenticated">
     67            <h5 tal:content="layout/getUserTitle">Username</h5>
     68            <ul>
     69              <tal:left content="structure provider:left" />
    4570            </ul>
    46             <div class="clear">
    47             </div>
    4871          </div>
    4972        </div>
    5073      </div>
    51       <div id="bd" role="main">
    52         <span tal:condition="python: layout.isAuthenticated()"
    53               tal:content="structure provider:breadcrumbs" />
    54 
    55         <div class="yui-b">
    56           <div class="block" tal:condition="layout/getStudentName">
    57             <div class="hd">
    58               <h2 tal:content="layout/getStudentName">Student name</h2>
    59             </div>
    60             <div class="bd">
    61               <tal:left content="structure provider:left_studentmanage" />
    62             </div>
    63           </div>
    64           <div class="block" tal:condition="layout/isAuthenticated">
    65             <div class="hd">
    66               <h2 tal:content="layout/getUserTitle">Username</h2>
    67             </div>
    68             <div class="bd">
    69               <tal:left content="structure provider:left" />
    70             </div>
     74      <div class="span13 content">
     75        <div
     76            tal:define="message context/@@messages"
     77            tal:condition="python: len(message)>11">
     78          <div tal:content="structure message">
    7179          </div>
    7280        </div>
    73 
    74         <div id="yui-main">
    75           <div class="yui-b">
    76             <div class="yui-g">
    77               <div class="block">
    78                 <div class="hd" tal:condition="python: layout.isAuthenticated()">
    79                   <span tal:content="view/title"> THE CONTENT TITLE </span>
    80                   <span tal:condition="layout/getStudentName" class="wfstatus">
    81                   Sudent Id: <span tal:content="python:context.getStudent().student_id">Student Id</span>
    82                   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    83                   State: <span tal:content="python:context.getStudent().state">State</span>
    84                   </span>
    85                 </div>
    86                 <div class="bd">
    87                   <div class="actionbar">
    88                     <tal:actionbar content="structure provider:actionbar" />
    89                   </div>
    90                   <div class="alert warning ui-state-error"
    91                       tal:define="message context/@@messages"
    92                       tal:condition="python: len(message)>11">
    93                     <span class="ui-icon ui-icon-alert">A
    94                     </span>
    95                     <span tal:content="structure message">
    96                     </span>
    97                   </div>
    98                   <div tal:replace="structure view/content"> THE CONTENT
    99                   </div>
    100                 </div>
    101               </div>
    102             </div>
    103           </div>
     81        <span tal:replace="structure provider:actionbar" />
     82        <div tal:content="structure view/content"> THE CONTENT
    10483        </div>
    105 
    106       </div>
    107       <div id="ft" role="contentinfo">
    108         <p>Student Information and Registration Portal<br />
    109             Copyright &copy; WAeUP Group, 2008-2011
    110         </p>
     84        <div class="footer">
     85          <p class="pull-right"><a href="#">Back to top</a></p>
     86          <p>
     87            Student Information and Registration Portal<br />
     88            Copyright &copy; WAeUP Group, 2008-2012
     89          </p>
     90        </div>
    11191      </div>
    11292    </div>
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/studentsitelayout.pt

    r7240 r7459  
    1010    <meta name="viewport" content="width=320, initial-scale=1, maximum-scale=1"/>
    1111    <link rel="stylesheet" media="only screen and (max-device-width: 480px)"
    12         tal:attributes="href python: view.url(layout.site, '@@/waeup.sirp.browser/mobile.css')" type="text/css" />
     12        tal:attributes="href python: view.url(layout.site, '@@/waeup.sirp.browser/mobile.css')"
     13        type="text/css" />
    1314    <link rel="shortcut icon" tal:attributes="href static/favicon.ico" type="image/x-icon" />
    1415    <link rel="alternate" type="application/rss+xml" title="RSS"
     
    1617        tal:attributes="title string:RSS feed of ${layout/getAppTitle};
    1718            href python: view.url(layout.site, 'feed.rss')" />
    18 
    1919  </head>
    20   <body class="rounded yui-skin-sam">
    21     <div id="doc3" class="yui-t7">
    22       <div id="hd" role="banner">
    23         <div id="hd">
    24           <h1 id="logo">
    25             <a href="" tal:attributes="href view/application_url">
    26               <span class="uni-logo">
    27               </span> </a>
    28             <span id="uni-title" tal:content="layout/getAppTitle"> Sample University
    29             </span> </h1>
    30           <div id="navigation" class="yui-navset" style="text-align:right;">
    31             <ul id="primary-navigation">
     20  <body>
     21    <div class="topbar" data-scrollspy="scrollspy" >
     22      <div class="topbar-inner">
     23        <div  class="container">
     24          <a class="brand" href="#" tal:content="layout/getAppAcronym">Acronym</a>
     25          <ul class="nav">
    3226              <tal:primary_nav content="structure provider:primary_nav" />
    3327              <tal:primary_nav content="structure provider:primary_nav_student" />
    34             </ul>
    35             <ul id="user-navigation">
    36               <li tal:condition="not: layout/isAuthenticated">
    37               <a href="#" tal:attributes="href python: view.url(layout.site, 'login')">
    38                   Login
    39               </a>
    40               </li>
    41               <li tal:condition="layout/isAuthenticated">
    42               <a href="#" tal:attributes="href python: view.url(layout.site, '@@contactadmin')">
    43                   Contact
    44               </a>
    45               </li>
    46               <li tal:condition="layout/isAuthenticated">
    47               <a href="#" tal:attributes="href python: view.url(context, '@@logout')">Logout</a>
    48               </li>
    49             </ul>
    50             <div class="clear">
    51             </div>
     28          </ul>
     29          <ul class="nav secondary-nav">
     30            <li tal:condition="not: layout/isAuthenticated">
     31            <a href="#" tal:attributes="href python: view.url(layout.site, 'login')">
     32                Login
     33            </a>
     34            </li>
     35            <li tal:condition="layout/isAuthenticated">
     36            <a href="#" tal:attributes="href python: view.url(layout.site, '@@contactadmin')">
     37                Contact
     38            </a>
     39            </li>
     40            <li tal:condition="layout/isAuthenticated">
     41            <a href="#" tal:attributes="href python: view.url(context, '@@logout')">Logout</a>
     42            </li>
     43          </ul>
     44        </div>
     45      </div>
     46    </div>
     47    <div class="container">
     48      <ul class="student-info-bar" tal:condition="layout/isAuthenticated">
     49        <tal:breadcrumbs
     50              tal:condition="python: layout.isAuthenticated()"
     51              tal:content="structure provider:breadcrumbs" />
     52        <span tal:condition="layout/getStudentName" class="wfstatus">
     53              Student Id:
     54            <span tal:replace="python:context.getStudent().student_id">Id
     55            </span>&nbsp;&nbsp;
     56            State:
     57            <span tal:replace="python:context.getStudent().state">State
     58            </span>
     59        </span>
     60      </ul>
     61      <div class="content">
     62        <div tal:define="message context/@@messages"
     63             tal:condition="python: len(message)>11">
     64          <div tal:content="structure message">
    5265          </div>
    5366        </div>
    54       </div>
    55       <div id="bd" role="main">
    56 
    57         <div class="yui-b">
    58           <div class="block" >
    59             <div class="studentmenu">
    60               <div tal:condition="layout/getStudentName"
    61                    tal:replace="structure provider:top_student">
    62                 Student Links
    63               </div>
    64               <div tal:content="structure provider:actionbar">
    65                 Student Actions
    66               </div>
    67             </div>
    68           </div>
     67        <span tal:replace="structure provider:actionbar" />
     68        <div tal:content="structure view/content"> THE CONTENT
    6969        </div>
    70 
    71         <div id="yui-main">
    72           <div class="yui-b">
    73             <div class="yui-g">
    74               <div class="block">
    75                 <div class="bd">
    76                   <div class="actionbar">
    77                     <span tal:condition="layout/getStudentName" class="wfstatus">
    78                     Id:
    79                     <span tal:replace="python:context.getStudent().student_id"
    80                         class="wfstatus">Id</span>
    81                     &nbsp;&nbsp;
    82                     State:
    83                     <span tal:replace="python:context.getStudent().state"
    84                         class="wfstatus">State</span>
    85                     </span>
    86                   </div>
    87                   <div class="alert warning ui-state-error"
    88                       tal:define="message context/@@messages"
    89                       tal:condition="python: len(message)>11">
    90                     <span class="ui-icon ui-icon-alert">A
    91                     </span>
    92                     <span tal:content="structure message">
    93                     </span>
    94                   </div>
    95                   <div tal:replace="structure view/content"> THE CONTENT
    96                   </div>
    97                 </div>
    98               </div>
    99             </div>
    100           </div>
     70        <div class="footer">
     71          <p class="pull-right"><a href="#">Back to top</a></p>
     72          <p>
     73            Student Information and Registration Portal<br />
     74            Copyright &copy; WAeUP Group, 2008-2012
     75          </p>
    10176        </div>
    102 
    103       </div>
    104       <div id="ft" role="contentinfo">
    105         <p>Student Information and Registration Portal<br />
    106             Copyright &copy; WAeUP Group, 2008-2011
    107         </p>
    10877      </div>
    10978    </div>
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/subobjectlist.pt

    r5936 r7459  
    88  </thead>
    99  <tbody>
    10     <tr tal:repeat="row viewletmanager/rows"
    11         tal:attributes="class python: repeat['row'].odd() and 'odd' or 'even'">
     10    <tr tal:repeat="row viewletmanager/rows">
    1211      <td tal:repeat="viewlet row">
    1312        <div tal:replace="structure viewlet/render">
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/universitypage.pt

    r6907 r7459  
    1 <h2 tal:content="view/label">Title</h2>
     1<h1 tal:content="view/label">Title</h1>
    22
    33<span tal:replace="structure view/frontpage">Frontpage</span>
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/usereditformpage.pt

    r7149 r7459  
    11<form action="." tal:attributes="action request/URL" method="post"
    2       class="edit-form" enctype="multipart/form-data">
     2      enctype="multipart/form-data">
    33
    44  <h2 i18n:translate=""
     
    66    tal:content="view/label">Label</h2>
    77
    8   <div class="form-status"
     8  <div class="alert-message error"
    99      tal:define="status view/status"
    1010      tal:condition="status">
     
    2020  </div>
    2121
    22   <table class="zebra">
     22  <table class="form-table">
    2323    <tbody>
    2424      <tal:block repeat="widget view/widgets">
    2525        <tr>
    26           <td class="label">
    27             <label tal:attributes="for widget/name">
    28               <span class="required" tal:condition="widget/required">*</span>
    29               <span i18n:translate="" tal:content="widget/label">label</span>:
    30             </label>
     26          <td class="fieldname">
     27            <span tal:condition="widget/required">*</span>
     28            <span i18n:translate="" tal:content="widget/label">label</span>:
    3129          </td>
    32           <td class="field">
    33             <span class="widget" tal:content="structure widget">
     30          <td>
     31            <span tal:content="structure widget">
    3432              <input type="text" />
    3533            </span>
     
    3836            </tal:error>
    3937            <tal:hint tal:condition="widget/hint">
    40               <span class="hint" tal:content="structure widget/hint">hint</span>
     38              <span tal:content="structure widget/hint">hint</span>
    4139            </tal:hint>
    4240          </td>
     
    4442      </tal:block>
    4543      <tr>
    46         <td class="label"><label>Password:</label></td>
     44        <td class="fieldname">Password:</td>
    4745        <td>
    4846          <input name="password" type="password"  />
     
    5048      </tr>
    5149      <tr>
    52         <td class="label"><label>Retype password:</label></td>
     50        <td class="fieldname">Retype password:</td>
    5351        <td>
    5452          <input name="control_password" type="password" />
     
    5856    </tbody>
    5957  </table>
    60   <div class="actionButtons" tal:condition="view/availableActions">
     58  <div tal:condition="view/availableActions">
    6159    <input tal:repeat="action view/actions"
    6260           tal:replace="structure action/render"
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/templates/userscontainerpage.pt

    r7178 r7459  
    11<h2>Portal Users</h2>
    22
    3 <p>
    4   Here you can manage portal users. 
    5 </p>
    6 
    7 <table class="zebra">
     3<table>
    84  <thead>
    95    <tr>
    106      <th>User ID</th>
    117      <th>Name</th>
    12       <th>Description</th>
    138      <th>Portal Roles</th>
    149      <th>Local Roles</th>
     
    2015      <td tal:content="account/name">User name</td>
    2116      <td tal:content="account/title">Title</td>
    22       <td tal:content="account/description">Description</td>
    2317      <td tal:content="structure python:view.getSiteRoles(account)">SITE ROLES</td>
    2418      <td tal:content="structure python:view.getLocalRoles(account)">LOCAL ROLES</td>
     
    2721          <input type="hidden" name="userid"
    2822           tal:attributes="value account/name"/>
    29             <input type="submit" name="manage" value="manage" />
    30             <input type="submit" name="delete" value="delete" />
     23            <input class="btn" type="submit" name="manage" value="manage" />
     24            <input class="btn" type="submit" name="delete" value="delete" />
    3125        </form>
    3226      </td>
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/theming.py

    r7321 r7459  
    2626from waeup.sirp.browser.interfaces import ITheme
    2727from waeup.sirp.browser.resources import (
    28     waeuptheme_red1, waeuptheme_gray1, waeuptheme_empty,
    29     waeup_base_css,
     28    waeuptheme_empty, waeup_base_css,
    3029    )
    3130
     
    3938        return [waeup_base_css]
    4039
    41 class SIRPThemeRed1(grok.GlobalUtility):
    42     grok.implements(ITheme)
    43     grok.name('red waeup theme')
     40#class SIRPThemeRed1(grok.GlobalUtility):
     41#    grok.implements(ITheme)
     42#    grok.name('red waeup theme')
    4443
    45     description = u"Uli's Red Theme"
     44#    description = u"Uli's Red Theme"
    4645
    47     def getResources(self):
    48         return [waeuptheme_red1]
     46#    def getResources(self):
     47#        return [waeuptheme_red1]
    4948
    50 class SIRPThemeGray1(grok.GlobalUtility):
    51     grok.implements(ITheme)
    52     grok.name('gray waeup theme')
     49#class SIRPThemeGray1(grok.GlobalUtility):
     50#    grok.implements(ITheme)
     51#    grok.name('gray waeup theme')
    5352
    54     description = u"Henrik's Gray Theme"
     53#    description = u"Henrik's Gray Theme"
    5554
    56     def getResources(self):
    57         return [waeuptheme_gray1]
     55#    def getResources(self):
     56#        return [waeuptheme_gray1]
    5857
    5958class SIRPThemeEmpty(grok.GlobalUtility):
  • main/waeup.sirp/trunk/src/waeup/sirp/browser/viewlets.py

    r7334 r7459  
    195195        breadcrumbs = IBreadcrumbContainer(self.view)
    196196        for breadcrumb in breadcrumbs:
    197             yield dict(
    198                 title = breadcrumb.title,
    199                 url = self.view.url(breadcrumb.context, breadcrumb.target)
    200                 )
     197            if breadcrumb.target:
     198                yield dict(
     199                    title = breadcrumb.title,
     200                    url = self.view.url(breadcrumb.context, breadcrumb.target)
     201                    )
    201202
    202203
     
    264265        if self.url:
    265266            if self.icon_url:
    266                 return u'<div class="portlet"><a href="%s"><img src="%s" /> %s </a></div>' % (
     267                return u'<li><a href="%s"><img src="%s" /> %s </a></li>' % (
    267268                    self.url, self.icon_url, self.title)
    268269            else:
    269                 return u'<div class="portlet"><a href="%s">%s </a></div>' % (
     270                return u'<li><a href="%s">%s </a></li>' % (
    270271                    self.url, self.title)
    271272        else:
     
    290291            return ''
    291292        url = self.view.url(grok.getSite(), self.link)
    292         return u'<div class="portlet"><a href="%s">%s</a></div>' % (
     293        return u'<li"><a href="%s">%s</a></li>' % (
    293294                url, self.text)
    294295
     
    325326    def render(self):
    326327        url = self.view.url(grok.getSite(), self.link)
    327         return u'<div class="portlet"><a href="%s">%s</a></div>' % (
     328        return u'<li><a href="%s">%s</a></li>' % (
    328329                url, self.text)
    329330
  • main/waeup.sirp/trunk/src/waeup/sirp/hostels/browser.py

    r7332 r7459  
    2929from waeup.sirp.browser.viewlets import (
    3030    ManageActionButton, PrimaryNavTab)
    31 from waeup.sirp.browser.layout import jsaction, JSAction
     31from waeup.sirp.browser.layout import jsaction, action
    3232from waeup.sirp.interfaces import ISIRPObject
    3333from waeup.sirp.hostels.vocabularies import NOT_OCCUPIED
     
    141141        return
    142142
    143     @grok.action('Add hostel', validator=NullValidator)
     143    @action('Add hostel', validator=NullValidator)
    144144    def addSubunit(self, **data):
    145145        self.redirect(self.url(self.context, 'addhostel'))
     
    158158    pnav = 5
    159159
    160     @grok.action('Create hostel')
     160    @action('Create hostel')
    161161    def addHostel(self, **data):
    162162        hostel = Hostel()
     
    230230        return
    231231
    232     @grok.action('Save')
     232    @action('Save')
    233233    def save(self, **data):
    234234        msave(self, **data)
    235235        return
    236236
    237     @grok.action('Update all beds')
     237    @action('Update all beds')
    238238    def updateBeds(self, **data):
    239239        removed, added, modified, modified_beds = self.context.updateBeds()
     
    245245        return
    246246
    247     @grok.action('Switch reservation of selected beds')
     247    @action('Switch reservation of selected beds')
    248248    def switchReservations(self, **data):
    249249        form = self.request.form
     
    273273        return
    274274
    275     @grok.action('Release selected beds')
     275    @action('Release selected beds')
    276276    def releaseBeds(self, **data):
    277277        form = self.request.form
     
    316316            self.context.__parent__.hostel_name, co[1], co[2], co[3])
    317317
    318     @grok.action('Save')
     318    @action('Save')
    319319    def save(self, **data):
    320320        msave(self, **data)
  • main/waeup.sirp/trunk/src/waeup/sirp/hostels/browser_templates/containermanagepage.pt

    r6959 r7459  
    11<h2 i18n:translate="" tal:condition="view/label" tal:content="view/label">Label</h2>
    2 <div class="form-status" tal:define="status view/status" tal:condition="status"> Form Status:
     2<div class="alert-message error" tal:define="status view/status" tal:condition="status"> Form Status:
    33  <span i18n:translate="" tal:content="view/status"> Form status summary
    44  </span>
    55</div>
    6 <form action="." tal:attributes="action request/URL" method="POST" class="edit-form" enctype="multipart/form-data">
    7   <table class="zebra">
     6<form action="." tal:attributes="action request/URL" method="POST" enctype="multipart/form-data">
     7  <table>
    88    <thead>
    99      <tr>
     
    2525    </tbody>
    2626  </table>
    27   <div class="actionButtons" tal:condition="view/availableActions">
     27  <div tal:condition="view/availableActions">
    2828    <span tal:repeat="action view/actions" tal:omit-tag="">
    2929      <input tal:replace="structure action/render"/>
  • main/waeup.sirp/trunk/src/waeup/sirp/hostels/browser_templates/containerpage.pt

    r6959 r7459  
    55</div>
    66
    7 <table class="zebra">
     7<table>
    88  <thead>
    99    <tr>
  • main/waeup.sirp/trunk/src/waeup/sirp/hostels/browser_templates/hostelmanagepage.pt

    r7068 r7459  
    33  tal:content="view/label">Label</h2>
    44
    5   <div class="form-status"
     5  <div class="alert-message error"
    66      tal:define="status view/status"
    77      tal:condition="status">
     
    1818
    1919  <form action="." tal:attributes="action request/URL" method="POST"
    20         class="edit-form" enctype="multipart/form-data">
     20        enctype="multipart/form-data">
    2121
    22   <div id="tabs">
    23     <ul>
    24       <li><a href="#tab-1"><span>Hostel Data</span></a></li>
    25       <li><a href="#tab-2"><span>Beds</span></a></li>
    26     </ul>
     22  <ul class="tabs" data-tabs="tabs">
     23    <li class="active"><a href="#tab-1"><span>Hostel Data</span></a></li>
     24    <li><a href="#tab-2"><span>Beds</span></a></li>
     25  </ul>
    2726
    28     <div id="tab-1">
    29       <table class="zebra">
     27  <div class="tab-content">
     28    <div id="tab-1" class="active">
     29      <table class="form-table">
    3030      <tbody>
    3131      <tal:block repeat="widget view/widgets">
    3232        <tr>
    33           <td class="label">
    34             <label tal:attributes="for widget/name">
    35               <span class="required" tal:condition="widget/required">*</span>
    36               <span i18n:translate="" tal:content="widget/label">label</span>:
    37             </label>
     33          <td class="fieldname">
     34            <span class="required" tal:condition="widget/required">*</span>
     35            <span i18n:translate="" tal:content="widget/label">label</span>:
    3836          </td>
    39           <td class="field">
     37          <td>
    4038            <span class="widget" tal:content="structure widget">
    4139              <input type="text" />
     
    4543            </tal:error>
    4644            <tal:hint tal:condition="widget/hint">
    47               <span class="hint" tal:content="structure widget/hint">hint</span>
     45              <span tal:content="structure widget/hint">hint</span>
    4846            </tal:hint>
    4947          </td>
     
    5250      </tbody>
    5351      </table>
    54       <div class="actionButtons" tal:condition="view/availableActions">
     52      <div tal:condition="view/availableActions">
    5553        <span tal:repeat="action view/actions"
    5654              tal:omit-tag="">
     
    9795      </table>
    9896
    99       <div class="actionButtons" tal:condition="view/availableActions">
     97      <div tal:condition="view/availableActions">
    10098        <span tal:repeat="action view/actions"
    10199              tal:omit-tag="">
  • main/waeup.sirp/trunk/src/waeup/sirp/interfaces.py

    r7404 r7459  
    5353def year_range():
    5454    curr_year = datetime.now().year
    55     return range(curr_year - 2, curr_year + 5)
     55    return range(curr_year - 4, curr_year + 5)
    5656
    5757def academic_sessions():
     
    292292
    293293    title = schema.TextLine(
    294         title = u'Name',
    295         description = u'Real name of user',
     294        title = u'Full Name',
    296295        required = False,)
    297296
     
    359358        title = u'Name of University',
    360359        default = u'Sample University',
     360        required = True,
     361        )
     362
     363    acronym = schema.TextLine(
     364        title = u'Abbreviated Title of University',
     365        default = u'WAeUP.SIRP',
    361366        required = True,
    362367        )
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser.py

    r7424 r7459  
    3636    SIRPPage, SIRPEditFormPage, SIRPAddFormPage, SIRPDisplayFormPage,
    3737    ContactAdminForm, SIRPForm)
    38 from waeup.sirp.browser.interfaces import ICaptchaManager
     38from waeup.sirp.browser.interfaces import ICaptchaManager, IBreadcrumbIgnorable
    3939from waeup.sirp.browser.breadcrumbs import Breadcrumb
    4040from waeup.sirp.browser.resources import datepicker, datatable, tabs, warning
    4141from waeup.sirp.browser.viewlets import (
    4242    ManageActionButton, AddActionButton)
    43 from waeup.sirp.browser.layout import jsaction, JSAction
     43from waeup.sirp.browser.layout import jsaction, action, UtilityView
    4444from waeup.sirp.interfaces import (
    4545    ISIRPObject, IUserAccount, IExtFileStore, IPasswordValidator, IContactForm,
     
    6464from waeup.sirp.applicants.interfaces import IApplicantBaseData
    6565from waeup.sirp.hostels.hostel import NOT_OCCUPIED
     66from waeup.sirp.utils.helpers import get_current_principal
    6667
    6768def write_log_message(view, message):
     
    9697    grok.context(IStudentsContainer)
    9798    title = 'Students'
     99    #grok.implements(IBreadcrumbIgnorable)
     100
     101    @property
     102    def target(self):
     103        user = get_current_principal()
     104        #import pdb; pdb.set_trace()
     105        if getattr(user, 'user_type', None) == 'student':
     106            return None
     107        return self.viewname
    98108
    99109class StudentBreadcrumb(Breadcrumb):
     
    131141    grok.context(IStudentAccommodation)
    132142    title = 'Accommodation'
    133 
    134     #@property
    135     #def target(self):
    136     #    prm = get_principal_role_manager()
    137     #    principal = get_current_principal()
    138     #    roles = [x[0] for x in prm.getRolesForPrincipal(principal.id)]
    139     #    if 'waeup.Student' in roles:
    140     #        return 'index'
    141     #    else:
    142     #        return 'manage'
    143143
    144144class BedTicketBreadcrumb(Breadcrumb):
     
    293293            if not self.hitlist:
    294294                self.flash('No student found.')
     295            if 'remove' in form:
     296                self.flash('No item selected.')
    295297            return
    296298        entries = form['entries']
     
    328330    pnav = 4
    329331
    330     @grok.action('Create student record')
     332    @action('Create student record', style='primary')
    331333    def addStudent(self, **data):
    332334        student = createObject(u'waeup.Student')
     
    383385        return u'Send message to %s' % self.context.display_fullname
    384386
    385     @grok.action('Send message now')
     387    @action('Send message now', style='primary')
    386388    def send(self, *args, **data):
    387389        try:
     
    442444            dict(name=x, title=y) for x, y in allowed_transitions]
    443445
    444     @grok.action('Save')
     446    @action('Save', style='primary')
    445447    def save(self, **data):
    446448        form = self.request.form
     
    576578        return super(StudentClearanceManageFormPage, self).update()
    577579
    578     @grok.action('Save')
     580    @action('Save', style='primary')
    579581    def save(self, **data):
    580582        msave(self, **data)
    581583        return
    582584
    583 class StudentClearPage(grok.View):
     585class StudentClearPage(UtilityView, grok.View):
    584586    """ Clear student by clearance officer
    585587    """
     
    600602        return
    601603
    602 class StudentRejectClearancePage(grok.View):
     604class StudentRejectClearancePage(UtilityView, grok.View):
    603605    """ Reject clearance by clearance officers
    604606    """
     
    662664    pnav = 4
    663665
    664     @grok.action('Save')
     666    @action('Save', style='primary')
    665667    def save(self, **data):
    666668        msave(self, **data)
     
    732734        return
    733735
    734     @grok.action('Save')
     736    @action('Save', style='primary')
    735737    def save(self, **data):
    736738        msave(self, **data)
     
    744746            yield(dict(code=code, title=title))
    745747
    746     @grok.action('Add study level')
     748    @action('Add study level')
    747749    def addStudyLevel(self, **data):
    748750        level_code = self.request.form.get('addlevel', None)
     
    754756        except KeyError:
    755757            self.flash('This level exists.')
     758        self.flash('Study level has been added.')
    756759        self.redirect(self.url(self.context, u'@@manage')+'#tab-2')
    757760        return
     
    821824    target = 'course_registration.pdf'
    822825
    823 class ExportPDFCourseRegistrationSlipPage(grok.View):
     826class ExportPDFCourseRegistrationSlipPage(UtilityView, grok.View):
    824827    """Deliver a PDF slip of the context.
    825828    """
     
    921924        return 'Manage study level %s' % self.context.level_title
    922925
    923     @grok.action('Save')
     926    @action('Save', style='primary')
    924927    def save(self, **data):
    925928        msave(self, **data)
    926929        return
    927930
    928     @grok.action('Add course ticket')
     931    @action('Add course ticket')
    929932    def addCourseTicket(self, **data):
    930933        self.redirect(self.url(self.context, '@@add'))
     
    954957        return
    955958
    956 class ValidateCoursesPage(grok.View):
     959class ValidateCoursesPage(UtilityView, grok.View):
    957960    """ Validate course list by course adviser
    958961    """
     
    975978        return
    976979
    977 class RejectCoursesPage(grok.View):
     980class RejectCoursesPage(UtilityView, grok.View):
    978981    """ Reject course list by course adviser
    979982    """
     
    10221025        return 'Study Level %s' % self.context.level_title
    10231026
    1024     @grok.action('Add course ticket')
     1027    @action('Add course ticket')
    10251028    def addCourseTicket(self, **data):
    10261029        ticket = CourseTicket()
     
    10461049        return
    10471050
    1048     @grok.action('Cancel')
     1051    @action('Cancel')
    10491052    def cancel(self, **data):
    10501053        self.redirect(self.url(self.context))
     
    10951098        return 'Manage course ticket %s' % self.context.code
    10961099
    1097     @grok.action('Save')
     1100    @action('Save', style='primary')
    10981101    def save(self, **data):
    10991102        msave(self, **data)
     
    11761179        return
    11771180
    1178     @grok.action('Add online payment ticket')
     1181    @action('Add online payment ticket')
    11791182    def addPaymentTicket(self, **data):
    11801183        self.redirect(self.url(self.context, '@@addop'))
     
    12001203    pnav = 4
    12011204   
    1202     @grok.action('Create ticket')
     1205    @action('Create ticket', style='primary')
    12031206    def createTicket(self, **data):
    12041207        p_category = data['p_category']
     
    12961299        return self.view.url(self.view.context, self.target)
    12971300
    1298 class OnlinePaymentCallbackPage(grok.View):
     1301class OnlinePaymentCallbackPage(UtilityView, grok.View):
    12991302    """ Callback view
    13001303    """
     
    13451348        return
    13461349
    1347 class ExportPDFPaymentSlipPage(grok.View):
     1350class ExportPDFPaymentSlipPage(UtilityView, grok.View):
    13481351    """Deliver a PDF slip of the context.
    13491352    """
     
    15761579    target = 'bed_allocation.pdf'
    15771580
    1578 class ExportPDFBedTicketSlipPage(grok.View):
     1581class ExportPDFBedTicketSlipPage(UtilityView, grok.View):
    15791582    """Deliver a PDF slip of the context.
    15801583    """
     
    16081611    target = 'relocate'
    16091612
    1610 class BedTicketRelocationPage(grok.View):
     1613class BedTicketRelocationPage(UtilityView, grok.View):
    16111614    """ Callback view
    16121615    """
     
    17351738    pnav = 4
    17361739
    1737     @grok.action('Save')
     1740    @action('Save', style='primary')
    17381741    def save(self, **data):
    17391742        msave(self, **data)
     
    17511754    pnav = 4
    17521755
    1753     @grok.action('Save')
     1756    @action('Save', style='primary')
    17541757    def save(self, **data):
    17551758        form = self.request.form
     
    18981901        return super(StudentClearanceEditFormPage, self).update()
    18991902
    1900     @grok.action('Save')
     1903    @action('Save', style='primary')
    19011904    def save(self, **data):
    19021905        self.applyData(self.context, **data)
     
    19111914        return False
    19121915
    1913     @grok.action('Save and request clearance')
     1916    @action('Save and request clearance', style='primary')
    19141917    def requestClearance(self, **data):
    19151918        self.applyData(self.context, **data)
     
    20632066        return
    20642067
    2065     @grok.action('Create course list now')
     2068    @action('Create course list now', style='primary')
    20662069    def addStudyLevel(self, **data):
    20672070        studylevel = StudentStudyLevel()
     
    21272130        return total_credits
    21282131
    2129     @grok.action('Add course ticket')
     2132    @action('Add course ticket')
    21302133    def addCourseTicket(self, **data):
    21312134        self.redirect(self.url(self.context, 'ctadd'))
     
    21572160        return
    21582161
    2159     @grok.action('Register course list')
     2162    @action('Register course list', style='primary')
    21602163    def RegisterCourses(self, **data):
    21612164        IWorkflowInfo(self.context.getStudent()).fireTransition('register_courses')
     
    21722175        'grade', 'score', 'core_or_elective', 'automatic')
    21732176
    2174     @grok.action('Add course ticket')
     2177    @action('Add course ticket')
    21752178    def addCourseTicket(self, **data):
    21762179        ticket = CourseTicket()
     
    22112214        return
    22122215
    2213     @grok.action('Get login credentials')
     2216    @action('Get login credentials', style='primary')
    22142217    def request(self, **data):
    22152218        if not self.captcha_result.is_valid:
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/accommodationmanagepage.pt

    r7254 r7459  
    33tal:content="view/label">Label</h2>
    44
    5 <div class="form-status"
     5<div class="alert-message error"
    66    tal:define="status view/status"
    77    tal:condition="status">
     
    1313
    1414<form action="." tal:attributes="action request/URL" method="POST"
    15       class="edit-form" enctype="multipart/form-data">
     15      enctype="multipart/form-data">
    1616
    1717  <table class="display dataTableManage">
     
    4141  </table>
    4242
    43   <div class="actionButtons" tal:condition="view/availableActions">
     43  <div tal:condition="view/availableActions">
    4444    <span tal:repeat="action view/selected_actions"
    4545          tal:omit-tag="">
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/basemanagepage.pt

    r7134 r7459  
    44
    55<form action="." tal:attributes="action request/URL" method="post"
    6       class="edit-form" enctype="multipart/form-data">
     6      enctype="multipart/form-data">
    77
    8   <div class="form-status"
     8  <div class="alert-message error"
    99    tal:define="status view/status"
    1010    tal:condition="status">
     
    1515  </div>
    1616
    17   <div id="tabs">
    18     <ul>
    19       <li><a href="#tab-1"><span>Base Data</span></a></li>
    20       <li><a href="#tab-2"><span>Passport Picture</span></a></li>
    21     </ul>
     17  <ul class="tabs" data-tabs="tabs">
     18    <li class="active"><a href="#tab-1"><span>Base Data</span></a></li>
     19    <li><a href="#tab-2"><span>Passport Picture</span></a></li>
     20  </ul>
    2221
    23     <div id="tab-1">
    24       <table class="form-fields zebra">
     22  <div class="tab-content">
     23    <div id="tab-1" class="active">
     24      <table class="form-table">
    2525        <tbody>
    2626          <tal:block repeat="widget view/widgets">
    2727            <tr>
    28               <td class="label">
    29                 <label tal:attributes="for widget/name">
    30                   <span class="required" tal:condition="widget/required">*</span>
    31                   <span i18n:translate="" tal:content="widget/label">label</span>:
    32                 </label>
     28              <td class="fieldname">
     29                <span tal:condition="widget/required">*</span>
     30                <span i18n:translate="" tal:content="widget/label">label</span>:
    3331              </td>
    34               <td class="field">
    35                 <span class="widget" tal:content="structure widget">
     32              <td>
     33                <span tal:content="structure widget">
    3634                  <input type="text" />
    3735                </span>
     
    4038                </tal:error>
    4139                <tal:hint tal:condition="widget/hint">
    42                   <span class="hint" tal:content="structure widget/hint">hint</span>
     40                  <span tal:content="structure widget/hint">hint</span>
    4341                </tal:hint>
    4442              </td>
     
    4644          </tal:block>
    4745          <tr>
    48             <td class="label"><label>Password:</label></td>
     46            <td class="fieldname">Password:</td>
    4947            <td>
    5048              <input name="password" type="password"  />
     
    5250          </tr>
    5351          <tr>
    54             <td class="label"><label>Retype password:</label></td>
     52            <td class="fieldname">Retype password:</td>
    5553            <td>
    5654              <input name="control_password" type="password" />
     
    5856          </tr>
    5957          <tr>
    60             <td class="label"><label>Registration Transition:</label></td>
     58            <td class="fieldname">Registration Transition:</td>
    6159            <td>
    6260              <select id="transition" name="transition">
     
    7270      </table>
    7371
    74       <div class="actionButtons" tal:condition="view/availableActions">
     72      <div tal:condition="view/availableActions">
    7573        <input tal:repeat="action view/actions"
    7674               tal:replace="structure action/render"
     
    8078
    8179    <div id="tab-2">
    82       <h2>Upload passport picture</h2>
    83       <table class="form-fields zebra">
     80      <table class="form-table">
    8481        <tbody>
    8582          <tal:files content="structure provider:files" />
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/basepage.pt

    r7384 r7459  
    33    tal:content="view/label">Label</h2>
    44
    5 <table class="zebra">
     5<table class="form-table">
    66  <tbody>
    77    <tal:block repeat="widget view/widgets">
     
    1616    </tal:block>
    1717    <tr>
    18       <td class="fieldname" width="33%">
     18      <td class="fieldname">
    1919          Password:
    2020      </td>
     
    2626  </tbody>
    2727  <tfoot>
    28     <tr class="controls">
    29       <td colspan="2" class="align-right">
     28    <tr>
     29      <td>
    3030        <input tal:repeat="action view/actions"
    3131               tal:replace="structure action/render" />
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/change_password.pt

    r7144 r7459  
    44
    55<form action="." tal:attributes="action request/URL" method="post"
    6       class="edit-form" enctype="multipart/form-data">
     6      enctype="multipart/form-data">
    77
    88  <input type="hidden" name="student_id" value=""
    99         tal:attributes="value context/student_id" />
    1010
    11   <table class="form-fields zebra">
     11  <table class="form-table">
    1212    <tbody>
    1313      <tr>
    14         <td class="label"><label>Password:</label></td>
     14        <td class="fieldname">Password:</td>
    1515        <td>
    1616          <input name="change_password" type="password"  />
     
    1818      </tr>
    1919      <tr>
    20         <td class="label"><label>Retype password:</label></td>
     20        <td class="fieldname">Retype password:</td>
    2121        <td>
    2222          <input name="change_password_repeat" type="password" />
     
    2626  </table>
    2727
    28   <div class="actionButtons" tal:condition="view/availableActions">
     28  <div tal:condition="view/availableActions">
    2929    <input tal:repeat="action view/actions"
    3030           tal:replace="structure action/render"
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/changepw.pt

    r7369 r7459  
    11<form action="." tal:attributes="action request/URL" method="post"
    2       class="edit-form" enctype="multipart/form-data">
     2      enctype="multipart/form-data">
    33
    44  <h2 i18n:translate=""
     
    66    tal:content="view/label">Label</h2>
    77
    8   <div class="form-status"
     8  <div class="alert-message error"
    99    tal:define="status view/status"
    1010    tal:condition="status">
     
    1515  </div>
    1616
    17   <table class="zebra">
     17  <table class="form-table">
    1818    <tbody>
    1919      <tal:block repeat="widget view/widgets">
    2020        <tr>
    21           <td class="label">
    22             <label tal:attributes="for widget/name">
    23               <span class="required" tal:condition="widget/required">*</span>
     21          <td class="fieldname">
     22              <span tal:condition="widget/required">*</span>
    2423              <span i18n:translate="" tal:content="widget/label">label</span>:
    25             </label>
    2624          </td>
    27           <td class="field">
    28             <span class="widget" tal:content="structure widget">
     25          <td>
     26            <span tal:content="structure widget">
    2927              <input type="text" />
    3028            </span>
     
    3331            </tal:error>
    3432            <tal:hint tal:condition="widget/hint">
    35               <span class="hint" tal:content="structure widget/hint">hint</span>
     33              <span tal:content="structure widget/hint">hint</span>
    3634            </tal:hint>
    3735          </td>
     
    5149  </table>
    5250
    53   <div class="actionButtons" tal:condition="view/availableActions">
     51  <div tal:condition="view/availableActions">
    5452    <input tal:repeat="action view/actions"
    5553           tal:replace="structure action/render"
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/clearanceeditpage.pt

    r7134 r7459  
    44
    55<form action="." tal:attributes="action request/URL" method="post"
    6       class="edit-form" enctype="multipart/form-data">
     6      enctype="multipart/form-data">
    77
    8   <div class="form-status"
     8  <div class="alert-message error"
    99    tal:define="status view/status"
    1010    tal:condition="status">
     
    1515  </div>
    1616
    17   <div id="tabs">
    18     <ul>
    19       <li><a href="#tab-1"><span>Clearance Data</span></a></li>
    20       <li><a href="#tab-2"><span>Scans</span></a></li>
    21     </ul>
    22 
    23     <div id="tab-1">
    24       <table class="form-fields zebra">
     17  <ul class="tabs" data-tabs="tabs">
     18    <li class="active"><a href="#tab-1"><span>Clearance Data</span></a></li>
     19    <li><a href="#tab-2"><span>Scans</span></a></li>
     20  </ul>
     21  <div class="tab-content">
     22    <div id="tab-1" class="active">
     23      <table class="form-table">
    2524        <tbody>
    2625          <tal:block repeat="widget view/widgets">
    2726            <tr>
    28               <td class="label">
    29                 <label tal:attributes="for widget/name">
    30                   <span class="required" tal:condition="widget/required">*</span>
     27              <td class="fieldname">
     28                  <span tal:condition="widget/required">*</span>
    3129                  <span i18n:translate="" tal:content="widget/label">label</span>:
    32                 </label>
    3330              </td>
    34               <td class="field">
    35                 <span class="widget" tal:content="structure widget">
     31              <td>
     32                <span tal:content="structure widget">
    3633                  <input type="text" />
    3734                </span>
     
    4037                </tal:error>
    4138                <tal:hint tal:condition="widget/hint">
    42                   <span class="hint" tal:content="structure widget/hint">hint</span>
     39                  <span tal:content="structure widget/hint">hint</span>
    4340                </tal:hint>
    4441              </td>
     
    4845      </table>
    4946
    50       <div class="actionButtons" tal:condition="view/availableActions">
     47      <div tal:condition="view/availableActions">
    5148        <input tal:repeat="action view/actions"
    5249               tal:replace="structure action/render"
     
    5653
    5754    <div id="tab-2">
    58       <h2>Upload scans</h2>
    59       <table class="form-fields zebra">
     55      <table class="form-table">
    6056        <tbody>
    6157          <tal:files content="structure provider:files" />
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/containermanagepage.pt

    r7364 r7459  
    44<br />
    55
    6   <input type="submit" name="search" value="Search" />
     6  <input class="btn primary" type="submit" name="search" value="Search" />
    77  for students
    88
     
    4848    </table>
    4949   
    50     <div class="actionButtons">
    51         <input type="submit" name="remove" value="Remove selected"
    52                onclick="return confirmPost('Are you sure?')"/>
    53     </div>
     50    <input type="submit" name="remove" value="Remove selected" class="btn"
     51           onclick="return confirmPost('Are you sure?')"/>
    5452
    5553  </div>
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/containerpage.pt

    r7364 r7459  
    44<br />
    55
    6   <input type="submit" name="search" value="Search" />
     6  <input class="btn primary" type="submit" name="search" value="Search" />
    77  for students
    88
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/courseticketmanagepage.pt

    r6796 r7459  
    11<form action="." tal:attributes="action request/URL" method="post"
    2       class="edit-form" enctype="multipart/form-data">
     2      enctype="multipart/form-data">
    33
    44  <h2 i18n:translate=""
     
    66    tal:content="view/label">Label</h2>
    77
    8   <div class="form-status"
     8  <div class="alert-message error"
    99    tal:define="status view/status"
    1010    tal:condition="status">
     
    1515  </div>
    1616
    17 
    18   <table class="zebra">
     17  <table class="form-table">
    1918    <tbody>
    2019      <tr>
     
    6867      <tal:block repeat="widget view/widgets">
    6968        <tr>
    70           <td class="label">
    71             <label tal:attributes="for widget/name">
    72               <span class="required" tal:condition="widget/required">*</span>
     69          <td class="fieldname">
     70              <span tal:condition="widget/required">*</span>
    7371              <span i18n:translate="" tal:content="widget/label">label</span>:
    74             </label>
    7572          </td>
    76           <td class="field">
    77             <span class="widget" tal:content="structure widget">
     73          <td>
     74            <span tal:content="structure widget">
    7875              <input type="text" />
    7976            </span>
     
    8279            </tal:error>
    8380            <tal:hint tal:condition="widget/hint">
    84               <span class="hint" tal:content="structure widget/hint">hint</span>
     81              <span tal:content="structure widget/hint">hint</span>
    8582            </tal:hint>
    8683          </td>
     
    8986    </tbody>
    9087  </table>
    91   <div class="actionButtons" tal:condition="view/availableActions">
     88  <div tal:condition="view/availableActions">
    9289    <input tal:repeat="action view/actions"
    9390           tal:replace="structure action/render"
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/courseticketpage.pt

    r6804 r7459  
    33    tal:content="view/label">Label</h2>
    44
    5 <table class="zebra">
     5<table class="form-table">
    66  <tbody>
    77    <tr>
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/enterpin.pt

    r6935 r7459  
    22    tal:content="view/label">Label</h2>
    33<form method="POST">
    4   <table>
     4  <table class="form-table">
    55    <tbody>
    66      <tr><td>
    7         <label for="ac_series">Activation Code:</label>
     7        Activation Code:
    88        </td><td>
    99        <span tal:replace="view/ac_prefix">PIN Prefix</span> -
     
    1818      <tr>
    1919        <td colspan="2">
    20           <input type="submit" name="SUBMIT"
     20          <input type="submit" name="SUBMIT" class="btn primary"
    2121                 tal:attributes="value view/buttonname" />
    22                  </td>
     22        </td>
    2323      </tr>
    2424    </tbody>
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/filedisplay.pt

    r7319 r7459  
    11<tr tal:condition = "viewlet/file_exists">
    2   <td class="label">
    3     <label i18n:translate="">
    4         <span tal:replace="viewlet/label">FILENAME</span>:
    5     </label>
     2  <td class="fieldname">
     3    <span tal:replace="viewlet/label">FILENAME</span>:
    64  </td>
    7   <td class="field">
     5  <td>
    86    <span class="widget">
    97      <a tal:attributes="href viewlet/download_name"
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/filesuploadpage.pt

    r7127 r7459  
    44
    55<form action="." tal:attributes="action request/URL" method="post"
    6       class="edit-form" enctype="multipart/form-data">
    7   <table class="zebra">
     6      enctype="multipart/form-data">
     7  <table class="form-table">
    88    <tbody>
    99      <tal:files content="structure provider:files" />
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/fileupload.pt

    r7319 r7459  
    11<tr>
    2   <td class="label">
    3     <label i18n:translate="" tal:attributes="for viewlet/input_name">
    4         <span tal:replace="viewlet/label">FILENAME</span>:
    5     </label>
     2  <td class="fieldname">
     3    <span tal:replace="viewlet/label">FILENAME</span>:
    64  </td>
    7   <td class="field">
     5  <td>
    86    <span class="widget">
    97
     
    1715      <br />
    1816      <input type="file" tal:attributes="name viewlet/input_name"/>
    19       <br />
     17      <br /><br />
    2018      <input type="submit" tal:condition="viewlet/file_exists"
    2119             tal:attributes="id python:('delete_%s' % viewlet.input_name);
    2220                name python:('delete_%s' % viewlet.input_name)"
    23              value="Delete attachment" class="button" />
     21             value="Delete attachment" class="btn error" />
    2422      <input type="submit"
    2523               tal:attributes="id python:('upload_%s' % viewlet.input_name);
    2624                  name python:('upload_%s' % viewlet.input_name)"
    27                value="Upload new file" class="button" />
     25               value="Upload new file" class="btn primary" />
    2826      <span i18n:translate="">
    2927        Max. file size:
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/imagedisplay.pt

    r7414 r7459  
    11<tr>
    2   <td class="label">
    3     <label i18n:translate="">
     2  <td class="fieldname">
    43        <span tal:replace="viewlet/label">FILENAME</span>:
    5     </label>
    64  </td>
    7   <td class="field">
    8     <span class="widget">
     5  <td>
    96      <img height="125px" tal:attributes="src viewlet/download_name" />
    107      <br />
    11     </span>
    128  </td>
    139</tr>
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/imageupload.pt

    r7414 r7459  
    11<tr>
    2   <td class="label">
    3     <label i18n:translate="" tal:attributes="for viewlet/input_name">
    4         <span tal:replace="viewlet/label">FILENAME</span>:
    5     </label>
     2  <td class="fieldname">
     3    <span tal:replace="viewlet/label">FILENAME</span>:
    64  </td>
    7   <td class="field">
     5  <td>
    86    <span class="widget">
    97      <img align="middle" height="125px"
     
    1210       tal:attributes="id python:('delete_%s' % viewlet.input_name);
    1311          name python:('delete_%s' % viewlet.input_name)"
    14        value="Delete" class="button" />
     12       value="Delete" class="btn error" />
    1513      <br /><br />
    1614      <input type="file" tal:attributes="name viewlet/input_name"/>
     15      <br /><br />
    1716      <input type="submit"
    1817               tal:attributes="id python:('upload_%s' % viewlet.input_name);
    1918                  name python:('upload_%s' % viewlet.input_name)"
    20                value="Upload" class="button" />
     19               value="Upload" class="btn primary" />
    2120      <span i18n:translate="">
    2221        Max. file size:
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/paymentsmanagepage.pt

    r7254 r7459  
    33tal:content="view/label">Label</h2>
    44
    5 <div class="form-status"
     5<div class="alert-message error"
    66    tal:define="status view/status"
    77    tal:condition="status">
     
    1313
    1414<form action="." tal:attributes="action request/URL" method="POST"
    15       class="edit-form" enctype="multipart/form-data">
     15      enctype="multipart/form-data">
    1616
    1717  <table class="display dataTableManage">
     
    4646  </table>
    4747
    48   <div class="actionButtons" tal:condition="view/availableActions">
     48  <div tal:condition="view/availableActions">
    4949    <span tal:repeat="action view/actions"
    5050          tal:omit-tag="">
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/paymentspage.pt

    r7254 r7459  
    11<h2 tal:content="view/label">TITLE</h2>
    22
    3 <table class="zebra">
    4 <thead>
    5 </thead>
    63<table class="display dataTable">
    74  <thead>
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/setpassword.pt

    r6758 r7459  
    22    tal:content="view/label">Label</h2>
    33<form method="POST">
    4   <table>
     4  <table class="form-table">
    55    <tbody>
    6       <tr><td>
    7           <label for="reg_number">Registration Number:
    8           </label></td> <td>
     6      <tr>
     7      <td>
     8          Registration Number:
     9      </td>
     10      <td>
    911          <input name="reg_number" type="text" size="15" maxlength="15"
    1012                 value="" tal:attributes="value view/reg_number"/>
    11       </td></tr>
     13      </td>
     14      </tr>
    1215      <tr>
    1316        <td>
    14           <label for="ac_series">Access Code:
    15           </label></td> <td>
     17          Access Code:
     18        </td>
     19        <td>
    1620          <span tal:replace="view/ac_prefix">PIN Prefix
    1721          </span> -
     
    2327      <tr>
    2428        <td colspan="2">
    25         <input type="submit" name="SUBMIT"
     29        <input type="submit" name="SUBMIT" class="btn primary"
    2630               value="Show Student Id and set password" /> </td>
    2731      </tr>
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studentpage.pt

    r6635 r7459  
    33    tal:content="view/label">Label</h2>
    44
    5 <table class="zebra">
     5<table class="form-table">
    66  <tbody>
    77    <tal:block repeat="widget view/widgets">
     
    1717  </tbody>
    1818  <tfoot>
    19     <tr class="controls">
     19    <tr>
    2020      <td colspan="2" class="align-right">
    2121        <input tal:repeat="action view/actions"
     
    2424    </tr>
    2525  </tfoot>
    26 
    2726</table>
    2827
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studycoursemanagepage.pt

    r6794 r7459  
    33tal:content="view/label">Label</h2>
    44
    5 <div class="form-status"
     5<div class="alert-message error"
    66    tal:define="status view/status"
    77    tal:condition="status">
     
    1313
    1414<form action="." tal:attributes="action request/URL" method="POST"
    15       class="edit-form" enctype="multipart/form-data">
     15      enctype="multipart/form-data">
    1616
    17 <div id="tabs">
    18 <ul>
    19   <li><a href="#tab-1"><span>Study Course Data</span></a></li>
    20   <li><a href="#tab-2"><span>Study Levels</span></a></li>
    21 </ul>
    22    
    23 <div id="tab-1">       
    24   <table class="zebra">
    25   <tbody>
    26   <tal:block repeat="widget view/widgets">
    27     <tr>
    28       <td class="label">
    29         <label tal:attributes="for widget/name">
    30           <span class="required" tal:condition="widget/required">*</span>
    31           <span i18n:translate="" tal:content="widget/label">label</span>:
    32         </label>
    33       </td>
    34       <td class="field">
    35         <span class="widget" tal:content="structure widget">
    36           <input type="text" />
     17  <ul class="tabs" data-tabs="tabs">
     18    <li class="active"><a href="#tab-1"><span>Study Course Data</span></a></li>
     19    <li><a href="#tab-2"><span>Study Levels</span></a></li>
     20  </ul>
     21
     22  <div class="tab-content">
     23    <div id="tab-1" class="active">
     24      <table class="form-table">
     25      <tbody>
     26      <tal:block repeat="widget view/widgets">
     27        <tr>
     28          <td class="fieldname">
     29            <span class="required" tal:condition="widget/required">*</span>
     30            <span i18n:translate="" tal:content="widget/label">label</span>:
     31          </td>
     32          <td>
     33            <span tal:content="structure widget">
     34              <input type="text" />
     35            </span>
     36            <tal:error tal:condition="widget/error">
     37              <span tal:replace="structure widget/error">error</span>
     38            </tal:error>
     39            <tal:hint tal:condition="widget/hint">
     40              <span tal:content="structure widget/hint">hint</span>
     41            </tal:hint>
     42          </td>
     43        </tr>
     44      </tal:block>
     45      </tbody>
     46      </table>
     47      <div tal:condition="view/availableActions">
     48        <span tal:repeat="action view/actions"
     49              tal:omit-tag="">
     50          <input tal:condition="python:action.label in view.taboneactions"
     51                 tal:replace="structure action/render"/>
    3752        </span>
    38         <tal:error tal:condition="widget/error">
    39           <span tal:replace="structure widget/error">error</span>
    40         </tal:error>
    41         <tal:hint tal:condition="widget/hint">
    42           <span class="hint" tal:content="structure widget/hint">hint</span>
    43         </tal:hint>
    44       </td>
    45     </tr>
    46   </tal:block>
    47   </tbody>
    48   </table>
    49   <div class="actionButtons" tal:condition="view/availableActions">
    50     <span tal:repeat="action view/actions"
    51           tal:omit-tag="">
    52       <input tal:condition="python:action.label in view.taboneactions"
    53              tal:replace="structure action/render"/>
    54     </span>
     53      </div>
     54    </div>
     55
     56    <div id="tab-2">
     57      <h3>Study Levels (Course Lists)</h3>
     58      <table class="display dataTableManage">
     59        <thead>
     60          <tr>
     61            <th>&nbsp;</th><th>Level Code</th><th>Level Title</th>
     62          </tr>
     63        </thead>
     64        <tbody>
     65          <tr tal:repeat="cl context/values">
     66             <td>
     67              <input type="checkbox"
     68                         name="val_id"
     69                         tal:attributes="value cl/__name__" />
     70            </td>
     71            <td> <a tal:attributes="href cl/__name__">
     72              <span tal:content="cl/level">CODE</span></a>
     73            </td>
     74            <td>
     75              <span tal:content="cl/level_title">TITLE</span>
     76            </td>
     77          </tr>
     78        </tbody>
     79      </table>
     80
     81      <div tal:condition="view/availableActions">
     82        <span tal:repeat="action view/actions"
     83              tal:omit-tag="">
     84          <input tal:condition="python:action.label in view.tabtwoactions"
     85                 tal:replace="structure action/render"/>
     86        </span>
     87      </div>
     88      <br /><br /><br />
     89      <div>
     90        <span tal:condition="view/availableActions">
     91          <span tal:repeat="action view/actions"
     92                tal:omit-tag="">
     93            <input tal:condition="python:action.label in view.tabthreeactions"
     94                   tal:replace="structure action/render"/>
     95          </span>
     96        </span>
     97        <select id="addlevel" name="addlevel">
     98          <option tal:attributes="value level/code" tal:repeat="level view/level_dict">
     99            <span tal:replace="level/title">LEVELTITLE
     100          </span>
     101          </option>
     102        </select>
     103      </div>
     104    </div>
    55105  </div>
    56 </div>   
    57    
    58 <div id="tab-2">
    59   <h3>Study Levels (Course Lists)</h3>
    60   <table class="display dataTableManage">
    61     <thead>
    62       <tr>
    63         <th>&nbsp;</th><th>Level Code</th><th>Level Title</th>
    64       </tr>
    65     </thead>
    66     <tbody>
    67       <tr tal:repeat="cl context/values">
    68          <td>
    69           <input type="checkbox"
    70                  name="val_id"
    71                  tal:attributes="value cl/__name__" />
    72         </td>
    73         <td> <a tal:attributes="href cl/__name__">
    74           <span tal:content="cl/level">CODE</span></a>
    75         </td>
    76         <td>
    77           <span tal:content="cl/level_title">TITLE</span>
    78         </td>
    79       </tr>
    80     </tbody>
    81   </table>
    82 
    83   <div class="actionButtons" tal:condition="view/availableActions">
    84     <span tal:repeat="action view/actions"
    85           tal:omit-tag="">
    86       <input tal:condition="python:action.label in view.tabtwoactions"
    87              tal:replace="structure action/render"/>
    88     </span>
    89   </div>
    90   <br /><br /><br />
    91   <div>
    92     <span class="actionButtons" tal:condition="view/availableActions">
    93       <span tal:repeat="action view/actions"
    94             tal:omit-tag="">
    95         <input tal:condition="python:action.label in view.tabthreeactions"
    96                tal:replace="structure action/render"/>
    97       </span>
    98     </span>
    99     <select id="addlevel" name="addlevel">
    100       <option tal:attributes="value level/code" tal:repeat="level view/level_dict">
    101         <span tal:replace="level/title">LEVELTITLE
    102       </span>
    103       </option>
    104     </select>
    105   </div>
    106 
    107 
    108 
    109 </div>
    110 </div>
    111106</form> 
    112107
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studycoursepage.pt

    r7206 r7459  
    11<h2 tal:content="view/label">TITLE</h2>
    22
    3 <table class="zebra">
     3<table class="form-table">
    44<thead>
    55</thead>
     
    77  <tal:block repeat="widget view/widgets">
    88    <tr>
    9       <td>
    10         <label tal:attributes="for widget/name">
    11           <span i18n:translate=""
    12                          tal:content="widget/label">label</span>:
    13         </label>
     9      <td class="filedname">
     10        <span i18n:translate="" tal:content="widget/label">label</span>:
    1411      </td>
    15       <td class="field" tal:on-error="default">
     12      <td tal:on-error="default">
    1613        <div class="widget" tal:content="structure widget">
    1714          <input type="text" />
     
    2219    <tr>
    2320      <td>
    24         <label>
    2521          Study Mode:
    26         </label>
    2722      </td>
    2823      <td class="field">
     
    3429    <tr tal:condition="python: view.department is not None">
    3530      <td>
    36         <label>
    3731          Department:
    38         </label>
    3932      </td>
    4033      <td class="field">
     
    4740    <tr tal:condition="python: view.faculty is not None">
    4841      <td>
    49         <label>
    5042          Faculty:
    51         </label>
    5243      </td>
    5344      <td class="field">
     
    6455
    6556
    66 <table class="zebra">
     57<table>
    6758  <thead>
    6859    <tr>
     
    7263  </thead>
    7364  <tbody>
    74     <tr tal:repeat="value context/values">
     65    <tr class="gradeC" tal:repeat="value context/values">
    7566      <td> <a tal:attributes="href value/__name__">
    7667      <span tal:content="value/level">CODE</span></a></td>
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studyleveladdpage.pt

    r6806 r7459  
    33tal:content="view/label">Label</h2>
    44
    5 <div class="form-status"
     5<div class="alert-message error"
    66    tal:define="status view/status"
    77    tal:condition="status">
     
    1313
    1414<form action="." tal:attributes="action request/URL" method="POST"
    15       class="edit-form" enctype="multipart/form-data">
     15      enctype="multipart/form-data">
    1616
    1717  <p>Text to explain course registration procedure.</p>
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studyleveleditpage.pt

    r7310 r7459  
    33tal:content="view/label">Label</h2>
    44
    5 <div class="form-status"
     5<div class="alert-message error"
    66    tal:define="status view/status"
    77    tal:condition="status">
     
    1313
    1414<form action="." tal:attributes="action request/URL" method="POST"
    15       class="edit-form" enctype="multipart/form-data">
     15      enctype="multipart/form-data">
    1616
    1717  <h3>Course Tickets (Total Credits: <span tal:replace="view/total_credits">TOTAL</span>)</h3>
     
    3030  </thead>
    3131  <tbody>
    32     <tr tal:repeat="value context/values">
     32    <tr tal:repeat="value context/values" class="gradeC">
    3333       <td>
    3434        <input type="checkbox" name="val_id"
     
    4949  </table>
    5050
    51   <div class="actionButtons" tal:condition="view/availableActions">
     51  <div tal:condition="view/availableActions">
    5252    <span tal:repeat="action view/actions"
    5353          tal:omit-tag="">
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studylevelmanagepage.pt

    r7310 r7459  
    33tal:content="view/label">Label</h2>
    44
    5 <div class="form-status"
     5<div class="alert-message error"
    66    tal:define="status view/status"
    77    tal:condition="status">
     
    1313
    1414<form action="." tal:attributes="action request/URL" method="POST"
    15       class="edit-form" enctype="multipart/form-data">
     15      enctype="multipart/form-data">
    1616
    17 <div id="tabs">
    18 <ul>
    19   <li><a href="#tab-1"><span>Study Level Data</span></a></li>
    20   <li><a href="#tab-2"><span>Course Tickets</span></a></li>
    21 </ul>
    22    
    23 <div id="tab-1">       
    24   <table class="zebra">
    25   <tbody>
    26   <tal:block repeat="widget view/widgets">
    27     <tr>
    28       <td class="label">
    29         <label tal:attributes="for widget/name">
    30           <span class="required" tal:condition="widget/required">*</span>
    31           <span i18n:translate="" tal:content="widget/label">label</span>:
    32         </label>
    33       </td>
    34       <td class="field">
    35         <span class="widget" tal:content="structure widget">
    36           <input type="text" />
     17  <ul class="tabs" data-tabs="tabs">
     18    <li class="active"><a href="#tab-1"><span>Study Level Data</span></a></li>
     19    <li><a href="#tab-2"><span>Course Tickets</span></a></li>
     20  </ul>
     21
     22  <div class="tab-content">
     23    <div id="tab-1" class="active">
     24      <table class="form-table">
     25      <tbody>
     26      <tal:block repeat="widget view/widgets">
     27        <tr>
     28          <td class="fieldname">
     29            <span class="required" tal:condition="widget/required">*</span>
     30            <span i18n:translate="" tal:content="widget/label">label</span>:
     31          </td>
     32          <td>
     33            <span tal:content="structure widget">
     34              <input type="text" />
     35            </span>
     36            <tal:error tal:condition="widget/error">
     37              <span tal:replace="structure widget/error">error</span>
     38            </tal:error>
     39            <tal:hint tal:condition="widget/hint">
     40              <span tal:content="structure widget/hint">hint</span>
     41            </tal:hint>
     42          </td>
     43        </tr>
     44      </tal:block>
     45      </tbody>
     46      </table>
     47      <div tal:condition="view/availableActions">
     48        <span tal:repeat="action view/actions"
     49              tal:omit-tag="">
     50          <input tal:condition="python:action.label in view.taboneactions"
     51                 tal:replace="structure action/render"/>
    3752        </span>
    38         <tal:error tal:condition="widget/error">
    39           <span tal:replace="structure widget/error">error</span>
    40         </tal:error>
    41         <tal:hint tal:condition="widget/hint">
    42           <span class="hint" tal:content="structure widget/hint">hint</span>
    43         </tal:hint>
    44       </td>
    45     </tr>
    46   </tal:block>
    47   </tbody>
    48   </table>
    49   <div class="actionButtons" tal:condition="view/availableActions">
    50     <span tal:repeat="action view/actions"
    51           tal:omit-tag="">
    52       <input tal:condition="python:action.label in view.taboneactions"
    53              tal:replace="structure action/render"/>
    54     </span>
     53      </div>
     54    </div>
     55
     56    <div id="tab-2">
     57      <h3>Course Tickets</h3>
     58      <table class="display dataTableManage">
     59      <thead>
     60        <tr>
     61          <th>&nbsp;</th>
     62          <th>Sem.</th>
     63          <th>Code</th>
     64          <th>Title</th>
     65          <th>Department</th>
     66          <th>Faculty</th>
     67          <th>Credits</th>
     68          <th>Mandatory</th>
     69          <th>Score</th>
     70          <th>Auto</th>
     71        </tr>
     72      </thead>
     73      <tbody>
     74        <tr tal:repeat="value context/values" class="gradeC">
     75          <td>
     76            <input type="checkbox" name="val_id"
     77                  tal:attributes="value value/__name__" />
     78          </td>
     79          <td tal:content="value/semester">SEMESTER</td>
     80          <td> <a tal:attributes="href value/__name__">
     81          <span tal:content="value/code">CODE</span>
     82          </a></td>
     83          <td tal:content="value/title">TITLE</td>
     84          <td tal:content="value/department">DEPARTMENT</td>
     85          <td tal:content="value/faculty">FACULTY</td>
     86          <td tal:content="value/credits">CREDITS</td>
     87          <td tal:content="value/core_or_elective">MANDATORY</td>
     88          <td tal:content="value/score">SCORE</td>
     89          <td tal:content="value/automatic">AUTO</td>
     90        </tr>
     91      </tbody>
     92      </table>
     93
     94      <div tal:condition="view/availableActions">
     95        <span tal:repeat="action view/actions"
     96              tal:omit-tag="">
     97          <input tal:condition="python:action.label in view.tabtwoactions"
     98                 tal:replace="structure action/render"/>
     99        </span>
     100      </div>
     101
     102    </div>
    55103  </div>
    56 </div>   
    57    
    58 <div id="tab-2">
    59   <h3>Course Tickets</h3>
    60   <table class="display dataTableManage">
    61   <thead>
    62     <tr>
    63       <th>&nbsp;</th>
    64       <th>Sem.</th>
    65       <th>Code</th>
    66       <th>Title</th>
    67       <th>Department</th>
    68       <th>Faculty</th>
    69       <th>Credits</th>
    70       <th>Mandatory</th>
    71       <th>Score</th>
    72       <th>Auto</th>
    73     </tr>
    74   </thead>
    75   <tbody>
    76     <tr tal:repeat="value context/values">
    77       <td>
    78         <input type="checkbox" name="val_id"
    79                   tal:attributes="value value/__name__" />
    80       </td>
    81       <td tal:content="value/semester">SEMESTER</td>
    82       <td> <a tal:attributes="href value/__name__">
    83       <span tal:content="value/code">CODE</span>
    84       </a></td>
    85       <td tal:content="value/title">TITLE</td>
    86       <td tal:content="value/department">DEPARTMENT</td>
    87       <td tal:content="value/faculty">FACULTY</td>
    88       <td tal:content="value/credits">CREDITS</td>
    89       <td tal:content="value/core_or_elective">MANDATORY</td>
    90       <td tal:content="value/score">SCORE</td>
    91       <td tal:content="value/automatic">AUTO</td>
    92     </tr>
    93   </tbody>
    94   </table>
    95 
    96   <div class="actionButtons" tal:condition="view/availableActions">
    97     <span tal:repeat="action view/actions"
    98           tal:omit-tag="">
    99       <input tal:condition="python:action.label in view.tabtwoactions"
    100              tal:replace="structure action/render"/>
    101     </span>
    102   </div>
    103 
    104 </div>
    105 </div>
    106104</form> 
    107105
  • main/waeup.sirp/trunk/src/waeup/sirp/students/browser_templates/studylevelpage.pt

    r7310 r7459  
    11<h2 tal:content="view/label">TITLE</h2>
    22
    3 <table class="zebra">
     3<table class="form-table">
    44<thead>
    55</thead>
     
    77  <tal:block repeat="widget view/widgets">
    88    <tr>
    9       <td>
    10         <label tal:attributes="for widget/name">
    11           <span i18n:translate=""
    12                          tal:content="widget/label">label</span>:
    13         </label>
     9      <td class="fieldname">
     10        <span i18n:translate="" tal:content="widget/label">label</span>:
    1411      </td>
    15       <td class="field" tal:on-error="default">
     12      <td tal:on-error="default">
    1613        <div class="widget" tal:content="structure widget">
    1714          <input type="text" />
     
    2219  <tr>
    2320    <td>
    24       <label>Total Credits:</label>
     21      Total Credits:
    2522    </td>
    2623    <td>
     
    3330<h3>Course Tickets</h3>
    3431
    35 <table class="display dataTable" >
     32<table class="display dataTable">
    3633  <thead>
    3734    <tr>
     
    4845  </thead>
    4946  <tbody>
    50     <tr tal:repeat="value context/values">
     47    <tr tal:repeat="value context/values" class="gradeC">
    5148      <td tal:content="value/semester">SEMESTER</td>
    5249      <td> <a tal:attributes="href value/__name__">
  • main/waeup.sirp/trunk/src/waeup/sirp/students/tests/test_browser.py

    r7422 r7459  
    807807        self.browser.getLink("Clear student").click()
    808808        self.assertTrue('Student has been cleared' in self.browser.contents)
    809         self.assertTrue('State: <span>cleared</span>' in self.browser.contents)
     809        self.assertTrue('cleared' in self.browser.contents)
    810810        self.browser.getLink("Reject clearance").click()
    811811        self.assertTrue('Clearance has been annulled' in self.browser.contents)
     
    814814        self.assertEqual(self.browser.url, self.student_path +
    815815            '/contactstudent?subject=%s' % urlmessage)
    816         self.assertTrue('State: <span>clearance started</span>'
    817             in self.browser.contents)
     816        self.assertTrue('clearance started' in self.browser.contents)
    818817        IWorkflowInfo(self.student).fireTransition('request_clearance')
    819818        self.browser.open(self.clearance_student_path)
     
    821820        self.assertTrue('Clearance request has been rejected'
    822821            in self.browser.contents)
    823         self.assertTrue('State: <span>clearance started</span>'
    824             in self.browser.contents)
     822        self.assertTrue('clearance started' in self.browser.contents)
    825823        # CO does now also see the contact form and can send a message
    826824        self.browser.getControl(name="form.subject").value = 'Important subject'
     
    917915        self.browser.getLink("Validate courses").click()
    918916        self.assertTrue('Course list has been validated' in self.browser.contents)
    919         self.assertTrue('State: <span>courses validated</span>' in self.browser.contents)
     917        self.assertTrue('courses validated' in self.browser.contents)
    920918        self.browser.getLink("Reject courses").click()
    921919        self.assertTrue('Course list request has been annulled'
     
    924922        self.assertEqual(self.browser.url, self.student_path +
    925923            '/contactstudent?subject=%s' % urlmessage)
    926         self.assertTrue('State: <span>school fee paid</span>'
    927             in self.browser.contents)
     924        self.assertTrue('school fee paid' in self.browser.contents)
    928925        IWorkflowInfo(self.student).fireTransition('register_courses')
    929926        self.browser.open(L110_student_path)
     
    931928        self.assertTrue('Course list request has been rejected'
    932929            in self.browser.contents)
    933         self.assertTrue('State: <span>school fee paid</span>'
    934             in self.browser.contents)
     930        self.assertTrue('school fee paid' in self.browser.contents)
    935931        # CA does now see the contact form and can send a message
    936932        self.browser.getControl(name="form.subject").value = 'Important subject'
     
    977973        self.assertTrue('Password changed' in self.browser.contents)
    978974        # We are still logged in. Changing the password hasn't thrown us out.
    979         self.browser.getLink("My Data").click()
     975        self.browser.getLink("Base Data").click()
    980976        self.assertEqual(self.browser.url, self.student_path)
    981977        # We can logout
  • main/waeup.sirp/trunk/src/waeup/sirp/students/viewlets.py

    r7366 r7459  
    5757    def render(self):
    5858        url = self.view.url(self.context.getStudent(), self.link)
    59         return u'<div class="portlet"><a href="%s">%s</a></div>' % (
     59        return u'<li><a href="%s">%s</a></li>' % (
    6060                url, self.text)
    6161
    62 class StudentManageBaseLink(StudentManageLink):
    63     grok.order(1)
    64     link = 'index'
    65     text = u'Base Data'
    66 
    6762class StudentManageApplicationLink(StudentManageLink):
    68     grok.order(2)
     63    grok.order(1)
    6964    link = 'application_slip'
    7065    text = u'Application Slip'
     
    7570        if slip:
    7671            url = self.view.url(self.context,self.link)
    77             return u'<div class="portlet"><a href="%s">%s</a></div>' % (
     72            return u'<li><a href="%s">%s</a></li>' % (
    7873                    url, self.text)
    7974        return ''
     75
     76class StudentManageBaseLink(StudentManageLink):
     77    grok.order(2)
     78    link = 'index'
     79    text = u'Base Data'
    8080
    8181class StudentManageClearanceLink(StudentManageLink):
     
    104104    grok.require('waeup.handleAccommodation')
    105105    link = 'accommodation'
    106     text = u'Accommodation Data'
     106    text = u'Accommodation'
    107107
    108108class StudentManageHistoryLink(StudentManageLink):
    109     grok.order(8)
    110     link = 'history'
    111     text = u'History'
    112 
    113 
    114 class StudentMenu(grok.ViewletManager):
    115     grok.name('top_student')
    116 
    117 class StudentLink(PlainActionButton):
    118     """A link displayed in the student box which shows up for StudentNavigation
    119     objects.
    120 
    121     """
    122     grok.baseclass()
    123     grok.viewletmanager(StudentMenu)
    124     grok.context(ISIRPObject)
    125     grok.view(Interface)
    126     grok.order(5)
    127     grok.require('waeup.viewStudent')
    128 
    129     link = 'index'
    130     text = u'Base Data'
    131 
    132     @property
    133     def target_url(self):
    134         """Get a URL to the target...
    135         """
    136         return self.view.url(self.context.getStudent(), self.link)
    137 
    138 class StudentBaseLink(StudentLink):
    139     grok.order(1)
    140     link = 'index'
    141     text = u'Base Data'
    142 
    143 class ApplicationSlipLink(StudentLink):
    144     grok.order(2)
    145     link = 'application_slip'
    146     text = u'Application Slip'
    147 
    148     @property
    149     def target_url(self):
    150         slip = getUtility(IExtFileStore).getFileByContext(
    151             self.context.getStudent(), attr=self.link)
    152         if slip:
    153             return self.view.url(self.context,self.link)
    154         return
    155 
    156 class StudentClearanceLink(StudentLink):
    157     grok.order(3)
    158     link = 'view_clearance'
    159     text = u'Clearance Data'
    160 
    161 class StudentPersonalLink(StudentLink):
    162     grok.order(4)
    163     link = 'view_personal'
    164     text = u'Personal Data'
    165 
    166 class StudentStudyCourseLink(StudentLink):
    167     grok.order(5)
    168     link = 'studycourse'
    169     text = u'Study Course'
    170 
    171 class StudentPaymentsLink(StudentLink):
    172     grok.order(6)
    173     link = 'payments'
    174     text = u'Payments'
    175 
    176 class StudentAccommodationLink(StudentLink):
    177     grok.order(7)
    178     link = 'accommodation'
    179     text = u'Accommodation'
    180 
    181 class StudentHistoryLink(StudentLink):
    182109    grok.order(8)
    183110    link = 'history'
     
    227154
    228155class MyStudentDataTab(PrimaryStudentNavTab):
    229     """MyData-tab in primary navigation.
     156    """MyData dropdown tab in primary navigation.
    230157    """
    231158    grok.order(3)
    232159    grok.require('waeup.viewMyStudentDataTab')
     160    grok.template('mydatadropdowntabs')
    233161    pnav = 4
    234162    tab_title = u'My Data'
    235163
    236164    @property
    237     def link_target(self):
    238         rel_link = '/students/%s' % self.request.principal.id
    239         return self.view.application_url() + rel_link
     165    def active(self):
     166        view_pnav = getattr(self.view, 'pnav', 0)
     167        if view_pnav == self.pnav:
     168            return 'active dropdown'
     169        return 'dropdown'
     170
     171    @property
     172    def targets(self):
     173        student_url = self.view.application_url() + (
     174            '/students/%s' % self.request.principal.id)
     175        #app_slip = getUtility(IExtFileStore).getFileByContext(
     176        #    self.context.getStudent(), 'application_slip')
     177        targets = []
     178        #if app_slip:
     179        #    targets = [{'url':student_url + '/application_slip', 'title':'Application Slip'},]
     180        targets += [
     181            {'url':student_url, 'title':'Base Data'},
     182            {'url':student_url + '/view_clearance', 'title':'Clearance Data'},
     183            {'url':student_url + '/view_personal', 'title':'Personal Data'},
     184            {'url':student_url + '/studycourse', 'title':'Study Course'},
     185            {'url':student_url + '/payments', 'title':'Payments'},
     186            {'url':student_url + '/accommodation', 'title':'Accommodation Data'},
     187            {'url':student_url + '/history', 'title':'History'},
     188            ]
     189        return targets
    240190
    241191def handle_file_delete(context, view, download_name):
Note: See TracChangeset for help on using the changeset viewer.