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)
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)
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
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)
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)
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)