diff --git a/golem_activity_queue/__manifest__.py b/golem_activity_queue/__manifest__.py
index dad6fec..2b5a120 100644
--- a/golem_activity_queue/__manifest__.py
+++ b/golem_activity_queue/__manifest__.py
@@ -20,7 +20,7 @@
'name': 'GOLEM activity queues',
'summary': 'GOLEM activity queues',
'description': ''' GOLEM activity queue management ''',
- 'version': '10.0.1.1.5',
+ 'version': '10.0.1.2.0',
'category': 'GOLEM',
'author': 'Youssef El Ouahby, Fabien Bourgeois',
'license': 'AGPL-3',
diff --git a/golem_activity_queue/models/golem_member.py b/golem_activity_queue/models/golem_member.py
index fa33aff..74f905e 100644
--- a/golem_activity_queue/models/golem_member.py
+++ b/golem_activity_queue/models/golem_member.py
@@ -18,107 +18,29 @@
""" GOLEM Member adaptations """
+import logging
from odoo import models, fields, api, _
+_LOGGER = logging.getLogger(__name__)
class GolemMember(models.Model):
""" GOLEM Member adaptations """
_inherit = 'golem.member'
- #ajout d'un champs O2M vers member_id de golem.activity.queue
- activity_queue_ids = fields.One2many('golem.activity.queue',
- 'member_id', 'Pending registration')
+ activity_queue_ids = fields.One2many('golem.activity.queue', 'member_id',
+ string='Pending registration')
- @api.multi
- def write(self, vals):
- registrations_edited = vals.get('activity_registration_ids')
- if registrations_edited:
- for registration_edited in registrations_edited:
- if registration_edited[0] == 2:
- registration_removed = self.env['golem.activity.registration'].browse(
- registration_edited[1])
- activity_removed = self.env['golem.activity'].browse(
- registration_removed.activity_id.id)
- if (activity_removed.queue_allowed and
- activity_removed.auto_registration_from_queue and
- activity_removed.queue_activity_number > 0):
- #récupérer la liste des attente lié à l'activité
- queues = activity_removed.activity_queue_ids
- #trier la liste selon l'id : récupérer l'ancien element
- queues_sorted = sorted(queues, key=lambda k: k['id'])
- #suppose que le membre est enrigistré
- membre_registred = True
- #parcourir les element sur l'attente
- for queue in queues_sorted:
- #inverse l'etat du memebre
- membre_registred = False
- #recuperer la liste des registration
- registrations = activity_removed.activity_registration_ids
- #parcourir les registration afin de vérifier si le memebre sur
- #l'attente déja inscrit
- for registration in registrations:
- #compare le membre sur l'attente au membre sur l'inscription
- if queue.member_id == registration.member_id:
- #si membre trouvé inscrit sur l'activité on le
- #supprime de la queue
- activity_removed.activity_queue_ids = [(2, queue.id, 0)]
- #si membre trouvé on mentionne enregistré, on passe au
- #registration suivante
- membre_registred = True
- break
- #à la sortie de la boucle si le membre nest pas sur
- #inscription faire une
- if not membre_registred:
- #valeures pour creer une inscritpion apartir de la file
- values = {
- 'activity_id' : queue.activity_id,
- 'member_id' : queue.member_id
- }
-
- super(GolemMember, self).write(vals)
- # creation d'inscription
- activity_removed.activity_registration_ids = [(0, 0, values)]
- #suppression de l'element de la file d'attente
- activity_removed.activity_queue_ids = [(2, queue.id, 0)]
- #sortir de la boucle parcourissante la queue puisque
- # inscription faite
- break
- return True
-
- #verifier si nombre d'inscription sur activité est supérieur au place disponible
- #inviter l'utilisateur à s'inscrire sur l'attente
- @api.multi
@api.onchange('activity_registration_ids')
def _check_registration_number(self):
""" check activity registration number """
- self.ensure_one()
- member_id = self[0]
- #recupérer la liste des inscription pour le membbre courant
- for registration in member_id.activity_registration_ids:
- #recupérer l'activité liée
- activity = registration.activity_id
- #vérifier si le nombre d'inscription depasse le nombre de places sur activité
- if len(activity.activity_registration_ids) > activity.places and activity.queue_allowed:
- warning_message = _('This activity : {} is already full, please'
- ' discard changes and register in'
- ' the queue using the bellow button')
- return {
- 'warning' : {
- 'title' : _('Warning'),
- 'message': warning_message.format(activity.name),
+ for member in self:
+ for registration in member.activity_registration_ids:
+ activity = registration.activity_id
+ if activity.places_remain < 0 and activity.queue_allowed:
+ message = _('This activity : {} is already full, please'
+ ' discard changes and register in the queue.')
+ return {
+ 'warning' : {
+ 'title' : _('Warning'),
+ 'message': message.format(activity.name),
+ }
}
- }
- #lancer popup pour choisir activité à s'inscrire
- @api.multi
- def choose_queue_to_register(self):
- """ launch wizard to choose activity queue to register in"""
- self.ensure_one()
- member_id = self[0]
- #lancer le wizard avec le membre actuel
- return {
- 'name' : _('Choose the activity to register in'),
- 'type' : 'ir.actions.act_window',
- 'res_model' : 'golem.activity.queue.choose.wizard',
- 'view_mode': 'form',
- 'context' : {'default_member_id' : member_id.id},
- 'target': 'new',
- }
diff --git a/golem_activity_queue/views/golem_member_views.xml b/golem_activity_queue/views/golem_member_views.xml
index b95e45d..de87bb9 100644
--- a/golem_activity_queue/views/golem_member_views.xml
+++ b/golem_activity_queue/views/golem_member_views.xml
@@ -20,30 +20,23 @@ along with this program. If not, see .
-
+
- Add the queue onglet and registration button to member form
+ model="ir.ui.view">
+ Queue adaptations on member formgolem.member
-
-
-
-
-
-
-
-
+
+ domain="[('places_remain','<' , 1), ('queue_allowed', '=', True), ('is_current', '=', True)]"
+ options="{'no_create': True}"/>
@@ -52,6 +45,6 @@ along with this program. If not, see .
-
+