Basicaly, do this RPC once, at webclient startup, to get the next notification.
Do the RPC again when the notification is displayed to get the next one.
When an event with alarm is created, edited or removed, trigger an event on the
bus for all involved users (the attendees) with an update of their next
calendar notification.
Since the new QWeb engine, `groups` directives on template
rendered in a route with auth=none is simply ignored, since
all is done as SUPERUSER_ID, it was impossible to instanciate
the webclient to check if the session is valid and to display
meeting info or redirect to event form view.
It seems that we don't want to fix this because routes auth=none
are rare, and special. So it is not considered as a bug.
The fix for calendar is, however, to do redirection or template
rendering server side.
Also:
- keeps unticked filters unticked when deleting a filter or adding a new one
- correctly tick filters when clicking on the partner's name (that code was
broken)
- remove reference to instance.web introduced by a forwardport
- wrong use of self in CalendarView's init()
When loading a calendar view with a partner_id in the context, the sidebar's
filters should be disabled by default to only display events related to that
partner.
Before this rev., the events were loaded twice:
- once with the date range as domain (and optionally the content of the search
view),
- once with the date range and the partner_ids of the sidebar's filters (and
content of search view).
The first loading was therefore useless, and might also be very costly.
For Manufacturing and Repairs, replace the gavel by a wrench. A gavel is a small hammer used by a judge; it is not used in manufacturing. Keep it for when we will have a Law app.
For POS, replace the briefcase by a screen:
For timesheet, replace the calendar by a clock:
For calendar, use the calendar:
For event, use a ticket, it's more generic than a martini glass:
Before the fix dda8e2211a, the duplicate
records were erased thanks to the index used in the dictionary(id of the partner).
After this fix, to avoid this this problem, the label of each record is used as
key in the dictionary.
When accepting/declining a calendar event invitation received by mail,
we landed on an empty gray webclient. The confirmation page had been
dropped with passage to new JS API / new calendar / new webclient.
Previous mechanism had been reimplemented: custom web client with event
information/confirmation if the user is not connected or redirection to
the event form view if the user is connected.
+ FIX manyattendeetag : the status circle did not turn red when an
user declined the invitation.
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.
when mode is switched m2o should be reinitialized, and old instance of
field manager should be destroyed otherwise it will through traceback
'cannot call methods on autocomplete prior to initialization', also
improved the reload_favorite_list, it should be called when
calendar.contacts record is created
- Contact filters were dropped with the new design
- The 'me' filter was not working correctly (wrong colors)
- Remove some useless/unnecessary code
- Use new API confirm dialogs
- Convert CSS to LESS
for compatibility with the enterprise edition.
Also add type=button as the type attribute should always be specified for the
<button> element (different browsers may use different default types).
The module system needs to know the dependencies of a given module
before executing the function. This is why the dependencies were
defined once in an array, and then were described one more times in the
call to require.
But a trick can simplify this: the boot function can parse the string
representation of the module and extract the calls to require from it.
It is more work for the processor, but it leads to simpler module
definitions.
These two addons were doing evil things with the way registries works.
1. they create a new registry to add something in it,
2. they replace the existing reference with another
3. they don't use the "add" method.
Seriously, original coder, what were you thinking?
Improved calendar's favorite meeting list and added a input box to directly
insert the partner in favorite list and 'X' to remove the partner's name
from the favorite meeting list in calendar view.