Due to a compatibility problem between the new API
implementation and the @ormcache decorator, the
context parameter of ir.attachment._filestore()
was dropped at rev. 0beb14f0d2
However the need for caching this method has
disappeared in Odoo 8 (it used to require a
DB query). So it is even better to drop the
@ormcache decorator altogether, and keep the
context parameter.
This avoids a useless change of method signature,
even if that was on a private method.
This wasn't anymore possible to open the Lead/opp
form of a planned call if it was of type opp.
Regression introduced during rev. 81f56c9eda
opw-631807
On an invoice, tax lines are generated in tax_line field. When modifying
manually the tax amount, the recomputed tax_amount field was incorrect in
multicurrency environment, leading to an entry with different tax amount and
debit value.
opw 611474
The decorator is not really useful, since it calls an already cached method.
Moreover, it causes cache errors because of its `context` parameter that occurs
in the cache key.
Apparently, browsers decide how they want to style readonly inputs,
and it seems like Firefox is greying them out while Chrome doesn't.
We use an opacity: 0.5 rule to grey them out ourselves in Chrome,
but in Firefox they are not dark enough to read easily because of
the double greying. I checked with the designers but they don't
have any better fix for that.
When writing a message via the chatter with a template being in auto_delete
False, the notifications emails are always in auto_delete True.
This fix propagate the auto_delete option of a mail.template to these
notifications emails.
opw-630010
Links shortener is a tool needed by Website managers,
restricting this tool to ERP manager is a bit too restrictive.
Website managers is probably too restrictive as well,
maybe all employees should be able to access
this feature. Before having a real use case,
giving this tool to website managers is enough at this time.
opw-631511
Bootstrap's CSS depends on the input-group-btn
element being the first/last child of its parent.
This was not the case because of the invisible
and useless alert.
On the ecommerce, when ordering a place for an event,
and answering to an event.registration.answer,
it wasn't possible to delete the quotation line
(missing ON DELETE CASCADE)
opw-631619
Make sure pass a list of ids instead of a single id to write calls.
Some models (e.g. blog.post, fixed at 12fc5ea) are assuming that it got a list
of ids and is not checking the type.
Always pass a list of ids as it's the expected format for the orm.
When trying to duplicate a database, while
having opened connections to it, postgresql throws
```
OperationalError: source database "duplicate_test"
is being accessed by other users
DETAIL: There is 1 other session using the database.
```
Connections must be dropped before trying duplication
using TEMPLATE to avoid this.
The stock level forecast view should have inverse columns and rows. The line graph
is also better by default.
The stock valuation view should only be in reporting (removed the graph part) and is replaced by a pivot and
graph view of the quants in the warehouse menu. We only group by location by default.
Use date_expected instead of date in stock level forecast and group dates by week by default.
Direct type comparison is significantly faster than
isinstance/issubclass calls, so it is worth using
in a method that is very frequently called.
The extra call to getencoding() also causes a significant
overhead, so we try to spare it by tring the hint_encoding
first. If all fails, the default behavior still applies.
Using micro-benchmarks, the execution time of
ustr() on an already-unicode string is cut in
half (no conversion is needed), and the overhead
for converting utf-8 bytestrings is also
cut in half (the conversion itself is O(n) on
the string length, obviously)
If a purchase order is created with free goods (e.g. 5 units offered if 100 are purchased),
the price_unit of stock.move and the cost of stock.quant were set to the product cost price
instead of zero. This would lead to inconsistencies in the 'Current Inventory Valuation'.
opw: 630593
The graph view is supposed to load in a given mode, as described by the
type attribute ('bar', 'line', 'pie'). However, the type attribute in
the fieldviewget was ignored, which means that the graph view was
always loaded in bar mode.
The implementation of ormcache does not work on methods that take a context
parameter. Because of the decorator decorator, the arguments of the call are
passed positionally to the method ormcache.lookup, and positional arguments
are used in the cache key.
The fix consists in removing the context parameter from the faulty methods,
either directly, or by caching a private method called by the public method.
Commit 540b753bf8 introduced
support for resources stored as ir.attachment records in
asset bundles too.
This is specifically useful for customizations.
However the HTTP route for reaching those resources
when they are *not* in a bundle was originally created
in the `website` module (as a special handling for
404 requests)
This means that these dynamic resources would only
be partially supported when `website` is not installed,
causing various problems:
- missing resources in debug mode where bundles are skipped
- errors when trying to define new client-side Qweb templates
via XML resources - which are loaded with a direct request
- ...
This commit moves back the supporting code to the web module.
The `mimetype` column is not present in ir.attachment without
the `website` module, but sniffing it based on the attachment
name works fine at serving time too.
Closes#6002
When showing a kanban, there is differences between dataset of types:
* DataSetStatic: self.view.dataset===self.dataset, their ids attributes are the entire ids list,
* DataSet and DataSetSearch: self.view.dataset.ids are the already in the view ids, self.dataset.ids are the last gotten ids.
Hence with DataSetStatic dataset, when self.view.dataset.ids.splice(0) is done
self.dataset.ids is also emptied. And in the read_slice function, the slice is
done on that (now empty) array.
This fix removes the splicing of this ids array (which doesn't change a thing
since the array is overwritten latter), a _.difference is used to remove
eventual duplicates since in the DataSetStatic case, the same array is being
concatenated to itself
opw-630654 opw-617090 opw-619563
The implementation of `ormcache` does not work on methods that take a `context`
parameter. Because of the decorator `decorator`, the arguments of the call are
passed positionally to the method `ormcache.lookup`, and positional arguments
are used in the cache key.
The fix consists in removing the `context` parameter from the faulty methods,
either directly, or by caching a private method called by the public method.