main.py
3.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import logging
from odoo import http
from odoo.addons.portal.controllers.portal import (
pager as portal_pager)
from odoo.addons.website.controllers.main import Website
from odoo.http import request
STATE = ['draft', 'confirmed', 'canceled']
_logger = logging.getLogger(__name__)
class IdgBoardWebsite(Website):
_items_per_page = 20
# def _prepare_home_portal_values(self, counters):
# values = super()._prepare_home_portal_values(counters)
# if 'bphtb_count' in counters:
# values['bphtb_count'] = request.env['bphtb.sales'].search_count([
# ('state', 'in', STATE)
# ]) if request.env['bphtb.sales'].check_access_rights(
# 'read', raise_exception=False) else 0
# return values
#
# def _bphtb_sales_get_page_view_values(self, sales, access_token, **kwargs):
# def resize_to_48(b64source):
# if not b64source:
# b64source = base64.b64encode(Binary.placeholder())
# return image_process(b64source, size=(48, 48))
#
# values = {
# 'sales': sales,
# 'resize_to_48': resize_to_48,
# }
# return self._get_page_view_values(sales, access_token, values,
# 'my_bphtbs_history', False, **kwargs)
def _prepare_portal_layout_values(self):
"""Values for /my/* templates rendering.
Does not include the record counts.
"""
# get customer sales rep
sales_user = False
partner = request.env.user.partner_id
if partner.user_id and not partner.user_id._is_public():
sales_user = partner.user_id
return {
'sales_user': sales_user,
'page_name': 'home',
}
def _prepare_home_portal_values(self, counters):
"""Values for /my & /my/home routes template rendering.
Includes the record count for the displayed badges.
where 'coutners' is the list of the displayed badges
and so the list to compute.
"""
return {}
@http.route(['/idg/board', '/idg/board/page/<int:page>'], type='http', auth="public")
def index(self, page=1, filterby=None, **kw):
# , date_begin=None, date_end=None, sortby=None, filterby=None, **kw):
values = self._prepare_portal_layout_values()
domain = [('level', '=', 6)]
# domain = []
searchbar_sortings = {}
# if not sortby:
# sortby = 'code_prefix_start'
# sortby = 'id'
# order = searchbar_sortings[sortby]['order']
IdgTaxSum = request.env['idg.region.tax.potency.sum'].sudo()
tax_count = IdgTaxSum.search_count(domain)
if not filterby:
filterby = 'all'
pager = portal_pager(
url="/idg/board",
url_args={
# 'sortby': sortby,
'filterby': filterby
},
total=tax_count,
page=page,
step=self._items_per_page
)
taxs = IdgTaxSum.search(
domain,
# order=order,
limit=self._items_per_page,
offset=pager['offset']
)
values.update({
'taxs': taxs,
'page_name': 'idgtax',
'pager': pager,
# 'searchbar_sortings': searchbar_sortings,
# 'sortby': sortby,
# 'searchbar_filters': OrderedDict(sorted(searchbar_filters.items())),
'filterby': filterby,
'default_url': '/idg/board',
})
return request.render("idg_board.portal_idg_boards", values)