Commit Graph
36 Commits
Author SHA1 Message Date
Christophe Matthieu 6ecbbf8b96 [FIX] models.py, account, calendar, product: lang in context can be None
Different method use self._context.get('lang', 'en_US') to get the lang
value but, the lang in the context can be set to None (eg: copy method).
When the context is used with a lang=None, the method can have a
unexpected behavior or crashed (eg: if you try to format a datetime with a
locale=None)
2017-04-20 10:47:43 +02:00
amoyaux 447356f7ee [FIX] calendar: set correct recurring start_date
A recurring event with a start date and a time duration had a wrong start and
stop date computed.

Introduced at 76b724294a.
Previously the r_date contained only the start_date but now it contains both
start and stop dates. This implies that the method 'get_recurrent_ids' could
use 'get_search_fields' with a stop_date (depending on the domain order) and
returns incorrect dates.

This commit ensure to launch the get_search_fields with the start date.

Closes #15922
2017-03-20 10:25:30 +01:00
Martin Trigaux 76b724294a [FIX] calendar: correct search in recurrent event
Add a 3 use cases with tests that were failing before.

datetime filters were not working correctly on stop filters
The `_get_recurrent_date_by_event` was only computing recurrency on the start
field of an event which can make a difference. A recurring event
  start=2017-01-01 09:00:00; stop=2017-01-01 10:00:0
was not matched in a search ('stop', '>', '2017-01-01 09:30:00')

The filter != was not handled in the recurring use cases.
e.g. making the search 'start is set' in the web client is equal to
  ('start', '!=', False)

Searching with only a start filter matching recurring events but not the
first ("real") occurence, was returning no result if no stop filter was present.
  start=2017-01-01 09:00:00; count=5
had no result in a search ('start', '>', '2017-01-02')
2017-03-07 15:57:37 +01:00
Christophe Simonis 44276dfdc3 [MERGE] forward port branch saas-11 up to a0aca47fef 2017-01-17 19:12:20 +01:00
Christophe Simonis 81f59cee2c [MERGE] forward port branch saas-11 up to b844d93889 2017-01-02 14:38:59 +01:00
Nicolas Lempereur 2639d634bb [FIX] calendar: day of month is expected filled in code
Before this commit there was an error when we chose a monthly recurrence
with "Day of Month" of type "Day of" because the code expect them to be
set. In any case they are required field so if they are not field we
should just ignore it.

opw-702852
2016-12-27 16:50:39 +01:00
Christophe Simonis 97debd09c0 [MERGE] forward port branch saas-12 up to 57774ef 2016-10-28 17:05:21 +02:00
Christophe Simonis 6466aa499f [MERGE] forward port branch saas-12 up to 00f4547 2016-10-19 18:09:53 +02:00
Jeremy Kersten 39d4486ded [FIX] calendar: rename function call for _get_recurrent_date_by_event
Function has been prefixed with an underscore by commit #21e4579551a

Avoid traceback where 'get_recurrent_date_by_event' is not defined

Thix commit closes #13727
2016-10-11 15:45:05 +02:00
Christophe Simonis a7ba6cde9c [MERGE] forward port branch saas-12 up to 7134aff 2016-09-28 16:28:31 +02:00
Richard Mathot 2bb37b5d1e [FIX] calendar: don't crash on missing optional dependency
For historical reasons, `vobject`* Python library is not mandatory in
Odoo.

Since refactoring 6af6148a24,
get_ics_file() returns now a dictionary whose keys are calendar.event
ids and values are the corresponding ics file.
If `vobject` is not available, it returns an empty dictionary that
could cause calendar.py to crash because it always expects to find the
event's key.

Before this refactoring, this method was called and architectured in a
different manner, so no crash was happening.

This commit prevents the crash if `vobject` is not installed and logs a
warning.

*vobject allows to generate iCalendar files
2016-09-28 13:43:20 +02:00
Christophe Simonis 1dedb95c41 [FIX] calendar: correct field type
`display_start` was wrongly change to `Date` type during convertion to
new-api.
2016-09-27 18:10:37 +02:00
Pierre Masereel 5ae29848ea [FIX] calendar: event display time timezone
If the method "_get_display_time" is called on an event and if the
user or partner has no timezone set. The string returned by the function
contains the value 'False' instead of a timezone.

To fix this, we replaced the "False" value by "UTC", because UTC is the
default timezone in Odoo.
2016-09-21 11:54:19 +02:00
Thibault Delavallée b9e31f132f [FIX] calendar: correct used variable probably introduced when migrating 2016-09-05 18:21:53 +02:00
Denis Vermylen (dve) b769b66f51 [FIX] calendar: fix call to get_recurrent_ids broken when migrating
get_recurrent_ids is a multi method. Model should be browsed before calling
the method.
2016-09-02 10:14:30 +02:00
Raphael Collet a7445b4053 [REF] registry: move functionalities from RegistryManager to Registry
The API of `Registry` has been modified as follows:
 - `Registry(name)` returns the registry of the given database
 - `Registry.new(name)` forces the creation of a new `Registry` object
 - `Registry.delete(name)` discards the given registry
 - `Registry.delete_all()` discards all registries
 - `registry.setup_signaling()` initializes the signaling for `registry`
 - `registry.check_signaling()` returns an up-to-date `registry`
 - `registry.signal_registry_change()` notifies that `registry` has changed
 - `registry.signal_caches_change()` notifies potential cache invalidation
2016-09-01 13:43:45 +02:00
Raphael Collet 70dec2d896 [REF] registry: now mapping model name to model class 2016-08-31 17:21:59 +02:00
Simon Lejeune eebdef1a99 [FIX] calendar: traceback during create
The onchange produced a traceback because, even if start and stop
are required, they have no default value. Adapted `_get_duration`
function so that it is robust to that usecase.
2016-08-23 16:25:30 +02:00
Thibault Delavallée c8a313d51e [IMP] various: use odoo for imports instead of openerp and update class names 2016-08-10 15:48:07 +02:00
Jérome Maes 4b8de95d29 [FIX] calendar: bad method name called 2016-08-08 13:52:13 +02:00
Jérome Maes 26ccf212d8 [FIX] calendar: force computation of for calendar.event 2016-08-08 13:52:02 +02:00
Jérome Maes 1bb74b7588 [FIX] calendar: use on list instead of ... 2016-08-05 08:43:46 +02:00
qsm-odoo 055b2cbe3f [FIX] calendar: adapt function parameter comment
Commit b7b935dbf8 changed the role of a function parameter but did not
adapt its commented explanation.
2016-08-03 14:13:58 +02:00
Jérome Maes 0a17a144c6 [FIX] calendar: list has no 'unlink' method
Due to migration to new API.
2016-08-02 15:23:07 +02:00
Christophe Simonis 523d3af131 [MERGE] forward port branch saas-12 up to 16d65a8 2016-07-29 17:55:21 +02:00
Jérome Maes 51903f8a50 [IMP] calendar: rename cn field into common_name
We are not so lazy anymore. Oh wait ... !
2016-07-14 14:04:35 +02:00
tde-banana-odoo b7b935dbf8 [IMP] calendar: clean sending email to attendees
Change `send_email_to_attendees` signature to force setting email
template and remove `email_from`, since it is not usefull.

Now, when sending email to attendee, meeting author will also received
an invitation.

`get_ics_file` has been modified to be executed in batch.
2016-07-14 14:04:35 +02:00
Jérome Maes b1316f44eb [IMP] calendar, hr_holidays: uniformize context key to prevent sending mail to attendees
Code courtesy of tde-banana-odoo
2016-07-14 14:04:35 +02:00
Jérome Maes 95938118c7 [REF] calendar: change computed fields for start and stop dates
- `start` and `stop` fields are not computed anymore. Indeed, it was not normal
to have required stored computed field. Normally we shouldn't write on these
fields, but since client calendar api need them, we keep them as normal
datetime fields
- `start_date` and `stop_date` become stored computed date fields depending of
`start`,`stop` and `allday`. An inverse method allow to write on these fields,
since it can be the case from the form view
- `start_datetime` and `stop_datetime` follow the same logic
- `onchange_allday` code is mostly moved in `_inverse_dates` of new computed fields
- `_set_date` method (called in create/write) is now removed, since it does the same
thing as old onchanges
- `_onchange_duration` is kept to adapt `stop_datetime` when changing `start_datetime`
or `duration` on form view
- Duration is now 'zero' in database for allday meeting. Before, it was not changed.
Setting it to zero is less falsy. `duration` can not (yet) be a computed field since
it depends on others computed fields.

After migration, we manage to keep old behavior but the code was crap. Switching stored computed
fields make it cleaner, and respecting new API standarts.
This changes avoid multiple methods doing almost the same thing, and is less 'buggy'.
2016-07-14 14:04:34 +02:00
Jérome Maes 5040719b8d [REF] calendar: remove useless code 2016-07-14 14:04:34 +02:00
Jérome Maes 21e4579551 [REF] calendar: reorder methods, make some private, and rename some others 2016-07-14 14:04:34 +02:00
Jérome Maes 6af6148a24 [REF] calendar: code cleaning to be more 'api v8'
- move `get_ics_file` from calendar.attendee to calendar.event
- remove calendar.event arguments to convert method into
`api.multi`, which make more sense
- `create_attendees` now returns recordset instead of list of ids
- change signature of `get_interval` method
2016-07-14 14:04:34 +02:00
Jérome Maes bcfe16a69e [IMP] calendar: add helpers to mange virtual ids 2016-07-14 14:04:34 +02:00
Jérome Maes 6bc14c9142 [MIG] calendar: migration to new API
Migration of all python code, mostly withtout chagnes. And adapting
xml files to guidelines.

On calendar.py, some changes have been perform to make the migration works :
- `_compute` method has been split into `_compute_dates`, `_compute_attendee` and `_compute_display_time`.
- remove unused method `onchange_partner_ids`, `check_partners_email`
- make `compute_rule_string` use a cache record instead of a value
dict to avoid crashes
- remove `new_invitation_token` method, and make it a default value on attendee creation
- add a default value on `day` field, otherwise the "Please select a
proper day of the month" exception is raised during the onchange
2016-07-14 14:04:33 +02:00
Jérome Maes fe42986ee2 [MOV] calendar: split models in multiple files 2016-07-14 14:04:33 +02:00
Jérome Maes b535461e47 [MOV] calendar: reoganize module directory 2016-07-14 14:04:33 +02:00