diff --git a/.floo b/.floo new file mode 100644 index 0000000..a609292 --- /dev/null +++ b/.floo @@ -0,0 +1,3 @@ +{ + "url": "https://floobits.com/yaltik/coworking" +} \ No newline at end of file diff --git a/.flooignore b/.flooignore new file mode 100644 index 0000000..b1e8d7d --- /dev/null +++ b/.flooignore @@ -0,0 +1,9 @@ +#* +*.o +*.pyc +*~ +extern/ +heroku.yml +node_modules/ +tmp +vendor/ \ No newline at end of file diff --git a/.pylintrc b/.pylintrc index affec68..0fc70b8 100644 --- a/.pylintrc +++ b/.pylintrc @@ -1,3 +1,4 @@ [MASTER] load-plugins=pylint_odoo +disable=C8101 diff --git a/Note.txt b/Note.txt new file mode 100644 index 0000000..e69de29 diff --git a/models/coworker.py b/models/coworker.py index daedf22..3c3006f 100644 --- a/models/coworker.py +++ b/models/coworker.py @@ -42,6 +42,11 @@ class Coworker(models.Model): is_done = fields.Boolean('Done?') is_active = fields.Boolean('Active?', default=True) +# Event fields + manager_event_ids = fields.One2many('coworking.event', 'manager_id', + string='Events managed') + event_ids = fields.Many2many('coworking.event', string='Events visited') + @api.depends('name', 'firstname') def _compute_full_name(self): diff --git a/models/event.py b/models/event.py index c9c825f..96144b5 100644 --- a/models/event.py +++ b/models/event.py @@ -12,7 +12,8 @@ class Event(models.Model): _order = 'id desc' title = fields.Char(required=True) - manager_id = fields.Many2one('coworking.coworker', 'Users', required=False, index=True) + manager_id = fields.Many2one('coworking.coworker', 'Manager', index=True, + domain="[('coworker_type', 'in', ['staffer', 'member'])]") date_start = fields.Datetime(default=fields.Date.context_today, required=True) date_end = fields.Datetime(required=True) @@ -22,8 +23,23 @@ class Event(models.Model): ('confirmed', 'Confirmed'), ('canceled', 'Canceled')], default='draft') - participants_ids = fields.Many2many('coworking.coworker', string='Users') + participants_ids = fields.Many2many('coworking.coworker', string='Subscribers') + participants_count = fields.Integer('Number of participants', + compute='_compute_participants_count') + @api.depends('participants_ids') + def _compute_participants_count(self): + """ Computes number of participants """ + for event in self: + event.participants_count = len(event.participants_ids) + + @api.constrains('statut', 'participants_ids') + def _check_if_confirmed(self): + """Test si participants_ids est confirmed""" + for event in self: + if event.participants_ids and event.statut == 'draft': + raise models.ValidationError(_('You can have subscribed people ' + 'if event is not confirmed yet')) @api.constrains('date_end') def _check_date_end(self): diff --git a/views/coworker_views.xml b/views/coworker_views.xml index 003145a..7c5cbff 100644 --- a/views/coworker_views.xml +++ b/views/coworker_views.xml @@ -38,6 +38,11 @@ + + + + diff --git a/views/event_views.xml b/views/event_views.xml index ee509e6..4346b9e 100644 --- a/views/event_views.xml +++ b/views/event_views.xml @@ -7,6 +7,9 @@ coworking.event
+
+ +
@@ -16,8 +19,8 @@ - - + @@ -34,10 +37,46 @@ - + + + + Event Search + coworking.event + + + + + + + + + + + + + + + + + + + + + + + + +