diff --git a/odex25_mobile/odex_mobile/controllers/rest_api_v2/employee_other_request.py b/odex25_mobile/odex_mobile/controllers/rest_api_v2/employee_other_request.py index 7a32e9f30..e70f1a2a3 100644 --- a/odex25_mobile/odex_mobile/controllers/rest_api_v2/employee_other_request.py +++ b/odex25_mobile/odex_mobile/controllers/rest_api_v2/employee_other_request.py @@ -497,7 +497,7 @@ class EmployeeOtherRequestController(http.Controller): # -------------------------------------------- @http.route(['/rest_api/v2/employee_other_request'], type='http', auth='none', csrf=False, methods=['GET']) - def get_all_requests(self, **kw): + def get_all_requests(self,done=None, **kw): http_method, body, headers, token = http_helper.parse_request() # 1) Check Token @@ -521,11 +521,14 @@ class EmployeeOtherRequestController(http.Controller): page = int(kw.get("page", 1)) sort = kw.get("sort", "") # e.g. 'date' or '-state' approvel = kw.get("approvel", 0) + # done = kw.get("done", 0) filters_str = kw.get("filters", "") # e.g. 'state=approved' page, offset, limit, prev = validator.get_page_pagination(page) domain = [('employee_id', '=', employee.id)] if approvel: - domain=[('state', '!=', 'draft'),('employee_id', '!=', employee.id)] + domain=[('state', 'not in', ['approved','refuse']),('employee_id', '!=', employee.id)] + elif done: + domain = [('state', 'in', ['approved','refuse']), ('employee_id', '!=', employee.id)] if filters_str: # Very naive filter parser: "state=approved;request_type=insurance" for part in filters_str.split(";"): @@ -556,9 +559,9 @@ class EmployeeOtherRequestController(http.Controller): request_list = convert_dates_in_data(request_list) next_page = validator.get_page_pagination_next(page, all_records) - next_url = "/rest_api/v2/employee_other_request?approvel=%s&page=%s" % ( - approvel, next_page) if next_page else False - prev_url = "/rest_api/v2/employee_other_request?approvel=%s&page=%s" % (approvel, prev) if prev else False + next_url = "/rest_api/v2/employee_other_request?approvel=%s&done=%s&page=%s" % ( + approvel,done, next_page) if next_page else False + prev_url = "/rest_api/v2/employee_other_request?approvel=%s&done=%s&page=%s" % (approvel,done, prev) if prev else False data = { 'links': { 'prev': prev_url, diff --git a/odex25_mobile/odex_mobile/controllers/rest_api_v2/loan.py b/odex25_mobile/odex_mobile/controllers/rest_api_v2/loan.py index f7a18a1f1..74413a823 100644 --- a/odex25_mobile/odex_mobile/controllers/rest_api_v2/loan.py +++ b/odex25_mobile/odex_mobile/controllers/rest_api_v2/loan.py @@ -20,7 +20,7 @@ import re class LoanController(http.Controller): # loans @http.route(['/rest_api/v2/loans'], type='http', auth='none', csrf=False, methods=['GET']) - def get_loan(self,approvel=None,page=None, **kw): + def get_loan(self,approvel=None,done=None,page=None, **kw): http_method, body, headers, token = http_helper.parse_request() result = validator.verify_token(token) if not result['status']: @@ -41,8 +41,14 @@ class LoanController(http.Controller): loan_advantage = http.request.env['loan.request.type'].search([]) if approvel: # domain = [] - loans = http.request.env['hr.loan.salary.advance'].search([('employee_id', '!=', employee.id),('state', '!=', 'draft')], order='date desc', offset=offset, limit=limit) - count = http.request.env['hr.loan.salary.advance'].search_count([('employee_id', '!=', employee.id),('state', '!=', 'draft')]) + loans = http.request.env['hr.loan.salary.advance'].search([('employee_id', '!=', employee.id),('state', 'not in', ['pay','closed','refused'])], order='date desc', offset=offset, limit=limit) + count = http.request.env['hr.loan.salary.advance'].search_count([('employee_id', '!=', employee.id),('state', 'not in', ['pay','closed','refused'])]) + elif done: + loans = http.request.env['hr.loan.salary.advance'].search( + [('employee_id', '!=', employee.id), ('state', 'in', ['pay','closed','refused'])], order='date desc', offset=offset, + limit=limit) + count = http.request.env['hr.loan.salary.advance'].search_count( + [('employee_id', '!=', employee.id), 'in', ['pay','closed','refused']]) else: loans = http.request.env['hr.loan.salary.advance'].search([('employee_id', '=', employee.id)], order='date desc', offset=offset, limit=limit) count = http.request.env['hr.loan.salary.advance'].search_count([('employee_id', '=', employee.id)]) @@ -71,8 +77,8 @@ class LoanController(http.Controller): value['lines'] = lines li.append(value) next = validator.get_page_pagination_next(page, count) - url = "/rest_api/v2/loans?approvel=%s&page=%s" % (approvel, next) if next else False - prev_url = "/rest_api/v2/loans?approvel=%s&page=%s" % (approvel, prev) if prev else False + url = "/rest_api/v2/loans?approvel=%s&done=%s&page=%s" % (approvel,done, next) if next else False + prev_url = "/rest_api/v2/loans?approvel=%s&done=%s&page=%s" % (approvel,done, prev) if prev else False data = {'links': {'prev': prev_url, 'next': url, }, 'count': count, 'results':{'loan_types': types, 'employee_loans': li }} diff --git a/odex25_mobile/odex_mobile/controllers/rest_api_v2/official_mission.py b/odex25_mobile/odex_mobile/controllers/rest_api_v2/official_mission.py index bacb25c66..75b9c17f9 100644 --- a/odex25_mobile/odex_mobile/controllers/rest_api_v2/official_mission.py +++ b/odex25_mobile/odex_mobile/controllers/rest_api_v2/official_mission.py @@ -325,7 +325,7 @@ class HrOfficialMissionController(http.Controller): # ---------------------------------------------------------- @http.route(['/rest_api/v2/hr_official_mission'], type='http', auth='none', csrf=False, methods=['GET']) - def get_all_missions(self, **kw): + def get_all_missions(self,done=None, **kw): """ Query parameters: page (optional, default=1) @@ -352,13 +352,16 @@ class HrOfficialMissionController(http.Controller): # 2) Build domain & pagination page = int(kw.get('page', 1)) approvel = kw.get('approvel', 0) + # done = kw.get('done', 0) sort = kw.get('sort') # e.g. 'date_from' or '-state' filters_str = kw.get('filters') page, offset, limit, prev = validator.get_page_pagination(page) domain = [('employee_id', '=', employee.id)] if approvel: - domain=[('state', '!=', 'draft'),('employee_id', '!=', employee.id)] + domain=[('state', 'not in', ['approve','refused']),('employee_id', '!=', employee.id)] + elif done: + domain = [('state', 'in', ['approve','refused']), ('employee_id', '!=', employee.id)] if filters_str: # Very basic parse; adapt as you like. @@ -390,9 +393,9 @@ class HrOfficialMissionController(http.Controller): data_list = convert_dates_in_data(data_list) next_page = validator.get_page_pagination_next(page, all_missions) - next_url = "/rest_api/v2/employee_other_request?approvel=%s&page=%s" % ( - approvel, next_page) if next_page else False - prev_url = "/rest_api/v2/employee_other_request?approvel=%s&page=%s" % (approvel, prev) if prev else False + next_url = "/rest_api/v2/employee_other_request?approvel=%s&done=%s&page=%s" % ( + approvel,done, next_page) if next_page else False + prev_url = "/rest_api/v2/employee_other_request?approvel=%s&done=%s&page=%s" % (approvel,done, prev) if prev else False data = { 'links': { 'prev': prev_url, diff --git a/odex25_mobile/odex_mobile/controllers/rest_api_v2/overtime.py b/odex25_mobile/odex_mobile/controllers/rest_api_v2/overtime.py index b725a5473..0f6cb8207 100644 --- a/odex25_mobile/odex_mobile/controllers/rest_api_v2/overtime.py +++ b/odex25_mobile/odex_mobile/controllers/rest_api_v2/overtime.py @@ -56,7 +56,7 @@ class OverTimeController(http.Controller): return http_helper.errcode(code=403, message=message) @http.route(['/rest_api/v2/overtimes'], type='http', auth='none', csrf=False, methods=['GET']) - def get_overtime(self,approvel=None,page=None, **kw): + def get_overtime(self,approvel=None,done=None,page=None, **kw): page = page if page else 1 page, offset, limit, prev = validator.get_page_pagination(page) http_method, body, headers, token = http_helper.parse_request() @@ -75,9 +75,14 @@ class OverTimeController(http.Controller): success=False) try: if approvel: - domain = [('state','!=','draft'),('line_ids_over_time.employee_id', '!=', employee.id)] + domain = [('state','not in',['refused','validated']),('line_ids_over_time.employee_id', '!=', employee.id)] overtime = http.request.env['employee.overtime.request'].search(domain, order='request_date desc', offset=offset, limit=limit) count = http.request.env['employee.overtime.request'].search_count(domain) + elif done: + domain = [('state', 'in', ['refused','validated']), ('line_ids_over_time.employee_id', '!=', employee.id)] + overtime = http.request.env['employee.overtime.request'].search(domain, order='request_date desc', + offset=offset, limit=limit) + count = http.request.env['employee.overtime.request'].search_count(domain) else: overtime = http.request.env['employee.overtime.request'].search([('line_ids_over_time.employee_id', '=', employee.id)], order='request_date desc', offset=offset, limit=limit) count = http.request.env['employee.overtime.request'].search_count([('line_ids_over_time.employee_id', '=', employee.id)]) @@ -134,8 +139,8 @@ class OverTimeController(http.Controller): value['employees'] = emps over.append(value) next = validator.get_page_pagination_next(page, count) - url = "/rest_api/v2/overtimes?page=%s" % (approvel, next) if next else False - prev_url = "/rest_api/v2/overtimes?page=%s" % (approvel, prev) if prev else False + url = "/rest_api/v2/overtimes?approvel=%s&done=%s&page=%s" % (approvel,done, next) if next else False + prev_url = "/rest_api/v2/overtimes?approvel=%s&done=%s&page=%s" % (approvel,done, prev) if prev else False data = {'links': {'prev': prev_url, 'next': url, }, 'count': count, 'results': {'overtimes': over,}} diff --git a/odex25_mobile/odex_mobile/controllers/rest_api_v2/permission.py b/odex25_mobile/odex_mobile/controllers/rest_api_v2/permission.py index 667344776..32d6c43cf 100644 --- a/odex25_mobile/odex_mobile/controllers/rest_api_v2/permission.py +++ b/odex25_mobile/odex_mobile/controllers/rest_api_v2/permission.py @@ -21,7 +21,7 @@ from odoo.tools.translate import _ class PermissionController(http.Controller): # Permission @http.route(['/rest_api/v2/permissions'], type='http', auth='none', csrf=False, methods=['GET']) - def get_permission(self, approvel=None, page=None, **kw): + def get_permission(self, approvel=None, done=None,page=None, **kw): page = page if page else 1 page, offset, limit, prev = validator.get_page_pagination(page) http_method, body, headers, token = http_helper.parse_request() @@ -43,7 +43,11 @@ class PermissionController(http.Controller): count = 0 emp = [] if approvel: - domain = [('state', '!=', 'draft'), ('employee_id', '!=', employee.id)] + domain = [('state', 'not in', ['approve','refused']), ('employee_id', '!=', employee.id)] + permissions = http.request.env['hr.personal.permission'].search(domain, offset=offset, limit=limit) + count = http.request.env['hr.personal.permission'].search_count(domain) + elif done: + domain = [('state', 'in', ['approve','refused']), ('employee_id', '!=', employee.id)] permissions = http.request.env['hr.personal.permission'].search(domain, offset=offset, limit=limit) count = http.request.env['hr.personal.permission'].search_count(domain) else: @@ -71,8 +75,8 @@ class PermissionController(http.Controller): } emp.append(value) next = validator.get_page_pagination_next(page, count) - url = "/rest_api/v2/permissions?approvel=%s&page=%s" % (approvel, next) if next else False - prev_url = "/rest_api/v2/permissions?approvel=%s&page=%s" % (approvel, prev) if prev else False + url = "/rest_api/v2/permissions?approvel=%s&done=%s&page=%s" % (approvel,done, next) if next else False + prev_url = "/rest_api/v2/permissions?approvel=%s&done=%s&page=%s" % (approvel,done, prev) if prev else False data = {'links': {'prev': prev_url, 'next': url, }, 'count': count, 'results': {'permission_types': permission_types, 'permissions': emp, 'groups': ['group_division_manager', 'group_hr_user']}} return http_helper.response(message="Data Found", data=data)