89 lines
3.8 KiB
Python
89 lines
3.8 KiB
Python
# Part of Odoo. See LICENSE file for full copyright and licensing details
|
|
|
|
from datetime import datetime
|
|
from dateutil.relativedelta import relativedelta
|
|
|
|
from odoo.addons.project.tests.test_project_base import TestProjectCommon
|
|
|
|
|
|
class TestSmartScheduleCommon(TestProjectCommon):
|
|
@classmethod
|
|
def setUpClass(cls):
|
|
super().setUpClass()
|
|
cls.projectuser_resource, cls.projectmanager_resource = cls.env['resource.resource'].create([
|
|
{
|
|
'calendar_id': cls.project_pigs.resource_calendar_id.id,
|
|
'company_id': cls.user_projectuser.company_id.id,
|
|
'name': cls.user_projectuser.name,
|
|
'user_id': cls.user_projectuser.id,
|
|
'tz': cls.user_projectuser.tz,
|
|
},
|
|
{
|
|
'calendar_id': cls.project_pigs.resource_calendar_id.id,
|
|
'company_id': cls.user_projectmanager.company_id.id,
|
|
'name': cls.user_projectmanager.name,
|
|
'user_id': cls.user_projectmanager.id,
|
|
'tz': cls.user_projectmanager.tz,
|
|
},
|
|
])
|
|
|
|
tasks = cls.env['project.task'].create([
|
|
# Tasks with project pigs
|
|
{
|
|
'name': 'task_project_pigs_with_allocated_hours_user',
|
|
'allocated_hours': 8,
|
|
'project_id': cls.project_pigs.id,
|
|
'user_ids': [cls.user_projectuser.id],
|
|
},
|
|
{
|
|
'name': 'task_project_pigs_with_allocated_hours_manager',
|
|
'allocated_hours': 10,
|
|
'project_id': cls.project_pigs.id,
|
|
'user_ids': [cls.user_projectmanager.id],
|
|
},
|
|
{
|
|
'name': 'task_project_pigs_with_allocated_hours_no_user',
|
|
'allocated_hours': 10,
|
|
'project_id': cls.project_pigs.id,
|
|
'user_ids': None,
|
|
},
|
|
{
|
|
'name': 'task_project_pigs_no_allocated_hours_user',
|
|
'project_id': cls.project_pigs.id,
|
|
'user_ids': [cls.user_projectuser.id],
|
|
},
|
|
{
|
|
'name': 'task_project_pigs_no_allocated_hours_manager',
|
|
'project_id': cls.project_pigs.id,
|
|
'user_ids': [cls.user_projectmanager.id],
|
|
},
|
|
{
|
|
'name': 'task_project_pigs_no_allocated_hours_no_user',
|
|
'project_id': cls.project_pigs.id,
|
|
'user_ids': None,
|
|
},
|
|
# Tasks with project goats
|
|
{
|
|
'name': 'task_project_goats_with_allocated_hours_user',
|
|
'project_id': cls.project_goats.id,
|
|
'allocated_hours': 10,
|
|
'user_ids': [cls.user_projectuser.id],
|
|
},
|
|
{
|
|
'name': 'task_project_goats_no_allocated_hours_user',
|
|
'project_id': cls.project_goats.id,
|
|
'user_ids': [cls.user_projectuser.id],
|
|
},
|
|
])
|
|
|
|
cls.task_project_pigs_with_allocated_hours_user, cls.task_project_pigs_with_allocated_hours_manager, \
|
|
cls.task_project_pigs_with_allocated_hours_no_user, cls.task_project_pigs_no_allocated_hours_user, \
|
|
cls.task_project_pigs_no_allocated_hours_manager, cls.task_project_pigs_no_allocated_hours_no_user, \
|
|
cls.task_project_goats_with_allocated_hours_user, cls.task_project_goats_no_allocated_hours_user = tasks
|
|
|
|
cls.start_date_view = datetime.now()
|
|
cls.end_date_view = cls.start_date_view + relativedelta(days=31)
|
|
cls.start_date_view_str = cls.start_date_view.strftime('%Y-%m-%d %H:%M:%S')
|
|
cls.end_date_view_str = cls.end_date_view.strftime('%Y-%m-%d %H:%M:%S')
|
|
cls.is_module_timesheet_grid_installed = hasattr(cls.env['project.task'], 'allow_timesheets')
|