43 lines
1.6 KiB
Python
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)])
|
|
} |