Skip to Content
Menu
This question has been flagged
1 Reply
1259 Views

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
Discard
Author

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
Discard
Author

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 Replies Views Activity
2
Jul 24
1425
3
Dec 24
4499
1
Jul 25
351
0
Nov 24
1165
0
Oct 24
1390