It is not always possible to possess both the account number and the BIC at the
time of creation. Eg. bank statement import where few file formats provide BIC
When setting the quantity in a PO line, the field "date_planned" is changed
by onchange_product_id and this field is equal to:
-the date of today + seller.delay if there is at least one provider for the product
-the date of today if there is no provider set for the product
-the date manually set if there is no provider and already a scheduled_date set
To keep the similar behaviour to 8.0 for product without provider.
opw:652394
During new-api rewrite, some property fields wrongly lost their
company_dependent flag.
Despite it need a migration script to create the missing properties,
not updating the module does not lead to crashes.
In the refactoring of v9.0 accounting module (c04065a) the currency
field on account.bank.statement has been renamed currency_id.
sentry-32303830312e3239303433353734
A lead can be marked as won, it must be converted to an opportunity first.
Previous flow was problematic as we could still convert to opportunity a won
lead (which does not work and does not make much sense).
A lead can only be lost or converted.
Fixes#9076
When creating an invoice in a foreign currency,
and adding a line with a product,
the `onchange` failed,
due to the fact the field `date_invoice`
is not on the invoice line, but on the invoice.
In 6b55539dc7 the "container_row_stock"
group in stock.view_partner_stock_form was hidden using
groups="base.group_no_one". The issue is that the POS used a group
inside of this group that it modified to display the associated
barcode of the partner and the loyalty points of the partner. So
although the code still worked, the actual information was invisible.
To fix it we inherit the view directly from where it is created, namely
base.view_partner_form which is a bit nicer than inheriting from an
already inherited view.
The ISO weekday should be computed with isocalendar dateformat
The exact directive is '%V' according to GNU/Linux system strftime
http://man7.org/linux/man-pages/man3/strftime.3.html
However '%V' is not documented in official cross-platform syntax supported on
all python built, according to standardized by ANSI C formats
https://docs.python.org/2.7/library/datetime.html#strftime-and-strptime-behavior
as '%V' may not be supported on other platforms such as MS Windows, use the
cross-platform 'isoformat()' method.
Note that according to ISO 8601, the start and end of date may belong to the
previous or next year.
e.g.
>>> datetime.datetime.strptime('2005-01-01', '%Y-%m-%d').isocalendar()
(2004, 53, 6)
>>> datetime.datetime.strptime('2005-01-01', '%Y-%m-%d').strftime('%W')
'00'
Fixes#8927
In e9c6fd0 'accuracy' was added to the field list read for res.currency,
but since the accounting refactoring in 9.0 (c04065a), this field was no
more present (replaced by decimal_places).
Since this field in the current point_of_sale javascript code was never
used, this commit removes it from the field list.
sentry-32303830312e3239303433353734
The project and sale_timesheet modules both define a project_time_mode_id field on res.company but they are not dependent on each other. This causes problem because the first module that creates the field "wins" the xmlid and will delete the field on uninstall, regardless of the other module (which will then stop working until you do an update that will recreate the field).
To work around this in a stable version, we manually create xmlids for the field in each module; on uninstall the field will not be deleted if an xmlid still refers it (which will be the case if the other module is installed).
Inheriting fields from modules that are not dependent in a direct way (ancestor-child) is not supported, so normally you should use modularity to define the field in a parent module. Since 9.0 is a stable version, we need a small workaround.
When clicking on a partner in the thread of messages, it opens the DM with the
associated user if there is one (and if this user isn't the current user).
Otherwise, or when clicking on a record of any other model, the user is
redirected to that record's form view.
This change required a minor change in chat_manager: create_channel now
returns the created channel, as the client action needs it to switch to it.
Moreover, in the thread, when there is no partner associated with a message
(only an email address), we simply use html's mailto mechanism. This fixes a
bug as we formerly tried to open an unexisting record of res.partner.
The bus was allowed to restart polling, client side, to allow the user
to directly receive messages in new channels. This was only acceptable
as a temporary fix, the correct way to do this is to actually notify the
bus server side. This is even more urgent since the client was allowed
to keep multiple longpolls simultaneously, which degraded the experience
in some cases.
Channel types that disable the 'add a channel' feature like the livechat are
now only rendered in the sidebar of the client action if there exists at least
one channel of that type.
If a user does not have write permissions on a model, he should still be
able to remove himself from the many2many relation.
This caused a problem: some messages could not be modified by a user
(star/unstar or mark as read)
... from the same author, written within 1 minute (restricted to comments).
Also:
- Display stars and needactions on hover only
- Display the date of messages without avatar and info in the margin on hover
- Add 'selected' state of messages (mainly for touch screens to replace hover)
- Fix typo (msg_type -> message_type) on the computation of the avatar url
On firefox, the font-family of the counter was font-awesome instead of Roboto
because the counter was inside the <i> tag on which font-awesome rules applied.
This rev. simply moves the counter out of that <i> tag.
including:
- decrease vertical spacing between user name and text
- decrease vertical spacing between messages
- align avatar width with first line of message
- bold channels more visible (color is actually white)
- decrease online status icon size and change its color
- hide the DM unpin icon, and show it only when hovering
- the add channel icons are less white
- offline user icon is now white
- the unpin icon is now visible when hovering on user name
- correctly display notifications in inbox
rev 6327cda0a tried to workaround the fact that the assets bundle were
unreadable when they are created in the same request by opening multiple
cursors and commiting the writes in ir.attachment. Sadly, this strategy
introduces sometimes hard to reproduce and hard to understand deadlocks
when regenerating the assets. This commit tries a ~safer strategy by not
opening multiple cursors but commiting the writes in ir.attachment when
a magic key is in the context.
On Firefox, the website page is not completely reloaded after saving or
cancelling. Because of this behavior, the Edit button is kept disabled,
forcing the user to completely refresh the page in order to activate the
Edit button.
By extending the Notification widget to create the CalendarNotification one,
we override the events key of Notification defining the handler when clicking
on the close cross. So when clicking on the cross, it doesn't close the
notification, and it even toggle the app switcher since the preventDefault
isn't performed.
Note that this should be directly handled by the webclient itself, and its
mechanism of extending widgets. This should be done in current master.
The message_last_post mechanism was introduced to have a trigger for
automated actions, but for some reason we do not use it. Moreover, it
interacts badly with the bus.
Because of the message_last_post update, concurrent transactions can
fail and be rollbacked. This is an issue because the bus commit the
transaction after writing the messages. This means that some messages
can be duplicated, and the more users are chatting, the more frequent
this will happen.
Since we don't use this field, it could be removed from the models, but
we are in a stable release, so we need to keep it for now.
When we initialize the web editor, the font size in the toolbar is
initialized to NaN.
What is done:
- Initialize the Summernote editor in initialize_content
- Render the content of the node in render_value
- Append the node to the DOM
Since the Summernote editor is initialized in initialize_content, the
node is still hidden. Since the node is hidden, Summernote won't be able
to determine the style info of the text (see method fromNode from
Style.js). Indeed, when jQueryCss is called, $node.is(':hidden') is true
which will lead to styleInfo['font-size'] = NaN.
To avoid patching Summernote, we take advantage of an existing trigger
which reloads the button content upon mouseup. This is also safer than
initializing Summernote after appending the node to the DOM.
opw-652041
The goal is to avoid recomputing field several times. Consider, for instance,
two fields F and G, such that G depends on F. Suppose that G is recomputed
before F. Saving G to database proceeds well, but when F is saved to database,
G is invalidated and marked for recomputation. Field G is possibly recomputed
twice on some records.
Avoid this situation by chosing a field such that none of its dependencies must
be recomputed; use a topological sort based on field dependencies for that
purpose. In the example above, G will never be recomputed before F.
When an error occured while executing an action (e.g. access rights), the
action manager's state was inconsistent as inner_action, inner_widget and
action_stack were all updated before trying to execute the action. Then, if the
user tried to open another action, the screen was split into two because the
reference of the previous action was lost, and thus it couldn't be detached.
We now restore inner_action, inner_widget and action_stack to their previous
state in the case of a rejected deferred.
A better fix would be to update all three variables once the deferred is
resolved, but it would require a refactoring of the way the action manager
and the view manager communicate to perform the do_push_state and to compute
the breadcrumbs. Indeed, those operations directly rely on the internal state
of the action manager, and they are performed before the callbacks in
push_state are called. Such a refactoring should probably not be done in
stable.
Partly fixes#8886.
The problem was that the action manager wasn't notified at all when something
went wrong with the view manager as the deferred returned by appendTo was in
that case never resolved nor rejected.