[MIG][IMP]GOLEM activity registration place migration to v10, and better guidelines

This commit is contained in:
Fabien BOURGEOIS 2017-05-02 00:37:22 +02:00
parent a955633375
commit 4a9cec73c9
6 changed files with 53 additions and 54 deletions

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright 2016 Fabien Bourgeois <fabien@yaltik.com> # Copyright 2017 Fabien Bourgeois <fabien@yaltik.com>
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
@ -23,8 +23,8 @@
'author': 'Fabien Bourgeois', 'author': 'Fabien Bourgeois',
'license': 'AGPL-3', 'license': 'AGPL-3',
'application': False, 'application': False,
'installable': False, 'installable': True,
'auto_install': False, 'auto_install': False,
'depends': ['golem_activity_registration'], 'depends': ['golem_activity_registration'],
'data': ['views/golem_activity_view.xml'] 'data': ['views/golem_activity_views.xml']
} }

View File

@ -4,10 +4,10 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 8.0\n" "Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-10-10 16:26+0000\n" "POT-Creation-Date: 2017-05-01 22:35+0000\n"
"PO-Revision-Date: 2016-10-10 16:26+0000\n" "PO-Revision-Date: 2017-05-01 22:35+0000\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -16,7 +16,7 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=(n > 1);\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: golem_activity_place #. module: golem_activity_place
#: field:golem.activity,is_overbooked:0 #: model:ir.model.fields,field_description:golem_activity_place.field_golem_activity_is_overbooked
msgid "Allow overbook?" msgid "Allow overbook?"
msgstr "Autoriser la surcharge ?" msgstr "Autoriser la surcharge ?"
@ -26,34 +26,28 @@ msgid "GOLEM Activity"
msgstr "Activité" msgstr "Activité"
#. module: golem_activity_place #. module: golem_activity_place
#: field:golem.activity,places_min:0 #: model:ir.model.fields,field_description:golem_activity_place.field_golem_activity_places_min
msgid "Minimum places" msgid "Minimum places"
msgstr "Places minimum" msgstr "Places minimum"
#. module: golem_activity_place #. module: golem_activity_place
#: help:golem.activity,places_min:0 #: model:ir.model.fields,help:golem_activity_place.field_golem_activity_places_min
msgid "Minimum places to maintain the activity" msgid "Minimum places to maintain the activity"
msgstr "Nombre de places minimales pour maintenir l'activité" msgstr "Nombre de places minimales pour maintenir l'activité"
#. module: golem_activity_place #. module: golem_activity_place
#: code:addons/golem_activity_place/models/golem_activity.py:51 #: code:addons/golem_activity_place/models/golem_activity.py:57
#, python-format #, python-format
msgid "Number of places cannot be negative." msgid "Number of places cannot be negative."
msgstr "Le nombre de places ne peut pas être négatif" msgstr "Le nombre de places ne peut pas être négatif"
#. module: golem_activity_place #. module: golem_activity_place
#: code:addons/golem_activity_place/models/golem_activity.py:54 #: code:addons/golem_activity_place/models/golem_activity.py:61
#, python-format #, python-format
msgid "Overbooked places cannot be inferior than places" msgid "Overbooked places cannot be inferior than places"
msgstr "Le nombre de places avec surcharge ne peut être inférieur aux place msgstr "Le nombre de places avec surcharge ne peut être inférieur aux places"
#. module: golem_activity_place #. module: golem_activity_place
#: field:golem.activity,places_overbooked:0 #: model:ir.model.fields,field_description:golem_activity_place.field_golem_activity_places_overbooked
msgid "Places with overbook" msgid "Places with overbook"
msgstr "Places avec surcharge" msgstr "Places avec surcharge"
#. module: golem_activity_place
#: view:golem.activity:golem_activity_place.tree
msgid "darkgrey: places_used < places_min; red: places_remain == 0; orange: places_remain <= 4;"
msgstr "darkgrey: places_used < places_min; red: places_remain == 0; orange: places_remain <= 4;"

View File

@ -4,10 +4,10 @@
# #
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Odoo Server 8.0\n" "Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2016-10-10 16:25+0000\n" "POT-Creation-Date: 2017-05-01 22:34+0000\n"
"PO-Revision-Date: 2016-10-10 16:25+0000\n" "PO-Revision-Date: 2017-05-01 22:34+0000\n"
"Last-Translator: <>\n" "Last-Translator: <>\n"
"Language-Team: \n" "Language-Team: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
@ -16,7 +16,7 @@ msgstr ""
"Plural-Forms: \n" "Plural-Forms: \n"
#. module: golem_activity_place #. module: golem_activity_place
#: field:golem.activity,is_overbooked:0 #: model:ir.model.fields,field_description:golem_activity_place.field_golem_activity_is_overbooked
msgid "Allow overbook?" msgid "Allow overbook?"
msgstr "" msgstr ""
@ -26,34 +26,29 @@ msgid "GOLEM Activity"
msgstr "" msgstr ""
#. module: golem_activity_place #. module: golem_activity_place
#: field:golem.activity,places_min:0 #: model:ir.model.fields,field_description:golem_activity_place.field_golem_activity_places_min
msgid "Minimum places" msgid "Minimum places"
msgstr "" msgstr ""
#. module: golem_activity_place #. module: golem_activity_place
#: help:golem.activity,places_min:0 #: model:ir.model.fields,help:golem_activity_place.field_golem_activity_places_min
msgid "Minimum places to maintain the activity" msgid "Minimum places to maintain the activity"
msgstr "" msgstr ""
#. module: golem_activity_place #. module: golem_activity_place
#: code:addons/golem_activity_place/models/golem_activity.py:51 #: code:addons/golem_activity_place/models/golem_activity.py:57
#, python-format #, python-format
msgid "Number of places cannot be negative." msgid "Number of places cannot be negative."
msgstr "" msgstr ""
#. module: golem_activity_place #. module: golem_activity_place
#: code:addons/golem_activity_place/models/golem_activity.py:54 #: code:addons/golem_activity_place/models/golem_activity.py:61
#, python-format #, python-format
msgid "Overbooked places cannot be inferior than places" msgid "Overbooked places cannot be inferior than places"
msgstr "" msgstr ""
#. module: golem_activity_place #. module: golem_activity_place
#: field:golem.activity,places_overbooked:0 #: model:ir.model.fields,field_description:golem_activity_place.field_golem_activity_places_overbooked
msgid "Places with overbook" msgid "Places with overbook"
msgstr "" msgstr ""
#. module: golem_activity_place
#: view:golem.activity:golem_activity_place.tree
msgid "darkgrey: places_used < places_min; red: places_remain == 0; orange: places_remain <= 4;"
msgstr ""

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# copyright 2016 fabien bourgeois <fabien@yaltik.com> # copyright 2017 fabien bourgeois <fabien@yaltik.com>
# #
# this program is free software: you can redistribute it and/or modify # this program is free software: you can redistribute it and/or modify
# it under the terms of the gnu affero general public license as # it under the terms of the gnu affero general public license as
@ -15,10 +15,12 @@
# you should have received a copy of the gnu affero general public license # you should have received a copy of the gnu affero general public license
# along with this program. if not, see <http://www.gnu.org/licenses/>. # along with this program. if not, see <http://www.gnu.org/licenses/>.
""" GOLEM Activity Advanced Places management """
from odoo import models, fields, api, _ from odoo import models, fields, api, _
class GolemActivity(models.Model): class GolemActivity(models.Model):
""" GOLEM Activity Advanced Places management """
_inherit = 'golem.activity' _inherit = 'golem.activity'
places_min = fields.Integer('Minimum places', default=0, places_min = fields.Integer('Minimum places', default=0,
@ -26,30 +28,35 @@ class GolemActivity(models.Model):
is_overbooked = fields.Boolean('Allow overbook?', default=False) is_overbooked = fields.Boolean('Allow overbook?', default=False)
places_overbooked = fields.Integer('Places with overbook', default=0) places_overbooked = fields.Integer('Places with overbook', default=0)
@api.one @api.multi
@api.depends('places', 'is_overbooked', 'places_overbooked', 'places_used') @api.depends('places', 'is_overbooked', 'places_overbooked', 'places_used')
def _compute_places_remain(self): def _compute_places_remain(self):
if not self.is_overbooked: """ Overwrite : computes remaining places """
self.places_remain = self.places - self.places_used for activity in self:
else: if not activity.is_overbooked:
self.places_remain = self.places_overbooked - self.places_used activity.places_remain = activity.places - activity.places_used
else:
activity.places_remain = activity.places_overbooked - activity.places_used
@api.onchange('is_overbooked', 'places') @api.onchange('is_overbooked', 'places')
def onchange_is_overbooked(self): def onchange_is_overbooked(self):
for s in self: """ Realtime display for places and overbooked """
if s.places and s.is_overbooked: for activity in self:
if not s.places_overbooked or (s.places_overbooked < s.places): if activity.places and activity.is_overbooked:
s.places_overbooked = s.places + 1 if not activity.places_overbooked or \
(activity.places_overbooked < activity.places):
activity.places_overbooked = activity.places + 1
@api.constrains('places', 'places_overbooked') @api.constrains('places', 'places_overbooked')
def _check_places(self): def _check_places(self):
""" Check integers are signed and overbooked to be superior than """ Check integers are signed and overbooked to be superior than
normal places """ normal places """
for v in self: for activity in self:
for f in ['places', 'places_overbooked']: for field in ['places', 'places_overbooked']:
if v[f] < 0: if activity[field] < 0:
emsg = _('Number of places cannot be negative.') emsg = _('Number of places cannot be negative.')
raise models.ValidationError(emsg) raise models.ValidationError(emsg)
if v.is_overbooked and (v.places_overbooked <= v.places): if activity.is_overbooked and \
(activity.places_overbooked <= activity.places):
emsg = _('Overbooked places cannot be inferior than places') emsg = _('Overbooked places cannot be inferior than places')
raise models.ValidationError(emsg) raise models.ValidationError(emsg)

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
# Copyright 2016 Fabien Bourgeois <fabien@yaltik.com> # Copyright 2017 Fabien Bourgeois <fabien@yaltik.com>
# #
# This program is free software: you can redistribute it and/or modify # This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as # it under the terms of the GNU Affero General Public License as
@ -15,11 +15,14 @@
# You should have received a copy of the GNU Affero General Public License # You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>. # along with this program. If not, see <http://www.gnu.org/licenses/>.
""" GOLEM Activity Places Tests """
from odoo.tests.common import TransactionCase from odoo.tests.common import TransactionCase
from odoo.models import ValidationError from odoo.models import ValidationError
class GolemActivitySessionTestCase(TransactionCase): class GolemActivitySessionTestCase(TransactionCase):
""" GOLEM Activity Places Tests """
def setUp(self): def setUp(self):
super(GolemActivitySessionTestCase, self).setUp() super(GolemActivitySessionTestCase, self).setUp()

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<!-- <!--
Copyright 2016 Fabien Bourgeois <fabien@yaltik.com> Copyright 2017 Fabien Bourgeois <fabien@yaltik.com>
This program is free software: you can redistribute it and/or modify This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by it under the terms of the GNU Affero General Public License as published by
@ -19,11 +19,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<data> <data>
<!-- Form --> <!-- Form -->
<record id="view_form" model="ir.ui.view"> <record id="golem_activity_registration_form_inherit_place" model="ir.ui.view">
<field name="name">GOLEM Activity Places Form additions</field> <field name="name">GOLEM Activity Places Form additions</field>
<field name="model">golem.activity</field> <field name="model">golem.activity</field>
<field name="inherit_id" <field name="inherit_id"
ref="golem_activity_registration.activity_form" /> ref="golem_activity_registration.golem_activity_form_inherit_registration" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<field name="places" position="after"> <field name="places" position="after">
<field name="places_min" /> <field name="places_min" />
@ -35,11 +35,11 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
</record> </record>
<!-- Tree --> <!-- Tree -->
<record id="tree" model="ir.ui.view"> <record id="golem_activity_registration_tree_inherit_place" model="ir.ui.view">
<field name="name">Activity list places adaptations</field> <field name="name">Activity list places adaptations</field>
<field name="model">golem.activity</field> <field name="model">golem.activity</field>
<field name="inherit_id" <field name="inherit_id"
ref="golem_activity_registration.activity_tree" /> ref="golem_activity_registration.golem_activity_tree_inherit_registration" />
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree position="attributes"> <tree position="attributes">
<attribute name="colors">darkgrey: places_used &lt; places_min; red: places_remain == 0; orange: places_remain &lt;= 4;</attribute> <attribute name="colors">darkgrey: places_used &lt; places_min; red: places_remain == 0; orange: places_remain &lt;= 4;</attribute>