Skip to content

Commit

Permalink
[IMP] event_project: black, isort, prettier
Browse files Browse the repository at this point in the history
  • Loading branch information
Ernesto Tejeda committed Jan 8, 2022
1 parent d1c97e2 commit a54b2f6
Show file tree
Hide file tree
Showing 11 changed files with 103 additions and 93 deletions.
1 change: 0 additions & 1 deletion event_project/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@

from . import models
14 changes: 5 additions & 9 deletions event_project/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,16 @@
{
"name": "Event project",
"version": "12.0.1.0.0",
"author": "Tecnativa, "
"Odoo Community Association (OCA)",
"website": "https://github.com/OCA/project",
"author": "Tecnativa, " "Odoo Community Association (OCA)",
"website": "https://github.com/OCA/event",
"license": "AGPL-3",
"category": "Event Management",
"depends": [
'event',
'project_recalculate'
],
'data': [
"depends": ["event", "project_recalculate"],
"data": [
"views/event_event_view.xml",
"views/project_project_view.xml",
"views/project_task_view.xml",
"security/ir.model.access.csv",
],
'installable': True,
"installable": True,
}
52 changes: 26 additions & 26 deletions event_project/models/event_event.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,26 @@


class EventEvent(models.Model):
_inherit = 'event.event'
_inherit = "event.event"

project_id = fields.Many2one(
comodel_name='project.project',
string='Related project',
comodel_name="project.project",
string="Related project",
help="Project end date will be updated with event start date.",
)
task_ids = fields.One2many(
comodel_name='project.task',
inverse_name='event_id',
string='Tasks',
comodel_name="project.task",
inverse_name="event_id",
string="Tasks",
readonly=True,
)
count_tasks = fields.Integer(
string='Task number',
compute='_count_tasks',
string="Task number",
compute="_count_tasks",
)

@api.multi
@api.depends('task_ids')
@api.depends("task_ids")
def _count_tasks(self):
for event in self:
event.count_tasks = len(event.task_ids)
Expand All @@ -35,26 +35,26 @@ def project_data_update(self, vals):
recalculate = False
if self.project_id:
project_vals = {}
if vals.get('name'):
project_vals['name'] = self.display_name
if vals.get('date_begin'):
project_vals['date'] = self.date_begin
if vals.get("name"):
project_vals["name"] = self.display_name
if vals.get("date_begin"):
project_vals["date"] = self.date_begin
recalculate = True
if vals.get('project_id'):
project_vals['event_id'] = self.id
project_vals['calculation_type'] = 'date_end'
project_vals['date'] = self.date_begin
project_vals['name'] = self.display_name
if vals.get("project_id"):
project_vals["event_id"] = self.id
project_vals["calculation_type"] = "date_end"
project_vals["date"] = self.date_begin
project_vals["name"] = self.display_name
recalculate = True
if project_vals:
self.project_id.write(project_vals)
return recalculate

def _check_new_project(self, vals):
if vals.get('project_id'):
vals['project_id'] = self.env['project.project'].browse(
vals['project_id']
).copy().id
if vals.get("project_id"):
vals["project_id"] = (
self.env["project.project"].browse(vals["project_id"]).copy().id
)

@api.model
def create(self, vals):
Expand All @@ -65,20 +65,20 @@ def create(self, vals):

@api.multi
def write(self, vals):
if vals.get('project_id') is not None and not vals.get('project_id'):
self.mapped('project_id').write({'event_id': False})
if vals.get("project_id") is not None and not vals.get("project_id"):
self.mapped("project_id").write({"event_id": False})
self._check_new_project(vals)
res = super(EventEvent, self).write(vals)
recalculate = self.project_data_update(vals)
if recalculate and not self.env.context.get('no_recalculate'):
if recalculate and not self.env.context.get("no_recalculate"):
self.project_id.project_recalculate()
return res

@api.multi
def button_cancel(self):
"""Archive linked project when event is cancelled"""
super(EventEvent, self).button_cancel()
self.mapped('project_id').write({'active': False})
self.mapped("project_id").write({"active": False})

@api.multi
def button_draft(self):
Expand Down
5 changes: 3 additions & 2 deletions event_project/models/project_project.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@


class Project(models.Model):
_inherit = 'project.project'
_inherit = "project.project"

event_id = fields.Many2one(
comodel_name='event.event', string="Related event", readonly=True)
comodel_name="event.event", string="Related event", readonly=True
)
7 changes: 4 additions & 3 deletions event_project/models/project_task.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@


class ProjectTask(models.Model):
_inherit = 'project.task'
_inherit = "project.task"

event_id = fields.Many2one(string="Related event", store=True,
related='project_id.event_id')
event_id = fields.Many2one(
string="Related event", store=True, related="project_id.event_id"
)
71 changes: 38 additions & 33 deletions event_project/tests/test_event_project.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,61 +2,66 @@
# Copyright 2017 David Vidal <david.vidal@tecnativa.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from datetime import date, timedelta

from odoo import fields
from odoo.tests import common
from datetime import timedelta, date


class TestEventProject(common.SavepointCase):

@classmethod
def setUpClass(cls):
super(TestEventProject, cls).setUpClass()
cls.date = {
'begin': fields.Date.to_string(date.today()),
'end': fields.Date.to_string(date.today() + timedelta(days=7)),
'begin2': fields.Date.to_string(date.today() + timedelta(days=1)),
'end2': fields.Date.to_string(date.today() + timedelta(days=9)),
"begin": fields.Date.to_string(date.today()),
"end": fields.Date.to_string(date.today() + timedelta(days=7)),
"begin2": fields.Date.to_string(date.today() + timedelta(days=1)),
"end2": fields.Date.to_string(date.today() + timedelta(days=9)),
}
cls.project = cls.env['project.project'].create({
'name': 'Test project',
})
cls.project_2 = cls.env['project.project'].create({
'name': 'Test project 2',
})
cls.event = cls.env['event.event'].create({
'name': 'Test event with project',
'date_begin': cls.date['begin'],
'date_end': cls.date['end'],
'project_id': cls.project.id,
})
cls.task = cls.env['project.task'].create({
'name': 'Task in project 2',
'project_id': cls.project_2.id,
})
cls.project = cls.env["project.project"].create(
{
"name": "Test project",
}
)
cls.project_2 = cls.env["project.project"].create(
{
"name": "Test project 2",
}
)
cls.event = cls.env["event.event"].create(
{
"name": "Test event with project",
"date_begin": cls.date["begin"],
"date_end": cls.date["end"],
"project_id": cls.project.id,
}
)
cls.task = cls.env["project.task"].create(
{
"name": "Task in project 2",
"project_id": cls.project_2.id,
}
)

def test_01_defaults(self):
self.assertEqual(self.event.project_id.calculation_type, 'date_end')
self.assertEqual(self.event.project_id.date,
self.event.date_begin.date())
self.assertEqual(self.event.project_id.calculation_type, "date_end")
self.assertEqual(self.event.project_id.date, self.event.date_begin.date())
self.assertEqual(self.event.display_name, self.event.project_id.name)

def test_02_project_recalculation(self):
self.event.date_begin = self.date['begin2']
self.event.date_end = self.date['end2']
self.event.name = 'Event name changed'
self.assertEqual(self.event.project_id.date,
self.event.date_begin.date())
self.event.date_begin = self.date["begin2"]
self.event.date_end = self.date["end2"]
self.event.name = "Event name changed"
self.assertEqual(self.event.project_id.date, self.event.date_begin.date())
self.assertEqual(self.event.display_name, self.event.project_id.name)

def test_03_project_change(self):
self.event.project_id = self.project_2
self.event.refresh()
self.assertTrue(self.event.project_id)
self.assertNotEqual(self.event.project_id, self.project_2)
self.assertEqual(self.event.project_id.calculation_type, 'date_end')
self.assertEqual(self.event.project_id.date,
self.event.date_begin.date())
self.assertEqual(self.event.project_id.calculation_type, "date_end")
self.assertEqual(self.event.project_id.date, self.event.date_begin.date())
self.assertEqual(self.event.display_name, self.event.project_id.name)
self.assertEqual(self.event.count_tasks, 1)

Expand Down
18 changes: 11 additions & 7 deletions event_project/views/event_event_view.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8" ?>
<odoo>

<!-- Action for smartbutton in event form view -->
Expand All @@ -15,19 +15,23 @@
<record id="view_event_form" model="ir.ui.view">
<field name="name">Add project to event</field>
<field name="model">event.event</field>
<field name="inherit_id" ref="event.view_event_form"/>
<field name="inherit_id" ref="event.view_event_form" />
<field name="arch" type="xml">
<field name="date_tz" position="after">
<field name="project_id"
domain="[('event_id', '=', False), ('active', '!=', False)]"/>
<field
name="project_id"
domain="[('event_id', '=', False), ('active', '!=', False)]"
/>
</field>
<div name="button_box" position="inside">
<button name="%(act_event_task_list)d"
<button
name="%(act_event_task_list)d"
type="action"
class="oe_stat_button oe_inline"
icon="fa-tasks"
attrs="{'invisible': [('count_tasks','&lt;','1')]}">
<field name="count_tasks" widget="statinfo" string="Tasks"/>
attrs="{'invisible': [('count_tasks','&lt;','1')]}"
>
<field name="count_tasks" widget="statinfo" string="Tasks" />
</button>
</div>
</field>
Expand Down
7 changes: 3 additions & 4 deletions event_project/views/project_project_view.xml
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8" ?>
<odoo>

<!-- Add related event to project form view -->
<record id="edit_project" model="ir.ui.view">
<field name="name">Add related event to project</field>
<field name="model">project.project</field>
<field name="inherit_id" ref="project.edit_project"/>
<field name="inherit_id" ref="project.edit_project" />
<field name="arch" type="xml">
<field name="partner_id" position="after">
<field name="event_id"
attrs="{'invisible': [('event_id', '=', False)]}"/>
<field name="event_id" attrs="{'invisible': [('event_id', '=', False)]}" />
</field>
</field>
</record>
Expand Down
14 changes: 6 additions & 8 deletions event_project/views/project_task_view.xml
Original file line number Diff line number Diff line change
@@ -1,18 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8" ?>
<odoo>

<!-- Allows to search by event and group by event -->
<record id="view_task_search_form" model="ir.ui.view">
<field name="name">Filter and group tasks by event</field>
<field name="model">project.task</field>
<field name="inherit_id" ref="project.view_task_search_form"/>
<field name="inherit_id" ref="project.view_task_search_form" />
<field name="arch" type="xml">
<field name="partner_id" position="after">
<field name="event_id"/>
<field name="event_id" />
</field>
<group position="inside">
<filter string="Event" name="event"
context="{'group_by': 'event_id'}"/>
<filter string="Event" name="event" context="{'group_by': 'event_id'}" />
</group>
</field>
</record>
Expand All @@ -21,11 +20,10 @@
<record id="view_task_form2" model="ir.ui.view">
<field name="name">Add related event to task</field>
<field name="model">project.task</field>
<field name="inherit_id" ref="project.view_task_form2"/>
<field name="inherit_id" ref="project.view_task_form2" />
<field name="arch" type="xml">
<field name="tag_ids" position="after">
<field name="event_id"
attrs="{'invisible': [('event_id', '=', False)]}"/>
<field name="event_id" attrs="{'invisible': [('event_id', '=', False)]}" />
</field>
</field>
</record>
Expand Down
1 change: 1 addition & 0 deletions setup/event_project/odoo/addons/event_project
6 changes: 6 additions & 0 deletions setup/event_project/setup.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import setuptools

setuptools.setup(
setup_requires=['setuptools-odoo'],
odoo_addon=True,
)

0 comments on commit a54b2f6

Please sign in to comment.