Wednesday, April 2, 2025
3 changes · saas-17.4
Resolved issues and error corrections
New Point of Sale administrators can now load the Furniture and Clothes sample data without running into access-related errors. This prevents setup interruptions when businesses create new POS admin users and use demo data to explore or configure the system.
Original PR description
We encountered an error when trying to open `Furniture` or `Clothes` from the `Dashboard` if the Administrator has been assigned Admin rights to a new user. Step to Reproduce: - Install the Point of…
We encountered an error when trying to open `Furniture` or `Clothes` from the
`Dashboard` if the Administrator has been assigned Admin rights to a new user.
Step to Reproduce:
- Install the Point of Sale module without demo data.
- Navigate to `Settings` > `Users` and `create` a new user with `Admin rights` of POS.
- Log in with the newly created admin user.
- Try to load sample data for `Furniture` or `Clothes`.
Traceback:
```
while parsing /home/odoo/src/odoo/saas-18.1/addons/product/data/product_demo.xml:5, somewhere inside
<record id="base.group_user" model="res.groups">
<field name="implied_ids" eval="[(4, ref('product.group_product_variant'))]"/>
</record>
```
Error[2] generated when solving above problem :
Traceback :
```
while parsing /home/odoo/odoo/community/addons/point_of_sale/data/orders_demo.xml:86,
somewhere inside <function model="pos.session" name="update_closing_control_state_session" eval="[[ref('pos_closed_session_1')], '']"/>
```
This issue was occuring since new users does not have access right of `res.groups`.
This commit will fix the above errors by using Superuser environment to load data..
sentry-6239966848
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis fixes a scheduling issue where shifts created from templates could calculate an end time earlier than the start time when a timezone was applied twice. End times are now calculated with the timezone applied only once, improving reliability for planned work slots.
Original PR description
Before this commit, the `Europe/Brussels` timezone was applied 2 times on the calculation of the end_datetime when the slot is linked to a template and so the end date time of the slot could suddenly be before the start date time, which should not be possible. The timezone is applied 2 times, because the start date time computed already got the right timezone, so it is not needed to apply again the timezone since the timezone is already defined thanks to the start date time used in the computation. This commit makes sure the timezone is applied once during the calculation of the end datetime, to be sure the difference between UTC and the timezone to apply is not applied 2 times on the end date time. runbot-error-162055
The Indian reporting feature now keeps its fiscal year date logic in the core Indian reports module, so reports can still work when the GSTR extension is not installed. This reduces module dependency issues and helps prevent report errors for affected users.
Original PR description
Relocated the get_fiscal_year_start_date method from l10n_in_reports_gstr to l10n_in_reports to ensure availability even if the GSTR module is uninstalled. This improves modularity and prevents…
Relocated the get_fiscal_year_start_date method from l10n_in_reports_gstr to l10n_in_reports to ensure availability even if the GSTR module is uninstalled.
This improves modularity and prevents dependency issues.
Trace-back:
```RPC_ERROR
Odoo Server Error
Occured on 77578514-18-0-all.runbot143.odoo.com on model account.report and id 10 on 2025-04-01 13:02:27 GMT
Traceback (most recent call last):
File "/data/build/odoo/odoo/http.py", line 1962, in _transactioning
return service_model.retrying(func, env=self.env)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/odoo/odoo/service/model.py", line 156, in retrying
result = func()
^^^^^^
File "/data/build/odoo/odoo/http.py", line 1929, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/odoo/odoo/http.py", line 2177, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/odoo/odoo/addons/base/models/ir_http.py", line 333, in _dispatch
result = endpoint(**request.params)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/odoo/odoo/http.py", line 727, in route_wrapper
result = endpoint(self, *args, **params_ok)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/odoo/addons/web/controllers/dataset.py", line 36, in call_kw
return call_kw(request.env[model], method, args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/odoo/odoo/api.py", line 533, in call_kw
result = getattr(recs, name)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/enterprise/account_reports/models/account_report.py", line 5225, in get_report_information_readonly
return self.get_report_information(options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/enterprise/account_reports_cash_basis/models/account_report.py", line 17, in get_report_information
info = super().get_report_information(options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/enterprise/account_reports/models/account_report.py", line 5209, in get_report_information
'lines': self._get_lines(options, all_column_groups_expression_totals=all_column_groups_expression_totals, warnings=warnings),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/enterprise/account_reports/models/account_report.py", line 2544, in _get_lines
dynamic_lines = self._get_dynamic_lines(options, all_column_groups_expression_totals, warnings=warnings)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/enterprise/account_reports/models/account_report.py", line 2996, in _get_dynamic_lines
rslt = self.env[self.custom_handler_model_name]._dynamic_lines_generator(self, options, all_column_groups_expression_totals, warnings=warnings)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/build/enterprise/l10n_in_reports/models/l10n_in_report_handler.py", line 173, in _dynamic_lines_generator
self._get_out_of_fiscal_year_reversed_moves(options)
File "/data/build/enterprise/l10n_in_reports/models/l10n_in_report_handler.py", line 146, in _get_out_of_fiscal_year_reversed_moves
('reversed_entry_id.invoice_date', '<', AccountMove.get_fiscal_year_start_date(self.env.company, datetime.strptime(options['date']['date_to'], '%Y-%m-%d')))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'account.move' object has no attribute 'get_fiscal_year_start_date'
The above server error caused the following client error:
RPC_ERROR: Odoo Server Error
RPC_ERROR
at makeErrorFromResponse (https://77578514-18-0-all.runbot143.odoo.com/web/assets/3b85f28/web.assets_web.min.js:3153:163)
at XMLHttpRequest.<anonymous> (https://77578514-18-0-all.runbot143.odoo.com/web/assets/3b85f28/web.assets_web.min.js:3158:13)```