Ignore:
Timestamp:
23 Nov 2018, 11:10:19 (6 years ago)
Author:
Henrik Bettermann
Message:

Add ReleaseExpiredAllocationsActionButton? which has previously only been used by Uniben.

Location:
main/waeup.kofa/trunk/src/waeup/kofa
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • main/waeup.kofa/trunk/src/waeup/kofa/hostels/browser.py

    r13565 r15250  
    124124    target = 'statistics'
    125125
     126class ReleaseExpiredAllocationsActionButton(ManageActionButton):
     127    grok.order(3)
     128    grok.context(IHostelsContainer)
     129    grok.view(HostelsContainerPage)
     130    grok.require('waeup.manageHostels')
     131    icon = 'actionicon_sweep.png'
     132    target = 'releaseexpired'
     133    text = _('Release all expired bed space allocations')
     134
     135    @property
     136    def target_url(self):
     137        if self.target and self.context.allocation_expiration:
     138            return self.view.url(self.view.context, self.target)
     139        return
     140
     141    @property
     142    def onclick(self):
     143        msg = "'All expired bed space allocations will be annulled. " + \
     144              "Are you sure? \\n\\n" + \
     145              "Bed space allocation expires ${a} days after accommodation " + \
     146              "booking if maintenance fee is not " + \
     147              "paid.'"
     148        msg = _(msg, mapping={'a': self.context.allocation_expiration,})
     149        portal_language = getUtility(IKofaUtils).PORTAL_LANGUAGE
     150        return "return window.confirm(%s);" % translate(
     151            msg, 'waeup.kofa', target_language=portal_language)
     152
    126153class HostelsContainerManagePage(KofaEditFormPage):
    127154    """The manage page for hostel containers.
     
    190217    grok.require('waeup.manageHostels')
    191218
    192     def update(self, n=7):
     219    def update(self):
     220        n = self.context.allocation_expiration
     221        if not n:
     222            self.flash(
     223                _('Forbidden'), type='danger')
     224            self.redirect(self.url(self.context))
     225            return
    193226        if not grok.getSite()['configuration'].maintmode_enabled_by:
    194227            self.flash(
  • main/waeup.kofa/trunk/src/waeup/kofa/hostels/interfaces.py

    r14009 r15250  
    7373        )
    7474
     75    allocation_expiration = schema.Int(
     76        title = _(u'Allocation Expiration Time (days)'),
     77        description = _(
     78            'Number of days after which allocation is being annulled'),
     79        required = False,
     80        )
     81
    7582    def clearAllHostels():
    7683        """Clear all hostels.
  • main/waeup.kofa/trunk/src/waeup/kofa/hostels/tests.py

    r13533 r15250  
    188188
    189189    def test_release_expired_allocations(self):
     190        self.app['hostels'].allocation_expiration = 7
    190191        self.browser.addHeader('Authorization', 'Basic mgr:mgrpw')
    191192        cat = queryUtility(ICatalog, name='beds_catalog')
  • main/waeup.kofa/trunk/src/waeup/kofa/students/browser.py

    r15246 r15250  
    24062406            self.request, self.omit_fields)
    24072407        students_utils = getUtility(IStudentsUtils)
     2408        note = None
     2409        n = grok.getSite()['hostels'].allocation_expiration
     2410        if n:
     2411            note = """
     2412<br /><br /><br /><br /><br /><font size="12">
     2413Please endeavour to pay your hostel maintenance charge within ${a} days
     2414 of being allocated a space or else you are deemed to have
     2415 voluntarily forfeited it and it goes back into circulation to be
     2416 available for booking afresh!</font>
     2417"""
     2418            note = _(note, mapping={'a': n})
     2419            portal_language = getUtility(IKofaUtils).PORTAL_LANGUAGE
     2420            note = translate(
     2421                note, 'waeup.kofa', target_language=portal_language)
    24082422        return students_utils.renderPDF(
    24092423            self, 'bed_allocation_slip.pdf',
    24102424            self.context.student, studentview,
    2411             omit_fields=self.omit_fields)
     2425            omit_fields=self.omit_fields,
     2426            note=note)
    24122427
    24132428class BedTicketRelocationView(UtilityView, grok.View):
  • main/waeup.kofa/trunk/src/waeup/kofa/students/tests/test_browser.py

    r15234 r15250  
    32703270        bed.bed_type = u'regular_female_fr'
    32713271        self.app['hostels'][hostel.hostel_id].addBed(bed)
     3272        self.app['hostels'].allocation_expiration = 7
    32723273
    32733274        self.browser.open(self.login_path)
     
    33733374        self.assertEqual(self.browser.headers['Status'], '200 Ok')
    33743375        self.assertEqual(self.browser.headers['Content-Type'], 'application/pdf')
     3376        path = os.path.join(samples_dir(), 'bed_allocation_slip.pdf')
     3377        open(path, 'wb').write(self.browser.contents)
     3378        print "Sample PDF bed_allocation_slip.pdf written to %s" % path
    33753379        # Students can't relocate themselves.
    33763380        self.assertFalse('Relocate' in self.browser.contents)
Note: See TracChangeset for help on using the changeset viewer.