Ejemplo n.º 1
0
 def pager(self, url, total, page=1, step=30, scope=5, url_args=None):
     return pager(url,
                  total,
                  page=page,
                  step=step,
                  scope=scope,
                  url_args=url_args)
Ejemplo n.º 2
0
    def portal_my_islands(self, page=1, **kw):
        values = {}
        user = request.env.user
        island_model = request.env['turnip.island']

        domain = [
            ('owner_id', '=', user.id),
        ]

        # count for pager
        count = island_model.search_count(domain)

        # make pager
        portal_pager = pager(url="/my/islands",
                             total=count,
                             page=page,
                             step=self._items_per_page)

        # search the count to display, according to the pager data
        islands = island_model.search(domain,
                                      order='id',
                                      limit=self._items_per_page,
                                      offset=portal_pager['offset'])

        hemispheres = dict(
            island_model.fields_get()['hemisphere']['selection'])

        values.update({
            'islands': islands,
            'pager': portal_pager,
            'hemispheres': hemispheres,
        })
        return request.render("turnip_tracker.turnip_portal_island", values)
Ejemplo n.º 3
0
 def pager(self, url, total, page=1, step=30, scope=5, url_args=None):
     data = pager(url,
                  total,
                  page=page,
                  step=step,
                  scope=scope,
                  url_args=url_args)
     data['base_url'] = url
     data['url_args'] = url_args
     return data
Ejemplo n.º 4
0
    def turnip_tracker(self, page=False, **kw):
        values = {}
        per_page = kw.get('per_page', 100)

        price_model = request.env['turnip.price']

        filters = {}
        for field in ['island', 'villager', 'date', 'time', 'price']:
            filters[field] = kw.get(field) or False

        domain = [
            ('date', '!=', False) if not filters.get('date') else
            ('date', '=', filters.get('date')),
            ('price', '>', filters.get('price') or 0),
            ('time', '!=', False) if not filters.get('time') else
            ('time', '=', filters.get('time')),
            ('island_id.name', '=ilike',
             filters.get('island')) if filters.get('island') else
            ('island_id.name', '!=', False),
            ('island_id.villager', '=ilike',
             filters.get('villager')) if filters.get('villager') else
            ('island_id.villager', '!=', False),
        ]

        count = price_model.search_count(domain)
        portal_pager = pager(url="/my/islands",
                             total=count,
                             page=page,
                             step=per_page)

        prices = price_model.search(
            domain,
            order='date DESC, time DESC' +
            ((', price %s' %
              kw['price_sort'].upper()) if kw.get('price_sort') else ''))

        price_fields = price_model.fields_get()
        times = dict(price_fields['time']['selection'])

        values.update({
            'prices': prices,
            'times': times,
            'filters': filters,
        })

        return request.website.viewref(
            'turnip_tracker.turnip_tracker_widget').render(values)
Ejemplo n.º 5
0
    def portal_my_islands_prices(self, island_id, page=1, **kw):
        values = {}
        user = request.env.user
        island_model = request.env['turnip.island']

        island = request.env['turnip.island'].browse(int(island_id))

        if not island or island.owner_id != request.env.user:
            return request.redirect('/my/islands')

        domain = [
            ('island_id', '=', island.id),
        ]

        price_model = request.env['turnip.price']

        # count for pager
        count = price_model.search_count(domain)

        # make pager
        portal_pager = pager(url="/my/islands/%s/prices" % island.id,
                             total=count,
                             page=page,
                             step=self._items_per_page)

        # search the count to display, according to the pager data
        prices = price_model.search(domain,
                                    order='date DESC, time DESC',
                                    limit=self._items_per_page,
                                    offset=portal_pager['offset'])

        price_fields = price_model.fields_get()
        times = dict(price_fields['time']['selection'])

        values.update({
            'island': island,
            'pager': portal_pager,
            'prices': prices,
            'times': times,
        })
        return request.render("turnip_tracker.turnip_portal_island_prices",
                              values)
Ejemplo n.º 6
0
 def pager(self, url, total, page=1, step=30, scope=5, url_args=None):
     return pager(url, total, page=page, step=step, scope=scope, url_args=url_args)