Skip to Content
Menú
This question has been flagged
1 Respondre
1260 Vistes

Hello Community, I'm trying to add 'Accept and Sign' Portal Function at my maintenance request, but I'm still getting the Error Message as the following.

How can I correct it and help me to find the solution. 

Thanks a lot.



My XML Code -    

"""                        


"""   


                           

                       



My Controller Code -

@http.route(['/my/maintenance/'], type='http', methods=["POST","GET"], website=True)

    def get_maintenances_form(self, maintenance_id,**rec):

        vals = {

            "maintenance":maintenance_id,

            'page_name':'maintenance_request_form_view',

        }


        maintenance_records = request.env['maintenance.request'].search([])

        maintenance_ids = maintenance_records.ids

        maintenance_index = maintenance_ids.index(maintenance_id.id)


        if maintenance_index != 0 and maintenance_ids[maintenance_index - 1]:

            vals['prev_record'] = '/my/maintenance/{}'.format(maintenance_ids[maintenance_index - 1])

        if maintenance_index

            vals['next_record'] = '/my/maintenance/{}'.format(maintenance_ids[maintenance_index + 1])

        

        if request.httprequest.method == "POST":

            print(rec)

        else:

            print("GET METHOD....")


        data = request.render('snow_everest_development.se_maintenance_form_view_portal', vals)

        

        return data



My Error Message - 


2024-07-05 09:44:19,804 12745 WARNING SNOW_EVEREST_DEV odoo.http: No CSRF validation token provided for path '/my/maintenance/42'


Odoo URLs are CSRF-protected by default (when accessed with unsafe

HTTP methods). See

https://www.odoo.com/documentation/17.0/developer/reference/addons/http.html#csrf

for more details.


* if this endpoint is accessed through Odoo via py-QWeb form, embed a CSRF

  token in the form, Tokens are available via `request.csrf_token()`

  can be provided through a hidden input and must be POST-ed named

  `csrf_token` e.g. in your form add:

     


* if the form is generated or posted in javascript, the token value is

  available as `csrf_token` on `web.core` and as the `csrf_token`

  value in the default js-qweb execution context


* if the form is accessed by an external third party (e.g. REST API

  endpoint, payment gateway callback) you will need to disable CSRF

  protection (and implement your own protection if necessary) by

  passing the `csrf=False` parameter to the `route` decorator.


2024-07-05 09:44:20,025 12745 INFO SNOW_EVEREST_DEV werkzeug: 10.0.2.2 - - [05/Jul/2024 09:44:20] "POST /my/maintenance/42 HTTP/1.1" 400 - 23 0.016 0.247

2024-07-05 09:44:22,304 12745 INFO SNOW_EVEREST_DEV werkzeug: 10.0.2.2 - - [05/Jul/2024 09:44:22] "POST /web/webclient/version_info HTTP/1.1" 200 - 1 0.000 0.002

Avatar
Descartar
Autor

Please Help

Best Answer
disable CSRF Protection in your code and try

@http.route(['/my/maintenance/'], type='http', methods=["POST","GET"], csrf=False, website=True)


Avatar
Descartar
Autor

Thanks Mr. Aneesh.Av,
It's worked but the order of signature didn't return to my controller when I click the "Sign" button.

Related Posts Respostes Vistes Activitat
2
de jul. 24
1430
3
de des. 24
4504
1
de jul. 25
358
0
de nov. 24
1165
0
d’oct. 24
1390