Merge lp:~mathieu-julius/oph/7.0-fix-crm-meeting-view into lp:oph

Proposed by Mathieu Vatel - Julius Network Solutions
Status: Merged
Merged at revision: 81
Proposed branch: lp:~mathieu-julius/oph/7.0-fix-crm-meeting-view
Merge into: lp:oph
Diff against target: 558 lines (+4/-539)
2 files modified
Copy of oph_prescription.py.THIS (+0/-537)
oph_agenda_view.xml (+4/-2)
To merge this branch: bzr merge lp:~mathieu-julius/oph/7.0-fix-crm-meeting-view
Reviewer Review Type Date Requested Status
francois Pending
Review via email: mp+196238@code.launchpad.net

Description of the change

FIX de la vue crm.meeting

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== removed file 'Copy of oph_prescription.py.THIS'
2--- Copy of oph_prescription.py.THIS 2013-11-13 12:36:35 +0000
3+++ Copy of oph_prescription.py.THIS 1970-01-01 00:00:00 +0000
4@@ -1,537 +0,0 @@
5-# -*- coding: utf-8 -*-
6-from openerp.osv import fields, osv
7-from openerp.tools.translate import _
8-import time
9-from datetime import datetime
10-import settings
11-
12-class oph_prescription(osv.osv):
13- _name = "oph.prescription"
14-
15-class oph_med_data(osv.osv):
16- _name = oph.med.data
17- _columns = {
18- 'name':fields.char('DCI', help='DCI name', size=32),
19- 'princeps':fields.one2many('')
20-#===============================================================================
21-# def seq(start, stop, step = 1):
22-# n = int(round((stop - start) / float(step)))
23-# if n > 1:
24-# return([start + step * i for i in range(n + 1)])
25-# else:
26-# return([])
27-#
28-# class oph_measurement_type(osv.osv):
29-# """
30-# Table for all the measurement type
31-# EG: Tonometry, Keratometry, VA, Slit Lamp exam...
32-# """
33-# _name = "oph.measurement.type"
34-# _columns = {
35-# 'name':fields.char('Name', size = 64),
36-# 'code':fields.char('Code', size = 64),
37-# }
38-# oph_measurement_type()
39-#
40-# class oph_va_tech(osv.osv):
41-# """
42-# Can be everything you want
43-# Usely red-green test and Jackson Cross cylinder
44-# """
45-# _name = 'oph.va.tech'
46-# _columns = {
47-# 'name':fields.char('Name', size = 32),
48-# }
49-# oph_va_tech()
50-#
51-#
52-# class oph_measurement(osv.osv):
53-# _name = "oph.measurement"
54-# _order = "date"
55-# def _get_type(self, cr, uid, context = None):
56-# # print "JE PASSE PAR _GET_TYPE. context.get('measurement_type') is:", context.get('measurement_type')
57-# # print "CONTEXT is:", context
58-# if context == None:
59-# context = {}
60-# res = False
61-# if context.get('measurement_type'):
62-# res = self.pool.get('oph.measurement.type').search(cr, uid, [('code', '=', context.get('measurement_type'))], context = context)
63-# print "RES is:%s" % (res,)
64-# # print "_GET_TYPE RETURN :", res and res[0] or False
65-# return res and res[0] or False
66-#
67-# def _get_va_type(self, cr, uid, context = None):
68-# va_type_selection = (
69-# ('AVSC', 'AVSC'),
70-# ('AVAC', 'AVAC'),
71-# ('MAVC', 'MAVC'),
72-# ('MAVC sous cycloplegique', 'MAVC sous cycloplegique'),
73-# )
74-# return va_type_selection
75-#
76-# def _get_va(self, cr, uid, context = None):
77-# # print "JE PASSE PAR _GET_AV"
78-# va_selection = (
79-# ('PL-', 'PL-'),
80-# ('PL+', 'PL+'),
81-# ('CLD', 'CLD'),
82-# ('VLMB', 'VLMB'),
83-# ('0.5/10', '0.5/10'),
84-# ('1/10', '1/10'),
85-# ('2/10', '2/10'),
86-# ('3/10', '3/10'),
87-# ('4/10', '4/10'),
88-# ('5/10', '5/10'),
89-# ('6/10', '6/10'),
90-# ('7/10', '7/10'),
91-# ('8/10', '8/10'),
92-# ('9/10', '9/10'),
93-# ('10/10', '10/10'),
94-# ('12/10', '12/10'),
95-# )
96-# return va_selection
97-#
98-# def _get_sph(self, cr, uid, context = None):
99-# # print "JE PASSE DANS _GET_SPH"
100-# seq_sph = seq(settings.CONST.START_SPH, settings.CONST.STOP_SPH, settings.CONST.STEP_SPH)
101-# sph_selection = zip(seq_sph, seq_sph)
102-# # print "sph_selection is %s" % sph_selection
103-# return sph_selection
104-#
105-# def _get_axis(self, cr, uid, context = None):
106-# # print 'JE PASSE DANS _GET_AXIS'
107-# suffixe = '°'
108-# seq_axis = seq(settings.CONST.START_AXIS, settings.CONST.STOP_AXIS, settings.CONST.STEP_AXIS)
109-# seq_axis_suffixed = [str(i) + '°' for i in seq_axis]
110-# axis_selection = zip(seq_axis, seq_axis_suffixed)
111-# # print "axis_selection is %s°" % axis_selection
112-# return axis_selection
113-#
114-# def _get_cyl(self, cr, uid, context = None):
115-# # print 'JE PASSE DANS _GET_CYL'
116-# seq_cyl = seq(settings.CONST.START_CYL, settings.CONST.STOP_CYL, settings.CONST.STEP_CYL)
117-# # print "seq_cyl is %s" % seq_cyl
118-# seq_cyl.reverse()
119-# # print "reversed seq_cyl is %s:" % seq_cyl
120-# cyl_selection = zip(seq_cyl, seq_cyl)
121-# # print "cylinder selection is %s:" % cyl_selection
122-# return cyl_selection
123-#
124-# def _get_nearva(self, cursor, user_id, context = None):
125-# parinaud = ('P2', 'P3', 'P4', 'P5', 'P6', 'P7', 'P8', 'P9', 'P10', 'P11', 'P12', 'P14', 'R1/2')
126-# res = zip(parinaud, parinaud)
127-# res = tuple(res)
128-# return res
129-#
130-# def _get_add(self, cr, uid, context = None):
131-# add = (('0.5', '0.5'),
132-# ('0,75', '0.75'),
133-# ('1.00', '1.00'),
134-# ('1.25', '1.25'),
135-# ('1.50', '1.50'),
136-# ('1.75', '1.75'),
137-# ('2.00', '2.00'),
138-# ('2.25', '2.25'),
139-# ('2.50', '2.50'),
140-# ('2.75', '2.75'),
141-# ('3.00', '3.00'),
142-# )
143-# return add
144-#
145-# def _get_qualif(self, cursor, user_id, context = None):
146-# return (
147-# ('1l', '1 lettre'),
148-# ('2l', '2 lettres'),
149-# ('3l', '3 lettres'),
150-# ('4l', '4 lettres'),
151-# )
152-#
153-# def _get_meta(self, cursor, user_id, context = None):
154-# return (('M-', 'M-'), ('M+', 'M+'), ('M++', 'M++'),)
155-#
156-# _columns = {
157-# 'name':fields.char('Name', size = 64),
158-# 'type_id':fields.many2one('oph.measurement.type', 'Type'),
159-# 'meeting_id':fields.many2one("crm.meeting", "Meeting"),
160-# 'partner_id':fields.related("meeting_id", "partner_id", type = "many2one", relation = "res.partner", string = "Partner", store = True, readonly = True,),
161-# 'date':fields.related('meeting_id', 'date', type = 'date', string = 'Consultation Date', store = True),
162-# 'chief_complaint':fields.related('meeting_id', 'chief_complaint', type = 'char', string = 'Chief Complaint',),
163-# # Tonometry
164-# 'tonometer_id':fields.many2one('stock.production.lot', 'Tonometer'),
165-# 'iop_od':fields.integer('IOP_OD'),
166-# 'iop_os':fields.integer('IOP_OS'),
167-# # --keratometry
168-# 'keratometer_id':fields.many2one('stock.production.lot', 'Keratometer'),
169-# 'k1_od':fields.float('K1_OD', digits = (3, 2)),
170-# 'k2_od':fields.float('K2_OD', digits = (3, 2)),
171-# 'k1_os':fields.float('K1_OS', digits = (3, 2)),
172-# 'k2_os':fields.float('K2_OS', digits = (3, 2)),
173-# # -- visual acuity
174-# 'va_type':fields.selection(_get_va_type, 'VA TYPE',), # BVC, ...>
175-# 'va_tech':fields.many2one('oph.va.tech', 'Technique',), # Cross cylinder, pifometre.
176-# 'va_od':fields.selection(_get_va, 'VA_OD'),
177-# 'qualif_od':fields.selection(_get_qualif, 'QUALIF_OD',),
178-# 'va_os':fields.selection(_get_va, 'VA_OS'),
179-# 'qualif_os':fields.selection(_get_qualif, 'Qualif_OS'),
180-# 'nv_od':fields.selection(_get_nearva, 'NV_OD'),
181-# 'nv_os':fields.selection(_get_nearva, 'NV_OS'),
182-# # --- metamorphopsia
183-# 'm_od':fields.selection(_get_meta, 'METAMORPHOPSIA_OD',),
184-# 'm_os':fields.selection(_get_meta, 'METAMORPHOPSIA_OS',),
185-# # -- refraction
186-# 'sph_od':fields.selection(_get_sph, 'SPH_OD',),
187-# 'cyl_od':fields.selection(_get_cyl, 'CYL_OD',),
188-# 'axis_od':fields.selection(_get_axis, 'AXIS_OD',),
189-# 'add_od':fields.selection(_get_add, 'ADD_OD'),
190-# 'add_os':fields.selection(_get_add, 'ADD_OS'),
191-# 'sph_os':fields.selection(_get_sph, 'SPH_OS',),
192-# 'cyl_os':fields.selection(_get_cyl, 'CYL_OS',),
193-# 'axis_os':fields.selection(_get_axis, 'AXIS_OS',),
194-# # -- slit lamp exam
195-# 'as_od':fields.text('AS_OD'),
196-# 'ps_od':fields.text('PS_OD'),
197-# 'as_os':fields.text('AS_OG'),
198-# 'ps_os':fields.text('PS_OG'),
199-# # --pachymetry
200-# 'cct_od':fields.integer('CCT_OD'), # CCT for Central Corneal Thickness
201-# 'cct_og':fields.integer('CCT_OS'),
202-# # --conclusion (?)
203-# }
204-#
205-# _defaults = {
206-# 'type_id': lambda s, cr, uid, c: s._get_type(cr, uid, context = c),
207-# 'va_type':'MAVC',
208-# }
209-#
210-# oph_measurement()
211-#
212-#
213-# class oph_todolist(osv.osv):
214-# """
215-# TODO LIST for patients
216-# """
217-# _name = 'oph.todolist'
218-#
219-# def _get_selection(self, cr, uid, context = None):
220-# todolist_selection = (
221-# ('draft', 'Draft'),
222-# ('open', 'Open'),
223-# ('close', 'Close'),
224-# )
225-# return todolist_selection
226-#
227-# _columns = {
228-# 'name':fields.char('Name', size = 32),
229-# 'state':fields.selection(_get_selection, 'State',),
230-# 'meeting_id':fields.many2one("crm.meeting", "Meeting"),
231-# 'partner_id':fields.related("meeting_id", "partner_id", type = "many2one", relation = "res.partner", string = "Partner", store = True, readonly = True,),
232-# 'date':fields.related('meeting_id', 'date', type = 'date', string = 'Consultation Date', store = True),
233-# }
234-#
235-# _defaults = {
236-# 'state':'draft'
237-# }
238-# oph_todolist()
239-#
240-#
241-#
242-#
243-# # class oph_tonometer(osv.osv):
244-# # '''
245-# # Class oph_tonometer
246-# #
247-# # contents datas on tonometers
248-# # '''
249-# # _name = "oph.tonometer"
250-# # _description = "datas on tonometer instrumentation"
251-# # _columns = {
252-# # "date": fields.date("date", help = "date de mise en service"),
253-# # "name": fields.char("Model", size = 32, help = "nom du model"),
254-# # 'tonometry_ids' : fields.one2many('oph.tonometry', 'tonometer_id', 'Tonometry'),
255-# # }
256-# #
257-# # oph_tonometer()
258-# #
259-# #
260-# #
261-# # ##--
262-# # class res_partner(osv.osv):
263-# # _inherit = "res.partner"
264-# # _columns = {
265-# # 'consultation_ids' : fields.one2many('oph.consultation', 'partner_id', 'Consulations'),
266-# # }
267-# # res_partner()
268-# #
269-# #
270-# # ##--
271-# # class oph_consultation(osv.osv):
272-# # '''
273-# # Class consultation
274-# #
275-# # ORM for table of the minimal fields for a consultation
276-# # '''
277-# # _name = "oph.consultation"
278-# # _description = "Consultation"
279-# # _columns = {
280-# # 'name' : fields.char('Description', size=128, required=True, help='Motif de la consultation'),
281-# # 'cat': fields.char('Conduite à tenir', size = 128, help = 'Conclusion de la consultation, Chose à faire'), #assessment and Plan
282-# # 'partner_id' : fields.many2one('res.partner', 'Patient', select=True),
283-# # 'date': fields.date('Date',help = 'Date de la consultation', select = True),
284-# # 'keratometry_ids': fields.one2many('oph.keratometry', 'consult_id', 'Keratometry'),
285-# # 'sl_ids': fields.one2many('oph.sl', 'consult_id', 'Slit Lamp'),
286-# # 'ref_ids': fields.one2many('oph.refraction', 'consult_id', 'Refraction'),
287-# # }
288-# # _defaults = {
289-# # "date": lambda *a: time.strftime('%Y-%m-%d'),
290-# # }
291-# # oph_consultation()
292-# #
293-# #
294-# # ##--
295-# # class oph_keratometry(osv.osv):
296-# # '''
297-# # Class keratometry
298-# #
299-# # ORM for table of keratometry'''
300-# # _name = "oph.keratometry"
301-# # _description = "Keratometry"
302-# # _columns = {
303-# # "k1_od": fields.float('K1_OD', digits = (3,2)),
304-# # "k2_od": fields.float('K2_OD', digits = (3,2)),
305-# # "k1_": fields.float('K1_OG', digits = (3,2)),
306-# # "k2_og": fields.float('K2_OG', digits = (3,2)),
307-# # "consult_id": fields.many2one('oph.consultation', 'Consultation', select = True),
308-# # "partner_id": fields.related('consult_id', 'partner_id', type = "many2one", relation = "res.partner", string = "X_partner", store = False, select = True),
309-# # }
310-# # oph_keratometry()
311-# #
312-# #
313-# # ##--
314-# # class oph_sl(osv.osv):
315-# # '''
316-# # Class slit lamp
317-# #
318-# # ORM for table of sltit lamp (sl) observation'''
319-# # _name = 'oph.sl'
320-# # _description = 'Slit Lamp observation'
321-# # _columns = {
322-# # 'sa_od': fields.text('SA_OD'),
323-# # 'sp_od': fields.text('SP_OD'),
324-# # 'sa_og': fields.text('SA_OG'),
325-# # 'sp_og': fields.text('SP_OG'),
326-# # 'consult_id': fields.many2one('oph.consultation', 'Consultation', select = True),
327-# # 'partner_id': fields.related('consult_id', 'partner_id', type = 'many2one', relation = 'res.partner', string = 'X_partner', store = False, select = True),
328-# # }
329-# # oph_sl()
330-# #
331-# # ##--
332-# # class oph_refraction(osv.osv):
333-# # '''
334-# # class refraction
335-# #
336-# # ORM table for refraction datas
337-# # '''
338-# # _name = 'oph.refraction'
339-# # _description = 'Refraction datas'
340-# #
341-# # def _get_tags_selection(self, cursor, user_id, context=None):
342-# # return (
343-# # ('AVSC', 'Visual Acuity Without Correction'),
344-# # ('AVAC', 'Visual Acuity With Correction'),
345-# # ('MAVC', 'Best Corrected Visual Acuity'),)
346-# #
347-# # def _get_vashort_selection(self, cursor, user_id, context=None):
348-# # return (
349-# # ('P2', 'P2'),
350-# # ('P3', 'P3'),
351-# # ('P4', 'P4'),
352-# # ('P6', 'P6'),
353-# # ('P8', 'P8'),
354-# # ('P10', 'P10'),
355-# # ('P12', 'P12'),
356-# # ('P14', 'P14'),
357-# # ('R1/2', 'R1/2'),
358-# # )
359-# # def _get_va_selection(self, cursor, user_id, context=None):
360-# #
361-# # return (
362-# # ('CLD', 'CLD'),
363-# # ('VLMB', 'VLMB'),
364-# # ('1/10', '1/10'),
365-# # ('2/10', '2/10'),
366-# # ('3/10', '3/10'),
367-# # )
368-# # def _get_qualif_selection(self, cursor, user_id, context=None):
369-# # return (
370-# # ('1l', '1 lettre'),
371-# # ('2l', '2 lettres'),
372-# # ('3l', '3 lettres'),
373-# # )
374-# #
375-# # def _get_meta_selection(self, cursor, user_id, context=None):
376-# # return (('M-', 'M-'), ('M+', 'M+'),)
377-# #
378-# #
379-# # def _get_axis_selection(self, cursor, user_id, context=None):
380-# # ##Comment faire une suite qui va de 'x' à 'y' par pas de 0. 25 TODO
381-# # return (('-10°', '-10°'), ('-20°', '-20°'),)
382-# #
383-# # def _get_sph_selection(self, cursor, user_id, context=None):
384-# # '''
385-# # Création de la sélection pour les valeurs des sphères
386-# #
387-# # START: valeur minimale
388-# # STOP:valeur maximale
389-# # STEP:incrément
390-# #
391-# # NE MARCHE PAS AVEC FIELD.SELECTION TODO
392-# # ATTENTION la selection ne peut etre que des tuples de strings
393-# # '''
394-# #
395-# # START=-20 #ces variables intermédiaires ne marchent pas avec numpy.arange!!!
396-# # STOP=20
397-# # STEP=0.25
398-# # sel=[str(i) for i in list(np.arange(-20, 20, 0.25))]
399-# # #sel=np.arange(START,STOP,STEP) # marche pas
400-# # sel=zip(sel,sel)
401-# #
402-# # return tuple(sel)
403-# #
404-# #
405-# # def _get_cyl_selection(self, cursor, user_id, context=None):
406-# # ##Comment faire une suite qui va de 'x' à 'y' par pas de 0. 25 TODO
407-# # return (('0.5', '0.5'), ('1', '1'),)
408-# #
409-# # _columns = {
410-# # 'tag' : fields.selection(_get_tags_selection, "x_what do you enter"),
411-# # 'consult_id': fields.many2one('oph.consultation', 'Consultation', select = True),
412-# # #OD
413-# # 'va_od': fields.selection(_get_va_selection, 'AV_OD', help = 'Visual acuity OD'),
414-# # 'qualif_od': fields.selection(_get_qualif_selection, 'QUALIF_OD', help = 'qualification de l\'acuité visuelle de loin OD'),
415-# # 'metamorphopsia_od': fields.selection(_get_meta_selection, 'M_OD', help = 'métamorphopsie OD'),
416-# # 'vashort_od': fields.selection(_get_vashort_selection, 'AV_PRES_OD', help = 'acuité visuelle de pres OD'),
417-# # #OD formule
418-# # 'sph_od': fields.selection(_get_sph_selection, 'SPH_OD'),
419-# # 'cyl_od': fields.selection(_get_cyl_selection, 'CYL_OD'),
420-# # 'axis_od': fields.selection(_get_axis_selection, 'AXIS_OD'),
421-# # #OG
422-# # 'va_og': fields.selection(_get_va_selection, 'AV_OG', help = 'acuité visuelle de loin OG'),
423-# # 'qualif_og': fields.selection(_get_qualif_selection, 'QUALIF_OG', help = 'qualification de l\'acuité visuelle de loin OG'),
424-# # 'metamorphopsia_og': fields.selection(_get_meta_selection, 'M_OG', help = 'métamorphopsie OG'),
425-# # 'vashort_og': fields.selection(_get_vashort_selection, 'AV_PRES_OG', help = 'acuité visuelle de pres OG'),
426-# # #OG formule
427-# # 'sph_og': fields.selection(_get_sph_selection, 'SPH_OG'),
428-# # 'cyl_og': fields.selection(_get_cyl_selection, 'CYL_OG'),
429-# # 'axis_og': fields.selection(_get_axis_selection, 'AXIS_OG'),
430-# # }
431-# #
432-# # oph_refraction()
433-# #
434-# # #-- TONOMETRY
435-# # class oph_tonometry(osv.osv):
436-# # '''
437-# # Class oph_tonometry
438-# #
439-# # For persistance data of tonometry
440-# # '''
441-# #
442-# # _name = "oph.tonometry"
443-# # _description = "Tonometry"
444-# # _columns = {
445-# # "to_od": fields.float('TO_OD', digits = (3,2)),
446-# # "to_og": fields.float('TO_OG', digits = (3,2)),
447-# # "date": fields.datetime("Date"),
448-# # "tonometer_id": fields.many2one('oph.tonometer', 'Tonometer', select = True),
449-# # }
450-# # _defaults = {"date": lambda *a:time.strftime("%Y-%m-%d %T"), }
451-# #
452-# # oph_tonometry()
453-# #
454-# # ##-- AGENDA
455-# # class oph_agenda(osv.osv):
456-# # '''
457-# # Class oph_agenda
458-# #
459-# # ORM pour l agenda
460-# # L'ORM contient les enregistrements des crénaux
461-# # ouvert-pris-annulé-en salle d'attente-in between-parti(out)
462-# # '''
463-# #
464-# # _name = "oph.agenda"
465-# # _description = "Agenda et workflow de la salle d'attente"
466-# #
467-# # def _get_status_agenda(self, cursor, user_id, context = None):
468-# # return (
469-# # ('open', 'Open'),
470-# # ('busy', 'Busy'),
471-# # ('close', 'Close'),
472-# # ('cancel', 'Cancel'),
473-# # ('no show', 'No Show'),
474-# # ('in', 'In'),
475-# # ('in between', 'In Between'),
476-# # ('out', 'Out'),
477-# # )
478-# # def statechange_open(self, cr, uid, ids):
479-# # self.write(cr, uid, ids, {"state": "open"})
480-# # return True
481-# # def statechange_close(self, cr, uid, ids):
482-# # self.write(cr, uid, ids, {"state": "close"})
483-# # return True
484-# # def statechange_cancel(self, cr, uid, ids):
485-# # self.write(cr, uid, ids, {"state": "cancel"})
486-# # return True
487-# # def statechange_in(self, cr, uid, ids):
488-# # self.write(cr, uid, ids, {"state": "in"})
489-# # return True
490-# # def statechange_in_between(self, cr, uid, ids):
491-# # self.write(cr, uid, ids, {"state": "in between"})
492-# # return True
493-# # def statechange_out(self, cr, uid, ids):
494-# # self.write(cr, uid, ids, {"state": "out"})
495-# # return True
496-# # def statechange_no_show(self, cr, uid, ids):
497-# # self.write(cr, uid, ids, {"state": "no show"})
498-# # return True
499-# # def statechange_busy(self, cr, uid, ids):
500-# # self.write(cr, uid, ids, {"state": "busy"})
501-# # return True
502-# # def onchange_start(self, cr, uid, ids, start):
503-# # format = "%Y-%m-%d %H:%M:%S"
504-# # wd = dict(zip(('0', '1', '2', '3', '4', '5', '6',), ('dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi')))
505-# # ym = dict(zip(range(1,13),('janvier','fevrier', 'mars', 'avril', 'mai', 'juin', 'juillet', 'aout', 'septembre', 'octobre', 'novembre', 'décembre')))
506-# #
507-# # if start is not None:
508-# # weekday = wd[datetime.strptime(start, format).strftime('%w')]
509-# # daydate = datetime.strptime(start, format).strftime('%Y-%m-%d')
510-# # hour = datetime.strptime(start, format).strftime('%H:%M')
511-# # month = datetime.strptime(start, format).month
512-# # month = ym[month]
513-# #
514-# # return {'value': {'weekday': weekday,
515-# # 'daydate': daydate,
516-# # 'hour': hour,
517-# # "month": month, }}
518-# #
519-# #
520-# # _columns = {
521-# # "start": fields.datetime("Start", help="heure de début du crénaux"),
522-# # "end": fields.datetime("End", help="heure de fin du crénaux"),
523-# # "arrived": fields.datetime("Arrived", help="date et heure d'arrivée du patient"),
524-# # "out": fields.datetime("Out", help="date et heure de sortie du patient"),
525-# # "state": fields.selection(_get_status_agenda, 'State', readonly = True),
526-# # "partner_id" : fields.many2one('res.partner', 'Patient', select=True),
527-# # "weekday": fields.char('Weekday', size = 16, readonly = False),
528-# # #"daydate":fields.char('Date', size = 16, readonly = False),
529-# # "daydate": fields.date('Date', readonly = True),
530-# # "hour": fields.char('Hour', size = 8, readonly = True),
531-# # "month": fields.char('Month', size = 16, readonly = True, help = "mois du rendez vous pour faciliter la lecture du rendez-vous"),
532-# # "callingdate": fields.date("Calling Date", help = "date de la prise du RDV"),
533-# # }
534-# #
535-# # _defaults = {
536-# # 'state': 'open',
537-# # }
538-# #
539-# # oph_agenda()
540-#===============================================================================
541-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
542
543=== modified file 'oph_agenda_view.xml'
544--- oph_agenda_view.xml 2013-11-21 18:09:25 +0000
545+++ oph_agenda_view.xml 2013-11-22 09:04:01 +0000
546@@ -145,8 +145,10 @@
547 </field>
548 </page>
549 <page string="Conclusion" attrs="{'invisible':[('state','in',['draft','open','wait','busy'])]}">
550- <field name="conclusion_ids" widget="one2many" mode="tree" context="{'measurement_type;'conc'}">
551- <tree string="Conclusion" mode="tree" context="{'measurement_type':'conc'}">
552+ <field name="conclusion_ids" widget="one2many" mode="tree" context="{'measurement_type':'conc'}">
553+ <tree string="Conclusion" editable="top">
554+ <field name="type_id" invisible="1"/>
555+ <field name="name" invisible="1"/>
556 <field name="conclusion"/>
557 </tree>
558 </field>

Subscribers

People subscribed via source and target branches