## $Id: browser.py 13324 2015-10-14 20:02:20Z henrik $
##
## Copyright (C) 2015 Uli Fouquet & Henrik Bettermann
## This program is free software; you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation; either version 2 of the License, or
## (at your option) any later version.
##
## This program is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
## GNU General Public License for more details.
##
## You should have received a copy of the GNU General Public License
## along with this program; if not, write to the Free Software
## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
##
import grok
from waeup.kofa.hostels.interfaces import IHostelsContainer
from waeup.kofa.hostels.browser import ReleaseExpiredAllocationsPage, HostelsContainerPage
from waeup.kofa.browser.viewlets import ManageActionButton


class ReleaseExpiredAllocationsActionButton(ManageActionButton):
    grok.order(2)
    grok.context(IHostelsContainer)
    grok.view(HostelsContainerPage)
    grok.require('waeup.manageHostels')
    icon = 'actionicon_sweep.png'
    target = 'releaseexpired'
    text = 'Release all expired bed space allocations'

    @property
    def target_url(self):
        if self.target and self.request.principal.id == 'admin':
            return self.view.url(self.view.context, self.target)
        return

    @property
    def onclick(self):
        msg = "'All expired bed space allocations will be annulled. " + \
              "Are you sure? \\n\\n" + \
              "Bed space allocation expires four (4) days after accommodation " + \
              "booking if maintenance fee is not paid.'"
        return "return window.confirm(%s);" % msg


class CustomReleaseExpiredAllocationsPage(ReleaseExpiredAllocationsPage):
    """Release all expired allocated beds.
    """

    def update(self):
        super(CustomReleaseExpiredAllocationsPage, self).update(4)
        return
