On a multi-company environment, as sequences are created with sudo,
if admin's company is different from the user creating the warehouse
one, then warehouse sequences are incorrectly assigned to the admin's
company
Before this commit, when the user clicks on the chatter category
"Planned activities", the user is redirected to the home menu.
The "Planned activities" category in the chatter is only visible when
there is at least one planned activity on the record.
The intended behaviour is to expand/collapse the planned activites on
the chatter. This commit fixes this issue.
Task-ID 1864452
Steps to reproduce the bug:
1. Create a Vendor with these address settings
- Name: Vendor123
- Streer" Street:
- Housnumber: 123
>> DO NOT ADD A COUNTRY => by default street_format = street_number street_number2 street_name
2. Create a purchase order for Vendor123
3. print the RFQ
>> ADDRESS FORMAT "123 Street" => OK
4. Go to vendor123 and set "Netherlands" as a country
5. Print RFQ again
Bug:
>> The address was still in format "123 Street" => NOT OK
When changing the country on a partner, the field street must be recomputed
because the street_format depends on the country.
opw:1865677
Before this commit:
* Install module A that implements model M and field X.
* Create a new custom field Y whose reference model is not M, implemented in
any module other than A.
* Make this field either a one2many, related or compute field depending
on field X.
* Uninstall module A.
=> The registry crashes fatally, the only way to recover from this is to
log directly into the postgres database and manually eliminate the
infringing ir.model.fields record.
The reasons are multiple:
* When creating custom fields that are relational, char fields are used
to hold data like model name, field name, instead of properly storing
the related field, which would let postgres handle the unlinking
properly.
* Despite this, the ir.model.fields method _prepare_update tries to make
up for this by verifying that the ir.model.fields being unlinked during
an uninstallation are not needed elsewhere and drops them, however it
does so naively: It assumes that the "problematic" field will be defined
within the module's scope, i.e. its model reference will be a model
defined by the module being uninstalled, this isn't always the case.
This is solved by getting the dependants of each field by accessing the
model's field_triggers, if there are any triggers (i.e. dependants) then
we add them to a `failed_dependencies` list for later processing. The same
is done for field inverses (only in the case of a many2one).
After finding the failed_dependencies, a check is performed to see if the unlink is
being performed in the context of an uninstallation, in which case the failed
dependencies will be unlinked, otherwise an error will be shown to the user.
This commit is a "backport" + generalization of commit 4265026ee2
Task-ID: 1856263
The changes should not have been merged in stable.
Users installing the account module before 3754280a had a not null constraint
on the field company_id.
After updating the code, the field is still required but has no default value.
If a chart of account is installed after updating the code, it would fail.
opw-1867358
Purpose
=======
Ease the configuration of the main applications by adding configuration panels on the main views,
i.e. on the customer invoices, quotations and ecommerce dashboard. This panels are composed by steps
to configure the company data, the report layout and templates, the payment acquirers,...
Specification
=============
Invoicing Application
---------------------
The gist of the task is to add a config bar for invoicing app. After going through the config step, the system should be all set to send real invoices
Mockup: https://app.moqups.com/fgi@openerp.com/qhrp1ZJB1i/view
1. Configuration bar
- The current onboarding modal should not pop up when the user clicks on "Print Invoice" anymore: https://drive.google.com/a/odoo.com/file/d/1xMin8lBB3guDOlIQaGCnLrBKKl5nbA-9/view?usp=drivesdk
- Add the following configuration bar between the top menu and the list of Customer Invoices
- This bar can only be viewed with "administration - settings" access rights.
- Each part of the bar opens a corresponding modal (defined below).
- Once information is saved on the modal, a green checksign appears next to it on the configuration bar. The user can still open the modal and modify information afterwards.
- Add a grey cross on the top right side of the bar. Clicking on it removes definitely the bar.
- The bar has to stay as long as the user has not clicked on the grey cross.
config bar design branch: https://www.odoo.com/web#id=1835748&view_type=form&model=project.task&action=333&active_id=133&menu_id=4720
2. Company Data
Do the following changes to the current company form:
- hide company logo in the modal (will be shown next step). But keep it visible in the company full form
- remove "Report Footer", "Company tagline", "Verify VAT Number" https://drive.google.com/a/odoo.com/file/d/1CrGoY_sH4wsTHuu6Zggilo6qOzWb0oCW/view?usp=drivesdk
- remove tabs: https://drive.google.com/a/odoo.com/file/d/1X7EglwY5zHmJtR4Xafnkm9uBX6TlcJsB/view?usp=drivesdk
- mark this step as done if street 1 is filled
3. Invoice Template
new screen to choose a report template, set a logo, etc.
- Use the default logo used in demo data as new default image for any new company. See for reference : http://nimb.ws/1TFn8O
- add "company tagline" and "document footer" (removed from company form)
- open this screen in general settings: https://drive.google.com/a/odoo.com/file/d/1hP5CW7-MPXre8r8Ex-KKSomVaef932qV/view?usp=drivesdk
- mark as done if logo is set.
4. Payment Method
- Activate the payment acquirer selected, and set in production mode (if paypal or stripe)
- For manual payment, rename "Wire Transfer" payment acquirer into the name provider by the user
- if any payment method selected, activate "Online Payment" in invoicing settings: https://drive.google.com/a/odoo.com/file/d/1Vy6os1eDznumOyR80Q2nFctzQ7S2PvYN/view?usp=drivesdk
- otherwise the customer will not be prompted to pay online.
- mark as done if any method is selected or if "Skip this step" is clicked.
5. Sample Invoice - Send a sample draft invoice to user email address
- Open the email composer modal with invoice's email template (like clicking "Send by email" in the invoice), do the following changes:
- Hide the template field and the "save as new template" button.
- Generate & delete direclty the sample draft invoice to be sent when clicking the config bar step. The user should never see this invoice appear in the invoice list
- Generate the invoice with following information:
- put the admin as customer.
- for the Invoice Lines : do not enter any Product. Add a 2-3 Descriptions, with a Quantity and a Unit price.
- the Invoice has to stay in draft and should not appear in the Customer Invoices list.
- Allow to open portal view of this sample invoice from the email sent (as any other invoice) / if complex, to check with AL
- mark as done when the email is sent.
Sale Application
================
help users configure the system in order to send the first quotation to a customer
mockup: https://app.moqups.com/fgi@openerp.com/rP8gOb077Y/view
remove current mechanism of company data completion when clicking Print button in the quotation form (e.g. with company logo not set).
Signature: if Yes, activate the option in sales settings https://drive.google.com/a/odoo.com/file/d/1IoHn_3b4BbevKqdVajBWysn_jamQ1tAA/view?usp=drivesdk
Payment: activate the option in sales settings + activate the selected payment acquirer
background image: https://drive.google.com/a/odoo.com/file/d/1LXRrslRBEo8ma_1dFH8nTTlhiE1uPa-Z/view?usp=drivesdk
see in https://projects.invisionapp.com/share/2MGSJ30H53F#/screens/290568105
Ecommerce Application
=====================
help users go through all the config steps needed to start selling
Add the bar in the ecommerce dashboard: https://drive.google.com/a/odoo.com/file/d/1NmFJXjYZXN2KdZ9Fv19cPqyq1v-1ehiJ/view?usp=drivesdk
steps to implement:
Theme (checked if a theme is installed)
allow the user to change theme. When installing a new theme, uninstall any other theme installed (uninstall theme_common? what about community themes that don't use theme common?)
Company Data
[for eCommerce only] Payment Method (same screen than in invoices)
Domain Name (set a custom domain name, only for saas users) -> display the domain config modal used in https://accounts.odoo.com/my/databases/manage: https://drive.google.com/a/odoo.com/file/d/1K_AYHJGHWBb2g08vq6ICDc2BHhErb5HI/view?usp=drivesdk
Accounting Application
======================
Transform old config bar to new style config bar
When the logo was not set and you tried to print a quotation, a modal form opened and offered you to edit the company data. You then had to save, close the modal and retry to print.
Now the quotation is printed without the logo.
Add an onboarding panel for invoicing, it appears above the invoice
list.
After going through the steps the system should be all set to send real invoices.
In the payment module, add a payment acquirer step and add it to the invoice onboarding panel.
task: 60668
Add a banner_route attribute to AbstractView to allow fetching html from a
controller route and displaying it above the view.
The initial use case was the onboarding panels.
Supported views are the ones inheriting both AbstractView and AbstractController.
It is useful to know when the stylesheet has been loaded in order to prevent displaying unstyled content.
CalendarView and the dashboard_graph widget (JournalDashboardGraph) use loadCSS through cssLibs / loadLibs so the tests now have to use createAsyncView instead of createView.
Use a new view to choose the document template.
Remove layout fields from base company form.
Reword Edit Header -> Edit Layout
Set a default logo for a new company in data instead of demo data
task: 60668
Default value of interval_number and number_per_interval was overriden
and set to 0 by _onchange_holiday_status_id this would then crash at
creation because of the sql constraint.
In the form view of allocations, the duration label was duplicated,
solution was to remove labels and simplify the view.
Browsers accept it as they are wont to do, but the Content-Disposition
lib (introduced in 35d452cffb) does
not. Simply don't mark them as safe when %-escaping the filename so
they do get %-escaped properly.
RFC5987 states
ext-parameter = parmname "*" LWSP "=" LWSP ext-value
ext-value = charset "'" [ language ] "'" value-chars
value-chars = *( pct-encoded / attr-char )
attr-char = ALPHA / DIGIT
/ "!" / "#" / "$" / "&" / "+" / "-" / "."
/ "^" / "_" / "`" / "|" / "~"
; token except ( "*" / "'" / "%" )
Neither : nor / are in attr-char. This is further confirmed by
checking out RFC2616:
CTL = <any US-ASCII control character (octets 0 - 31) and DEL (127)>
token = 1*<any CHAR except CTLs or separators>
separators = "(" | ")" | "<" | ">" | "@"
| "," | ";" | ":" | "\" | <">
| "/" | "[" | "]" | "?" | "="
| "{" | "}" | SP | HT
Here we can see "/" and ":" are both in "separators", which are
specifically *not* in token. attr-char restricts token further, so an
invalid token char can't be a valid attr-char.
This commit:
1. Adds settings to install the new `web_unsplash` enterprise module.
See counterpart commit on enterprise for details.
2. Export `ImageWidget` and `update_control_panel` to be able to override them.
3. Add the unsplash access key rights to website designer. (see related OE
commit)
task-35060
Closes#25825, closes#25637
Currently due to technical reasons all activities are created using the
superuser. It means we have no idea who created an activity. This
commit fixes that by adding a field used to store the activity creator.
It is also displayed in the vignette displayed in chatter giving details
on the activity.
This commit is related to task ID 1865557. Closes PR #25842.
Several addons (account, sale, purchase) use specific 'send by email'
templates to send the invoice / SO / PO to the customer as well as
holding a view / payment button.
Purpose is to separate the template content (payment information) from the
payment button (Pay and sign online) when sending those documents by
email. Composer and chatter should not hold the button. It should be added
only in notifications emails.
Technical solution is to move the button into the notification template.
Model template holds the content (document and text) and notification
template holds the payment button.
This merge is related to task ID 1860049 and closes PR #25824.
Purpose
* use the new notification template allowing to display the payment button
only in emails;
* reorder the fields definition to ease the reading;
* slightly clean the email body using a maximum of div and br tags as it
seems better integrated with Odoo edition capabilities;
This commit is linked to task ID 1860049 and PR #25824.
Purpose
* use the new notification template allowing to display the payment button
only in emails;
* reorder the fields definition to ease the reading;
* slightly clean the email body using a maximum of div and br tags as it
seems better integrated with Odoo edition capabilities;
This commit is linked to task ID 1860049 and PR #25824.
Purpose
* use the new notification template allowing to display the payment button
only in emails;
* reorder the fields definition to ease the reading;
* slightly clean the email body using a maximum of div and br tags as it
seems better integrated with Odoo edition capabilities;
This commit is linked to task ID 1860049 and PR #25824.
In the demo data, some requests for quotations are linked to the demo
purchase tender, but this one is in draft state. It is inconsistent with
what can be done in odoo, because draft purchase tender never generate
requests for quotation.
TASK-ID 1864372
This commit introduces a new notification template. Its target is to be used
when sending payment-based templates like 'Send by email' for sale orders,
invoices or purchase orders.
Purpose is to separate the template content (payment information) from the
payment button (Pay and sign online) when sending those documents by
email. Composer and chatter should not hold the button. It should be added
only in notifications emails.
Technical solution is to have a somewhat-generic template available in mail
to be used in some specific actions. Another solution is to hide the
button but it breaks if people edit or remove the hidden content when
editing the mail in the composer without knowing it. As the button is
mandatory in those actions we choose to have it added by the notification
email.
Future commits will gradually use this template in some addons.
This commit is linked to task ID 1860049 and PR #25824.
Currently if a partner has a void email, its email_formatted field holds
a value like "Raoul Grosbedon <False>" which is quite rarely considered
as a valid email address.
Minimal fix for this field is to return a void value if there is no email.
Having a void return is easier to manipulate for callers in order to
handle it.
This commit is linked to task ID 1860049 and PR #25824.
When you click on put in pack in a ppicking, you can uncheck the
checkbox 'Done', this doesn't have any sense, and doesn't do what you
expect. So the checkbox is always checked for new packages, and you can
simply click on the dustbin to cancel your put in pack.
When a package level is confirmed and is set to done, if you try to
reserve it after, it won't have the correct location of the reservation
because there are still move lines (forced) with the wrong location.
When the move lines reserved are assigned to a package level, it wasn't
taking into account the package level of the parent move if it has any.
So this could lead to package level state error, if we have two package
level with the same package_id.
Due to this commit: https://github.com/odoo/odoo/commit/ab5fcb29650349fa641c6130bf6dcbdc1ec28a07
When confirming a PO with two lines having the same product,
the stock moves were not merged anymore in the putaway
(input to stock) picking.
Reason:
When confirming the PO, odoo creates first a receipt
(vendor to input) picking and its stock moves matching the PO line.
Then it applies the push rule on each move. Both putaway
(input to stock) moves are created by copying the receipt
(vendor to input) moves, but when the second is created,
odoo check if there's another move to merge sharing same
properties to merge into it. As purchase_line_id is now copied
in both cases, both putaway moves include a different
purchase_line_id and won't be merged together, since this field
is in _prepare_merge_moves_distinct_fields() on stock.move.
opw:1854387
Usability improvement:
- Common view for push and pull rules
- Add an help text in order to describe the rule
- Rules menu
- Warehouse checked by default on route created by a warehouse
- Lower the MTO route sequence in order to take it first.
- Tooltip cleaning
Technical improvement:
The purpose of this task was also to merge stock.location.path(push rule) and
procrement.rule. Those two model were design to execute the same task
but in a different direction. Thus it contains duplicate code.
Task ID 1852969.
`new_landed_cost_value` was added to `value` to recompute the
`price_unit` field. The issue is that when applying multiple landed
costs, `value` and `new_landed_cost_value` already contains the previous
landed costs, resulting in an erroneous `price_unit`.
This patch only adds `cost_to_add`, which is the current landed cost, to
`value`, which contains all the previous one.
To reproduce:
- Create a product FIFO / AUTOMATED
- Purchase 50 units@$2 and receive them (total value=$100)
- Add a landed cost of $100 on those 50 units and a landed cost of $50 on those 50 units
(total value = $100+$100+$50)
- Sell 15 units (the value on move out =$75 > $75/15 = $5 unit cost)
The standard_price on the product = $7 while I expect to have $5
opw-1867002