Merge lp:~mathieu-julius/oph/7.0-fix-crm-meeting-view into lp:oph
- 7.0-fix-crm-meeting-view
- Merge into 7.0
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 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
francois | Pending | ||
Review via email: mp+196238@code.launchpad.net |
Commit message
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> |