62 lines
2.5 KiB
Python
62 lines
2.5 KiB
Python
from odoo import api, fields, models, _
|
|
|
|
|
|
class ProjectProject(models.Model):
|
|
_inherit = 'project.project'
|
|
|
|
sequence_name = fields.Char("Project Number", copy=False, readonly=True)
|
|
task_sequence_id = fields.Many2one(
|
|
'ir.sequence',
|
|
string="Task Sequence",
|
|
readonly=True,
|
|
copy=False,
|
|
help="Sequence for tasks of this project"
|
|
)
|
|
|
|
@api.model
|
|
def _get_shared_project_sequence(self):
|
|
"""Get or create a shared sequence for all projects"""
|
|
sequence = self.env['ir.sequence'].sudo().search([('code', '=', 'project.project.sequence')], limit=1)
|
|
if not sequence:
|
|
sequence = self.env['ir.sequence'].sudo().create({
|
|
'name': _("Project Sequence"),
|
|
'implementation': 'no_gap',
|
|
'padding': 3,
|
|
'use_date_range': False,
|
|
'prefix': 'PROJ-',
|
|
'code': 'project.project.sequence',
|
|
})
|
|
return sequence
|
|
|
|
@api.model_create_multi
|
|
def create(self, vals_list):
|
|
projects = super().create(vals_list)
|
|
sequence = self._get_shared_project_sequence()
|
|
for project in projects:
|
|
if not project.sequence_name:
|
|
project.sequence_name = sequence.next_by_id()
|
|
return projects
|
|
|
|
project_lead = fields.Many2one("res.users", string="Project Lead")
|
|
members_ids = fields.Many2many('res.users', 'project_user_rel', 'project_id',
|
|
'user_id', 'Project Members', help="""Project's
|
|
members are users who can have an access to
|
|
the tasks related to this project."""
|
|
)
|
|
user_id = fields.Many2one('res.users', string='Project Manager', default=lambda self: self.env.user, tracking=True,
|
|
domain=lambda self: [('groups_id', 'in', [self.env.ref('project.group_project_manager').id,self.env.ref('project_task_timesheet_extended.group_project_supervisor').id]),('share','=',False)],)
|
|
|
|
|
|
def add_users(self):
|
|
return {
|
|
'type': 'ir.actions.act_window',
|
|
'name': 'Add Users',
|
|
'res_model': 'project.user.assign.wizard',
|
|
'view_mode': 'form',
|
|
'view_id': self.env.ref('project_task_timesheet_extended.project_user_assignment_form_view').id,
|
|
'target': 'new',
|
|
'context': {'default_members_ids':[(6, 0, self.members_ids.ids)],
|
|
},
|
|
}
|
|
|