odoo18/addons_extensions/employee_bridge/controllers/main.py

43 lines
1.6 KiB
Python

from odoo import http
from odoo.http import request
from odoo.addons.website.controllers.main import Website # <-- ADD THIS IMPORT
# CHANGE INHERITANCE: http.Controller -> Website
class EmployeeBridgeController(Website):
def _get_bridge(self, token):
return request.env["recruitment.employee.bridge"].sudo().search([
("access_token", "=", token),
("active", "=", True),
], limit=1)
def _render_form(self, bridge):
# Removed the 'message' variable as we will use a separate template for success
return request.render("employee_bridge.employee_bridge_jod_form_template", {
"bridge": bridge,
})
@http.route("/employee_bridge/jod/<string:token>", type="http", auth="public", csrf=False, website=True)
def employee_bridge_jod(self, token, **post):
bridge = self._get_bridge(token)
if not bridge:
return request.not_found()
if request.httprequest.method == "POST":
bridge.write_from_public_form(post)
# RENDER A SEPARATE THANK YOU TEMPLATE INSTEAD OF THE FORM
return request.render("employee_bridge.employee_bridge_thank_you_template", {
"bridge": bridge,
})
return self._render_form(bridge)
@http.route("/employee_bridge/fetch_related_state_ids", type="json", auth="public", website=True)
def fetch_related_state_ids(self, country_id=None):
states = request.env["res.country.state"].sudo()
return {
state.id: state.name
for state in states.search([("country_id", "=?", country_id)])
}