Project and Services mailing list archives
project@odoo-community.org
Browse archives
Re: [OCA/project] project_task_scheduling: Module for automatic task planning (#419)
Re: [OCA/project] project_task_scheduling: Module for automatic task planning (#419)
Re: [OCA/project] project_task_scheduling: Module for automatic task planning (#419)
by "Eric @ Elico Corp" <notifications@github.com> - 17/08/2018 09:45:49@elicoidal commented on this pull request.
This module requires proper documentation (functional and technical). As is, it is very difficult to use.
In project_task_assignment/readme/DESCRIPTION.rst:
> @@ -0,0 +1,5 @@ +This module allow you:
add blank line
In project_task_assignment/tests/test_project_task.py:
> @@ -0,0 +1,36 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
use standard short headers
In project_task_assignment/tests/__init__.py:
> @@ -0,0 +1,2 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
no headers in init.py files
In project_task_scheduling/readme/DESCRIPTION.rst:
> @@ -0,0 +1 @@ +This module allow you to execute an automated project task scheduling.
Could you improve the description and add a use case?
In project_task_scheduling/wizards/scheduling_wizard.py:
> +
+ _state_obj = namedtuple('State', (
+ 'tasks_list',
+ 'tasks_dict',
+ 'employees_dict',
+ 'evaluation'
+ ))
+ _MAX_HOURS_DELAYED = 1000000
+
+ # fields
+ # ------
+ date_start = fields.Datetime(
+ default=lambda self: self._default_start(),
+ required=True,
+ )
+ cooling_ratio = fields.Float(
Could you add a help message?
In project_task_scheduling/wizards/scheduling_wizard.py:
> + def _obj_func(self, state):
+ total_hours_dy = task_dy_count = 0
+ for interval in state.tasks_dict.values():
+ if not interval.data.get('assigned', False):
+ task = interval.data['task']
+ deadline = fields.Date.from_string(task.date_deadline)
+ if deadline:
+ deadline_dt = datetime.combine(deadline, time.max)
+ delayed_td = (interval.end_datetime - deadline_dt)
+ total_hours_dy += delayed_td.total_seconds() / 3600.0
+ is_delayed = interval.data.get('delayed', False)
+ task_dy_count += 1 if is_delayed else 0
+
+ if total_hours_dy > self._MAX_HOURS_DELAYED:
+ raise ValidationError(_(
+ 'Maybe some tasks have a very long "Initially Planned Hours"'
You provide the explanation but not the actual error
In project_task_scheduling/wizards/scheduling_wizard.py:
> + interval = False + index = 0 + for employee_interval in state.employees_dict.get(employee.id, []): + stop = employee_interval.start_datetime + if stop > start: + interval = self._get_interval(task.planned_hours, employee, + start, stop) + if interval: + break + start = max(employee_interval.end_datetime, start) + index += 1 + if not interval: + interval = self._get_interval(task.planned_hours, employee, start) + return interval, index + + def _greedy_distribution(self, state, init_index=0):
Please add docstrings to all methods
—
You are receiving this because you are on a team that was mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.![]()