The dictionary `_group_by_full` is replaced by a field parameter `group_expand`
that is assigned to the method name. The API of the method has been simplified
as well:
@api.multi
def _read_group_stage_ids(self, domain, read_group_order=None, access_rights_uid=None):
# the stages are given by self.ids (wrong model);
# read_group_order is the order given to read_group() on self;
# return stages.name_get(), {stage.id: stage.fold)
_group_by_full = {'stage_id': _read_group_stage_ids}
is now written:
stage_id = fields.Many2one(..., group_expand='_read_group_stage_ids')
@api.model
def _read_group_stage_ids(self, stages, domain, order):
# stages is a recordset;
# order is the order to use on stages' model;
# return a recordset which is a superset of stages
Uncheck use tasks and/or use issues and/or allow timesheets
all links are still available from the kanban
timesheet is available from the form view
tasks and issues hidden in the form view
NB: allow_timesheets was defined in timesheet_grid, but it should be standard in hr_timesheet
Indeed currently it is only visible in edit mode. However we noticed
people did not trigger the edit mode to find fields they do not expect
to find. Making them visible helps understanding projects can be used
notably for tasks and issues.
* Number of emails should not take into account internal notifications
* Remove Channel and Tasks from issue report as those are not really
used anymore
* Remove New filter as it can be done through stage filtering instead
of using a not obvious heuristic based on stage sequence
A new view is dedicated for that kanban view. It is based on the standard
issue kanban view but using the group_create=false attribute to disable
the ability to create new columns.
It is done using a different view because standard issue kanban view
requires this ability. However it is not possible to achieve that goal
using conditional attributes.
Several modules defines records with the external ID `base.foo_bar` while it is
created inside this module (typically menus and groups).
While there is no technical reasons to do so but this may introduce issues:
- these records will not be deleted during uninstall
- if a language is loaded before the installation of the module, it won't be
translated
The uninstallation will only remove the records with an external id linked to
this module (these would only be removed when removing base).
Installing a language before the module will drop the translations not linked
to an existing external id (as it can not be resolved).
This commit correct all the external ids tagged as from base or other incorrect
modules.
If you create an issue when `default_project_id` is set, the stage_id
is initialized at the lowest sequence of the stages of the project,
which is normal. However, when you change the project of the task,
the stage_id was not correctly reset. If you save at this time, you
add the selected stage in the project.
Also, the stage_id was not correctly cleared if you remove the project.
If you create an issue directly, the key `default_project_id` is not set
in the context. This key is used to compute the default stage of the
created issue. It is done by creating a domain. Unfortunately, the
domain is always filled with `[('fold', '=', False)]` and thus it
always returns a result that makes no sense when `default_project_id`
is not set. Worse, if you actually create the issue, the found stage
that was not in your project is now a part of it.
The fix is to return no result if the `default_project_id` is not set
in the context.
[FIX] website_project: override get_access_action to redirect to my/tasks,projects
[FIX] project_issue: Don't send notif template to portal customers if no website
[FIX] website_project: Portal users can receive notif template