Ignore:
Timestamp:
19 Nov 2015, 11:34:48 (9 years ago)
Author:
Henrik Bettermann
Message:

Add bed statistics view components.

Location:
main/waeup.kofa/trunk/src/waeup/kofa/hostels
Files:
1 added
3 edited

Legend:

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

    r13476 r13484  
    115115    text = _('Manage accommodation section')
    116116
     117class HostelsStatisticsActionButton(ManageActionButton):
     118    grok.order(2)
     119    grok.context(IHostelsContainer)
     120    grok.view(HostelsContainerPage)
     121    grok.require('waeup.manageHostels')
     122    icon = 'actionicon_statistics.png'
     123    text = _('Bed statistics')
     124    target = 'statistics'
     125
    117126class HostelsContainerManagePage(KofaEditFormPage):
    118127    """The manage page for hostel containers.
     
    196205    def render(self):
    197206        return
     207
     208class HostelsStatisticsPage(KofaDisplayFormPage):
     209    """Some statistics about beds in hostels.
     210    """
     211    grok.context(IHostelsContainer)
     212    grok.name('statistics')
     213    grok.require('waeup.manageHostels')
     214    grok.template('containerstatistics')
     215    label = _('Bed Statistics')
    198216
    199217class HostelAddFormPage(KofaAddFormPage):
  • main/waeup.kofa/trunk/src/waeup/kofa/hostels/tests.py

    r13483 r13484  
    238238        stats = utils.getBedStatistics()
    239239        self.assertEqual(stats,
    240             {'regular_male_fr': (1, 1),
    241              'regular_female_fi': (0, 0),
    242              'regular_male_re': (0, 0),
    243              'regular_female_fr': (0, 0),
    244              'regular_female_all': (0, 0),
    245              'regular_female_re': (0, 0),
    246              'regular_male_fi': (0, 0),
    247              'regular_male_all': (0, 0)}
     240            {'regular_male_fr': (0, 1, 1),
     241             'regular_female_fi': (0, 0, 0),
     242             'regular_male_re': (0, 0, 0),
     243             'regular_female_fr': (0, 0, 0),
     244             'regular_female_all': (0, 0, 0),
     245             'regular_female_re': (0, 0, 0),
     246             'regular_female_reserved': (0, 0, 0),
     247             'regular_male_reserved': (0, 0, 0),
     248             'regular_male_fi': (0, 0, 0),
     249             'regular_male_all': (0, 0, 0)}
    248250             )
    249251        self.app[
     
    253255        stats = utils.getBedStatistics()
    254256        self.assertEqual(stats,
    255             {'regular_male_fr': (0, 1),
    256              'regular_female_fi': (0, 0),
    257              'regular_male_re': (0, 0),
    258              'regular_female_fr': (0, 0),
    259              'regular_female_all': (0, 0),
    260              'regular_female_re': (0, 0),
    261              'regular_male_fi': (0, 0),
    262              'regular_male_all': (0, 0)}
     257            {'regular_male_fr': (1, 0, 1),
     258             'regular_female_fi': (0, 0, 0),
     259             'regular_male_re': (0, 0, 0),
     260             'regular_female_fr': (0, 0, 0),
     261             'regular_female_all': (0, 0, 0),
     262             'regular_female_re': (0, 0, 0),
     263             'regular_female_reserved': (0, 0, 0),
     264             'regular_male_reserved': (0, 0, 0),
     265             'regular_male_fi': (0, 0, 0),
     266             'regular_male_all': (0, 0, 0)}
    263267             )
    264268
     
    478482        self.assertTrue('2 of 10' in self.browser.contents)
    479483        bedticket.bed = self.app['hostels']['hall-1']['hall-1_A_101_A']
     484        # Managers can open the bed statistics page
     485        self.browser.getLink("Bed statistics").click()
     486        self.assertTrue('Bed Statistics</h1>' in self.browser.contents)
    480487        # Remove entire hostel.
    481488        self.browser.open(self.manage_container_path)
  • main/waeup.kofa/trunk/src/waeup/kofa/hostels/utils.py

    r13483 r13484  
    3939            'regular_female_fi',
    4040            'regular_female_all',
     41            'regular_female_reserved',
    4142            'regular_male_fr',
    4243            'regular_male_re',
    4344            'regular_male_fi',
    44             'regular_male_all',)
     45            'regular_male_all',
     46            'regular_male_reserved',)
    4547        for bed_type in bed_types:
    46             no = cat.searchResults(
     48            free = cat.searchResults(
    4749                bed_type=(bed_type, bed_type),
    4850                owner=(NOT_OCCUPIED, NOT_OCCUPIED))
    4951            all = cat.searchResults(
    5052                bed_type=(bed_type, bed_type))
    51             stats[bed_type] = (len(no), len(all))
     53            free = len(free)
     54            total = len(all)
     55            occ = total - free
     56            stats[bed_type] = (occ, free, total)
    5257        return stats
Note: See TracChangeset for help on using the changeset viewer.