Compare commits

...

68 Commits

Author SHA1 Message Date
a600f20bbb Test recuperation de l'erreur 2017-12-05 14:06:58 +01:00
95dc6a23b6 Test relation 2017-12-05 12:46:36 +01:00
22134ca9ee / 2017-12-04 16:45:23 +01:00
0e5b176930 Debut des test relation sur check_if_coworker_is_same 2017-12-04 15:54:30 +01:00
34efb13093 Structure de test event 2017-12-04 14:52:48 +01:00
007af79930 Code optimisé 2017-12-04 14:16:05 +01:00
176e5ce696 / 2017-12-04 12:29:37 +01:00
817665d782 Test avec is-coworker True et un coworker type.
Test avec is_coworker False et un coworker type qui donne false.
2017-12-04 12:29:14 +01:00
161dcdaafe Test avec True 2017-12-04 11:38:27 +01:00
9e40808da7 Defini homer comme non coworker et dit que le resultat de coworker-type est false 2017-12-04 11:32:09 +01:00
32f8dd52ea Debut du test coworker type 2017-12-04 11:22:45 +01:00
97192b2a3c / 2017-12-04 10:23:33 +01:00
8ffd023640 Test de full_adress OK 2017-12-04 10:20:50 +01:00
c6c518ff68 / 2017-11-30 19:46:20 +01:00
6685e4e369 Ajout du test d'erreurs 2017-11-30 19:45:58 +01:00
58d6dec996 Je n'ai pas modifié le with pour le moment et j'ai une syntax error sur mon full_address que je ne trouve pas. 2017-11-30 18:59:43 +01:00
525dda9f04 Suite 2017-11-30 18:39:33 +01:00
611dc6f5f4 Probablement un début de compréntion plus précise :) 2017-11-30 18:30:54 +01:00
3cf2ff0ebc Ajout de la variable address 2017-11-30 17:57:25 +01:00
521cccce69 Suite 2017-11-30 17:46:35 +01:00
e21d5b92f4 début du test sur full adress 2017-11-30 17:35:50 +01:00
d266986445 Merge branch 'V4' of fabien/michel_coworking into V4 2017-11-30 08:27:25 +00:00
a9d9429b04 [ADD]Coworker unit testing (beginning) 2017-11-29 21:06:00 +01:00
b00b0c96a4 Maj Cousin 2017-11-29 17:37:50 +01:00
c2e8df0081 relations OK 2017-11-29 17:36:20 +01:00
7c17942736 Début de relation 2017-11-29 17:14:37 +01:00
30bd4eb2d3 Ajout de plusieurs participants OK 2017-11-29 17:04:42 +01:00
49526c558b Essai d'ajout de plusieur participants 2017-11-29 16:50:09 +01:00
8287e674aa Ajout eval= et déplacement de la création de event en sous la création de coworkers 2017-11-29 14:53:50 +01:00
48a5facf34 Changement du non coworking_app_demo.xml 2017-11-29 14:49:24 +01:00
32f86786af Event ok mais pas les participants_ids 2017-11-29 14:37:31 +01:00
498774c8a7 / 2017-11-29 14:29:03 +01:00
aaca3b3db1 création des coworkers OK mais probléme sur les events. 2017-11-29 14:28:37 +01:00
1c46c0f04e Passage de data en demo 2017-11-29 12:13:36 +01:00
3330976fdd Création OK d'un coworker avec un type staffer 2017-11-29 12:07:10 +01:00
1c80800633 Passage des données de demo de coworking_coworker à coworking_app 2017-11-29 11:54:42 +01:00
31306e5b57 Add demo xml file and manifest 2017-11-29 11:06:03 +01:00
60d4824375 Test if coworker 1 or 2 is is_coworker for form and tree 2017-11-29 10:53:11 +01:00
2a1e846304 / 2017-11-28 17:15:18 +01:00
2411fdb93c Remove coworker_count 2017-11-28 15:02:39 +01:00
affa853857 [Contact-date for all] [Sup xpath to search view] [add search group by month and year for all] 2017-11-28 14:47:23 +01:00
2ce2c58a82 Merge branch 'V4' of fabien/michel_coworking into V4 2017-11-28 11:29:52 +00:00
6c8e3a9ccf [IMP]Partner coworker minor enhancements (model + views) 2017-11-28 12:29:13 +01:00
7d52c03561 graph et pivot add view pivot 2017-11-28 11:20:06 +01:00
83c684ff7d Graph et pivot 2017-11-28 11:01:28 +01:00
cb9bf0e328 / 2017-11-27 18:33:38 +01:00
0ff1cc2066 Menu 2017-11-27 18:33:13 +01:00
a0d00c22e0 Add calendar menu 2017-11-27 18:27:31 +01:00
7438312291 kanban ok 2017-11-27 17:53:39 +01:00
0b6b5053c7 Kanban base 2017-11-27 17:06:40 +01:00
e306960bb0 Add search is_coworker filter 2017-11-27 16:53:42 +01:00
ce23b7e78e Tree view and full contact adress 2017-11-27 16:02:09 +01:00
7111308501 / 2017-11-27 14:54:48 +01:00
7e9a754b44 Radion is_coworker 2017-11-27 14:52:39 +01:00
6a1e2cdd28 Radio is_coworker 2017-11-27 14:24:15 +01:00
8c81f0eee6 / 2017-11-27 12:02:39 +01:00
3f7865bba3 Position fields 2017-11-24 18:49:25 +01:00
949ecb41ee / 2017-11-24 17:18:48 +01:00
44042e87a8 whaouu 2017-11-24 17:16:20 +01:00
ebb8b20e14 fields 2017-11-24 16:56:52 +01:00
824dbc7cda / 2017-11-24 16:26:24 +01:00
61274df36d / 2017-11-24 16:25:14 +01:00
2eea737322 / 2017-11-24 11:54:31 +01:00
c40deb8fe7 Probléme de ref = à la ligne 8 2017-11-24 11:32:59 +01:00
3421890717 / 2017-11-24 11:32:03 +01:00
96d3cb418e / 2017-11-24 10:17:51 +01:00
3c68ea83d5 start v4 2017-11-24 10:05:18 +01:00
cad38216de Add contacts modul global depends 2017-11-23 14:33:55 +01:00
27 changed files with 483 additions and 40 deletions

View File

@ -26,5 +26,7 @@
'application': True,
'installable': True,
'data': [],
'demo': ['data/coworking_app_demo.xml'],
'depends': ['coworking_coworker', 'coworking_event']
}

View File

@ -0,0 +1,146 @@
<?xml version="1.0"?>
<odoo>
<!-- Coworker -->
<record id="name_hs" model="res.partner">
<field name="name">Homer Simpson</field>
<field name="contact_date">2017-11-27</field>
<field name="is_coworker">True</field>
<field name="coworker_type">worker</field>
<field name="street">320 Rue de la pioche</field>
<field name="zip">88000</field>
<field name="city">Flousin</field>
<field name="country_id" ref="base.fr" />
</record>
<record id="name_jr" model="res.partner">
<field name="name">Joe Robert</field>
<field name="contact_date">2017-11-29</field>
<field name="is_coworker">True</field>
<field name="coworker_type">staffer</field>
<field name="street">26 Rue de la roche</field>
<field name="zip">38054</field>
<field name="city">Chambéry</field>
<field name="country_id" ref="base.fr" />
</record>
<record id="name_ra" model="res.partner">
<field name="name">Rob Altros</field>
<field name="contact_date">2017-11-29</field>
<field name="is_coworker">True</field>
<field name="coworker_type">member</field>
<field name="street">874 avenue de la source</field>
<field name="zip">38054</field>
<field name="city">Grosland</field>
<field name="country_id" ref="base.fr" />
</record>
<record id="name_so" model="res.partner">
<field name="name">Sophie Lira</field>
<field name="contact_date">2017-11-29</field>
<field name="is_coworker">True</field>
<field name="coworker_type">volunteer</field>
<field name="street">2 avenue chirolin</field>
<field name="zip">38054</field>
<field name="city">Grosland</field>
<field name="country_id" ref="base.fr" />
</record>
<record id="name_cb" model="res.partner">
<field name="name">Camille Bréa</field>
<field name="contact_date">2017-11-29</field>
<field name="is_coworker">True</field>
<field name="coworker_type">visitor</field>
<field name="street">6 Impase des monts</field>
<field name="zip">00254</field>
<field name="city">Grosland</field>
<field name="country_id" ref="base.fr" />
</record>
<!-- Events -->
<record id="event_1" model="coworking.event">
<field name="title">Evenement</field>
<field name="manager_id" ref="name_hs" />
<field name="date_start">2017-11-29</field>
<field name="date_end">2017-12-02</field>
<field name="description">Test de demo création d'event</field>
<field name="participants_ids" eval="[(4, ref('name_jr'), False)]"/>
<field name="statut">confirmed</field>
</record>
<record id="event_2" model="coworking.event">
<field name="title">Formation</field>
<field name="manager_id" ref="name_cb" />
<field name="date_start">2017-11-29</field>
<field name="date_end">2017-11-30</field>
<field name="description">Test de demo création d'event</field>
<field name="participants_ids" eval="[(4, ref('name_hs'), False)]"/>
<field name="statut">confirmed</field>
</record>
<record id="event_3" model="coworking.event">
<field name="title">Cuisine</field>
<field name="manager_id" ref="name_so" />
<field name="date_start">2017-11-29</field>
<field name="date_end">2017-11-30</field>
<field name="description">Test de demo création d'event</field>
<field name="participants_ids" eval="[(4, ref('name_ra'), False)]"/>
<field name="statut">confirmed</field>
</record>
<record id="event_4" model="coworking.event">
<field name="title">Méditation</field>
<field name="manager_id" ref="name_so" />
<field name="date_start">2017-12-05</field>
<field name="date_end">2017-12-10</field>
<field name="description">Test de demo création d'event</field>
<field name="participants_ids" eval="[(6, 0, [ref('name_hs'),
ref('name_ra'), ref('name_cb')])]" />
<field name="statut">confirmed</field>
</record>
<!-- relations -->
<record id="rela_1" model="coworking.relation">
<field name="coworker1" ref="name_so" />
<field name="coworker2" ref="name_hs" />
<field name="relation">Soeur</field>
</record>
<record id="rela_2" model="coworking.relation">
<field name="coworker1" ref="name_hs" />
<field name="coworker2" ref="name_so" />
<field name="relation">Frére</field>
</record>
<record id="rela_3" model="coworking.relation">
<field name="coworker1" ref="name_cb" />
<field name="coworker2" ref="name_ra" />
<field name="relation">Père</field>
</record>
<record id="rela_4" model="coworking.relation">
<field name="coworker1" ref="name_ra" />
<field name="coworker2" ref="name_cb" />
<field name="relation">Mère</field>
</record>
<record id="rela_5" model="coworking.relation">
<field name="coworker1" ref="name_hs" />
<field name="coworker2" ref="name_ra" />
<field name="relation">Donuts</field>
</record>
<record id="rela_6" model="coworking.relation">
<field name="coworker1" ref="name_ra" />
<field name="coworker2" ref="name_hs" />
<field name="relation">Psy</field>
</record>
<record id="rela_7" model="coworking.relation">
<field name="coworker1" ref="name_jr" />
<field name="coworker2" ref="name_hs" />
<field name="relation">Ami</field>
</record>
<record id="rela_8" model="coworking.relation">
<field name="coworker1" ref="name_so" />
<field name="coworker2" ref="name_jr" />
<field name="relation">Ami</field>
</record>
<record id="rela_9" model="coworking.relation">
<field name="coworker1" ref="name_jr" />
<field name="coworker2" ref="name_ra" />
<field name="relation">Cousin</field>
</record>
<record id="rela_10" model="coworking.relation">
<field name="coworker1" ref="name_ra" />
<field name="coworker2" ref="name_jr" />
<field name="relation">Cousine</field>
</record>
</odoo>

View File

@ -25,5 +25,5 @@
'license': 'AGPL-3',
'application': False,
'installable': True,
'depends': ['base']
'depends': ['contacts']
}

View File

@ -25,8 +25,7 @@
'license': 'AGPL-3',
'application': False,
'installable': True,
'data': ['security/ir.model.access.csv',
'views/coworking_menu.xml',
'views/coworker_views.xml'],
'data': ['views/res_partner_views.xml'],
'depends': ['coworking_base']
}

View File

@ -1,2 +1,2 @@
# -*- coding: utf-8 -*-
from . import coworker
from . import res_partner

View File

@ -10,11 +10,9 @@ class Coworker(models.Model):
_name = 'coworking.coworker'
_description = 'Coworker model definition'
_order = 'id desc'
contact_date = fields.Date(default=fields.Date.context_today)
full_name = fields.Char(compute='_compute_full_name', store=True, index=True)
name = fields.Char(required=True)
firstname = fields.Char('First name', required=True)
coworker_type = fields.Selection([('staffer', 'Staffer'),

View File

@ -0,0 +1,62 @@
# -*- coding: utf-8 -*-
""" Coworker module """
from odoo import models, fields, api, _
from odoo.exceptions import ValidationError
class ResPartner(models.Model):
""" Coworker model """
_inherit = 'res.partner'
is_coworker = fields.Boolean('Coworker', default=False)
company_ids = fields.One2many(
string="Company",
comodel_name="res.partner",
inverse_name="parent_id",
)
url = fields.Char('URL')
contact_date = fields.Date(default=fields.Date.context_today)
coworker_type = fields.Selection([('staffer', 'Staffer'),
('worker', 'Worker'), ('member', 'Member'),
('volunteer', 'Volunteer'),
('visitor', 'Visitor')])
full_contact_adress = fields.Char(compute='_compute_full_contact_adress')
@api.depends('street', 'zip', 'city')
def _compute_full_contact_adress(self):
"""Concatènation de l'adresse si les chanps street, czip et city sont renseignés"""
for coworker in self:
coworker.full_contact_adress = u'{} {} {}'.format \
(coworker.street or u'', coworker.zip or u'', coworker.city or u'').strip()
@api.constrains('contact_date')
def _check_contact_date(self):
"""Test si la modification de la date n'est pas superieur à la date du jour"""
if self.contact_date > fields.Date.context_today(self):
raise ValidationError(_('Date most be equal of inferior to to day'))
@staticmethod
def _manage_coworker_type(vals):
""" Ensures that coworker_type is not defined when is_coworker is False """
if 'is_coworker' in vals:
if not vals['is_coworker']:
vals.update({'coworker_type': False})
return vals
@api.model
def create(self, vals):
""" Ensures that coworker_type is not defined when is_coworker is False """
vals = ResPartner._manage_coworker_type(vals)
return super(ResPartner, self).create(vals)
@api.multi
def write(self, vals):
""" Ensures that coworker_type is not defined when is_coworker is False """
vals = ResPartner._manage_coworker_type(vals)
super(ResPartner, self).write(vals)
return True

View File

@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
from . import test_coworking_coworker

View File

@ -0,0 +1,60 @@
# -*- coding: utf-8 -*-
""" Coworking cowoker testing module """
from datetime import date
from odoo import fields
from odoo.exceptions import ValidationError
from odoo.tests.common import TransactionCase
class TestCoworkingCoworker(TransactionCase):
""" Coworking cowoker testing """
def setUp(self, *args, **kwargs):
""" Bootstrap testing """
super(TestCoworkingCoworker, self).setUp(*args, **kwargs)
data = {'name': 'Homer Simpson', 'is_coworker': True}
self.homer = self.env['res.partner'].create(data)
def test_contact_date(self):
""" Test contact date : default to today and validity """
contact_date = fields.Date.from_string(self.homer.contact_date)
self.assertEqual(contact_date, date.today())
marge = self.env['res.partner'].create({'name': 'Marge Simpson',
'contact_date': '2017-01-01'})
self.assertEqual(marge.contact_date, '2017-01-01')
with self.assertRaises(ValidationError) as err:
data = {'name': 'Bart Simpson', 'contact_date': '2999-01-01'}
self.env['res.partner'].create(data)
self.assertIn('equal of inferior to', unicode(err.exception))
def test_full_address(self):
"""Test full address"""
self.homer.write({'street': False, 'zip': False, 'city': False})
self.assertEqual(self.homer.full_contact_adress, u'')
self.homer.write({'street': False, 'zip': False, 'city': u'Springfield'})
self.assertEqual(self.homer.full_contact_adress, u'Springfield')
self.homer.write({'street': False, 'zip': u'5555', 'city': u'Springfield'})
self.assertEqual(self.homer.full_contact_adress, u'5555 Springfield')
self.homer.write({'street': u'42 Liberty Street', 'zip': u'5555', 'city': u'Springfield'})
self.assertEqual(self.homer.full_contact_adress, u'42 Liberty Street 5555 Springfield')
self.homer.write({'street': u'42 Liberty Street', 'zip': False, 'city': u'Springfield'})
self.assertEqual(self.homer.full_contact_adress, u'42 Liberty Street Springfield')
def test_manage_coworker_type(self):
""" Test that non-coworker have not coworker_type fixed """
self.homer.write({'is_coworker': False})
self.assertFalse(self.homer.coworker_type)
self.homer.write({'coworker_type': 'visitor'})
self.assertEqual(self.homer.coworker_type, 'visitor')
self.homer.write({'is_coworker': False, 'coworker_type': 'staffer'})
self.assertFalse(self.homer.coworker_type)

View File

@ -0,0 +1,119 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Form -->
<record id="view_form_res_partner" model="ir.ui.view">
<field name="name">>res.partner.form.inherit</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref ="base.view_partner_form" />
<field name="arch" type="xml">
<field name="type" position="after">
<field name="is_coworker" />
<field name="coworker_type"
attrs="{'invisible': [('is_coworker','=', False)]}" />
<field name="contact_date" />
</field>
<field name="email" position="after">
<field name="url" />
</field>
</field>
</record>
<!-- Tree -->
<record id="view_tree_res_partner" model="ir.ui.view">
<field name="name">res.partner.tree.inherit</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref ="base.view_partner_tree" />
<field name="arch" type="xml">
<field name="phone" position="before">
<field name="company_name" />
<field name="full_contact_adress" />
</field>
<field name="phone" position="replace">
<field name="mobile" />
</field>
</field>
</record>
<!-- Search -->
<record id="view_search_res_partner" model="ir.ui.view">
<field name="name">res.partner.search.inherit</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref ="base.view_res_partner_filter" />
<field name="arch" type="xml">
<search position="inside">
<filter name="group_coworker_type" string="Group coworker type"
context="{'group_by': 'coworker_type'}" />
<filter name="group_title" string="by title"
context="{'group_by': 'title'}" />
<filter name="group_city" string="City"
context="{'group_by': 'city'}" />
<filter name="is_coworker" string="Coworker"
domain="[('is_coworker','=',True)]" />
<filter name="group_month" string="Month"
context="{'group_by': 'contact_date:month'}" />
<filter name="group_year" string="Year"
context="{'group_by': 'contact_date:year'}" />
</search>
</field>
</record>
<!-- Kanban -->
<record id="view_kanban_res_partner" model="ir.ui.view">
<field name="name">res.partner.kanban.inherit</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref ="base.res_partner_kanban_view" />
<field name="arch" type="xml">
<field name="city" position="after">
<field name="full_contact_adress" />
</field>
<xpath expr="//div[@class='oe_kanban_details']/ul/li[4]" position="replace">
<li><field name="full_contact_adress" /></li>
</xpath>
<xpath expr="//div[@class='oe_kanban_details']/ul/li[5]" position="attributes">
<attribute name="style">display: none;</attribute>
</xpath>
<xpath expr="//div[@class='oe_kanban_details']/ul/li[6]" position="attributes">
<attribute name="style">display: none;</attribute>
</xpath>
</field>
</record>
<!-- Calendar -->
<act_window id="contacts.action_contacts" name="Contacts"
res_model="res.partner" view_mode="kanban,form,calendar,graph,pivot" />
<record id="view_calendar_res_partner" model="ir.ui.view">
<field name="name">res.partner.calendar</field>
<field name="model">res.partner</field>
<field name="arch" type="xml">
<calendar date_start="contact_date" mode="month"
display="First contact : [name]" >
<field name="name" />
</calendar>
</field>
</record>
<!-- Graph -->
<record id="view_graph_res_partner" model="ir.ui.view">
<field name="name">res.partner.graph</field>
<field name="model">res.partner</field>
<field name="arch" type="xml">
<graph type="bar">
<field name="is_coworker" />
</graph>
</field>
</record>
<record id="view_pivot_res_partner" model="ir.ui.view">
<field name="name">pivot</field>
<field name="model">res.partner</field>
<field name="arch" type="xml">
<pivot string="titre pivot">
<field name="title" type="col" />
<field name="contact_date" interval="week" />
</pivot>
</field>
</record>
</odoo>

View File

@ -28,7 +28,7 @@
'data': ['security/ir.model.access.csv',
'views/event_menu.xml',
'views/event_views.xml',
'views/coworker_views.xml',
'views/res_partner_views.xml',
'wizard/coworking_event_weekly_views.xml'],
'depends': ['coworking_coworker']
}

View File

@ -1,3 +1,3 @@
# -*- coding: utf-8 -*-
"""dd"""
from . import event, coworker
from . import event, res_partner

View File

@ -15,7 +15,7 @@ class Event(models.Model):
title = fields.Char(required=True)
manager_id = fields.Many2one('coworking.coworker', 'Manager', index=True, required=True,
manager_id = fields.Many2one('res.partner', 'Manager', index=True, required=True,
domain="[('coworker_type', 'in', ['staffer', 'member'])]")
date_start = fields.Datetime(default=fields.Date.context_today, required=True)
starts_this_week = fields.Integer(compute='_compute_starts_this_week',
@ -28,7 +28,7 @@ class Event(models.Model):
('confirmed', 'Confirmed'),
('canceled', 'Canceled')], default='draft')
participants_ids = fields.Many2many('coworking.coworker', string='Subscribers')
participants_ids = fields.Many2many('res.partner', string='Subscribers')
participants_count = fields.Integer('Number of participants',
compute='_compute_participants_count')
@ -73,8 +73,9 @@ class Event(models.Model):
@api.constrains('date_start', 'date_end')
def _check_dates(self):
"""Test si la modification de la date de début est infnérieure à la date de fin"""
if self.date_start > self.date_end:
raise ValidationError(_('End date most be supperior to to start date'))
for event in self:
if event.date_start > event.date_end:
raise ValidationError(_('End date most be supperior to to start date'))
@api.depends('date_start', 'date_end')
def _compute_duration(self):

View File

@ -4,9 +4,9 @@
from odoo import models, fields, api
class Coworker(models.Model):
class ResPartner(models.Model):
""" Coworker adaptations """
_inherit = 'coworking.coworker'
_inherit = 'res.partner'
manager_event_ids = fields.One2many('coworking.event', 'manager_id',
string='Events managed')

View File

@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
from . import test_coworking_event

View File

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
""" Coworking cowoker testing module """
from datetime import date
from odoo import fields
from odoo.exceptions import ValidationError
from odoo.tests.common import TransactionCase
class TestCoworkingEvent(TransactionCase):
""" Coworking cowoker testing """
# def setUp(self, *args, **kwargs):
# """ Bootstrap testing """
# super(TestCoworkingEvent, self).setUp(*args, **kwargs)
# data = {'title': 'Mon evenement', 'is_coworker': True}
# self.homer = self.env['res.partner'].create(data)
def test_contact_date(self):
pass

View File

@ -1,12 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Form -->
<record id="view_form_coworker" model="ir.ui.view">
<field name="name">Coworker Form adaptations</field>
<field name="model">coworking.coworker</field>
<field name="inherit_id" ref ="coworking_coworker.view_form_coworker" />
<record id="view_form_res_partner" model="ir.ui.view">
<field name="name">Res_partner Form</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref ="base.view_partner_form" />
<field name="arch" type="xml">
<notebook position="inside">
<page string="Events" name="Events">
@ -20,5 +19,4 @@
</notebook>
</field>
</record>
</odoo>

View File

@ -14,7 +14,7 @@ class CoworkingEventWeekly(models.TransientModel):
_description = 'Weekly massive event creation'
title = fields.Char(required=True)
manager_id = fields.Many2one('coworking.coworker', string='Manager',
manager_id = fields.Many2one('res.partner', string='Manager',
required=True)
date_start_recurence = fields.Datetime('Date start', required=True)
date_stop_recurence = fields.Datetime('Date stop', required=True)

View File

@ -28,6 +28,6 @@
'data': ['security/ir.model.access.csv',
'views/relation_menu.xml',
'views/relation_views.xml',
'views/coworker_views.xml'],
'depends': ['coworking_coworker']
'views/res_partner_views.xml'],
'depends': ['coworking_coworker', 'coworking_event']
}

View File

@ -1,3 +1,3 @@
# -*- coding: utf-8 -*-
"""dd"""
from . import relation, coworker
from . import relation, res_partner

View File

@ -15,12 +15,12 @@ class CoworkerRelation(models.Model):
name = fields.Char()
coworker1 = fields.Many2one(
'coworking.coworker', 'Coworker 1', index=True, required=True,
domain="[('coworker_type', 'in', ['staffer', 'member', 'worker', 'volunteer', 'visitor'])]"
'res.partner', 'Coworker 1', index=True, required=True,
domain="[('is_coworker', '=', True)]"
)
coworker2 = fields.Many2one(
'coworking.coworker', 'Coworker 2', index=True, required=True,
domain="[('coworker_type', 'in', ['staffer', 'member', 'worker', 'volunteer', 'visitor'])]"
'res.partner', 'Coworker 2', index=True, required=True,
domain="[('is_coworker', '=', True)]"
)
relation = fields.Char(index=True, required=True)

View File

@ -6,9 +6,9 @@ import logging
from odoo import models, fields, api
_LOGGER = logging.getLogger(__name__)
class Coworker(models.Model):
class ResPartner(models.Model):
""" Coworker adaptations """
_inherit = 'coworking.coworker'
_inherit = 'res.partner'
manager_event_ids = fields.One2many('coworking.event', 'manager_id',
string='Events managed')

View File

@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
from . import test_coworking_relation

View File

@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
""" Coworking cowoker testing module """
from datetime import date
from odoo import fields
from odoo.exceptions import ValidationError
from odoo.tests.common import TransactionCase
class TestCoworkingRelation(TransactionCase):
""" Coworking cowoker testing """
def test_if_coworker_is_same(self):
""" Test coworker1.id and coworker2.id is identical """
coworker1 = self.env['res.partner'].create({'name': 'Marge Simpson',
'is_coworker': True})
coworker2 = self.env['res.partner'].create({'name': 'Bart Simpson',
'is_coworker': True})
relation = self.env['coworking.relation'].create({'coworker1': coworker1.id,
'coworker2': coworker2.id,
'relation': 'Mère'})
self.assertEqual(relation.relation, u'Mère')
with self.assertRaises(ValidationError) as err:
self.env['coworking.relation'].create({'coworker1': coworker1.id,
'coworker2': coworker1.id,
'relation': 'Mère'})
self.assertIn(u'Coworker1 is same coworker2', unicode(err.exception))

View File

@ -7,6 +7,6 @@
res_model="coworking.relation" view_mode="tree" />
<!-- Menu item to open Event list -->
<menuitem id="coworker_relation_menu" name="Relations" action="relation_action"
parent="coworking_coworker.coworker_menu" sequence="2" />
parent="contacts.menu_contacts" sequence="2" />
</odoo>

View File

@ -11,8 +11,8 @@
<sheet>
<group name="group_top">
<group name="group_left">
<field name="coworker1" domain="[('id', '!=', coworker2)]" />
<field name="coworker2" domain="[('id', '!=', coworker1)]" />
<field name="coworker1" domain="[('id', '!=', coworker2), ('is_coworker', '=', True)]" />
<field name="coworker2" domain="[('id', '!=', coworker1), ('is_coworker', '=', True)]" />
<field name="relation" />
</group>
</group>
@ -27,8 +27,8 @@
<field name="model">coworking.relation</field>
<field name="arch" type="xml">
<tree editable="True">
<field name="coworker1" domain="[('id', '!=', coworker2)]" />
<field name="coworker2" domain="[('id', '!=', coworker1)]" />
<field name="coworker1" domain="[('id', '!=', coworker2), ('is_coworker', '=', True)]" />
<field name="coworker2" domain="[('id', '!=', coworker1), ('is_coworker', '=', True)]" />
<field name="relation" />
</tree>
</field>

View File

@ -3,10 +3,10 @@
<odoo>
<!-- Form -->
<record id="view_form_coworker" model="ir.ui.view">
<field name="name">Coworker Form adaptations</field>
<field name="model">coworking.coworker</field>
<field name="inherit_id" ref ="coworking_coworker.view_form_coworker" />
<record id="view_form_res_partner" model="ir.ui.view">
<field name="name">Res_partner Form adaptations</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref ="base.view_partner_form" />
<field name="arch" type="xml">
<notebook position="inside">
<page string="Relation" name="Relation">