diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml index 3018fec5482..cb774b3009e 100644 --- a/addons/crm/crm_lead_view.xml +++ b/addons/crm/crm_lead_view.xml @@ -305,7 +305,7 @@ - diff --git a/addons/hr/hr.py b/addons/hr/hr.py index 27e429c8206..969e052e0d0 100644 --- a/addons/hr/hr.py +++ b/addons/hr/hr.py @@ -149,27 +149,25 @@ class hr_employee(osv.osv): _description = "Employee" _inherits = {'resource.resource': "resource_id"} - def onchange_photo_mini(self, cr, uid, ids, value, context=None): - return {'value': {'photo': value, 'photo_mini': self._photo_resize(cr, uid, value) } } + def onchange_photo(self, cr, uid, ids, value, context=None): + return {'value': {'photo_stored': self._photo_resize(cr, uid, value, 360, 300, context=context), 'photo': self._photo_resize(cr, uid, value, context=context) } } - def _set_photo_mini(self, cr, uid, id, name, value, args, context=None): - return self.write(cr, uid, [id], {'photo': value}, context=context) + def _set_photo(self, cr, uid, id, name, value, args, context=None): + return self.write(cr, uid, [id], {'photo_stored': value}, context=context) - def _photo_resize(self, cr, uid, photo, context=None): + def _photo_resize(self, cr, uid, photo, heigth=180, width=150, context=None): image_stream = io.BytesIO(photo.decode('base64')) img = Image.open(image_stream) - img.thumbnail((180, 150), Image.ANTIALIAS) + img.thumbnail((heigth, width), Image.ANTIALIAS) img_stream = StringIO.StringIO() img.save(img_stream, "JPEG") return img_stream.getvalue().encode('base64') - def _get_photo_mini(self, cr, uid, ids, name, args, context=None): - result = {} + def _get_photo(self, cr, uid, ids, name, args, context=None): + result = dict.fromkeys(ids, False) for hr_empl in self.browse(cr, uid, ids, context=context): - if not hr_empl.photo: - result[hr_empl.id] = False - else: - result[hr_empl.id] = self._photo_resize(cr, uid, hr_empl.photo, context=context) + if hr_empl.photo_stored: + result[hr_empl.id] = self._photo_resize(cr, uid, hr_empl.photo_stored, context=context) return result _columns = { @@ -197,11 +195,11 @@ class hr_employee(osv.osv): 'resource_id': fields.many2one('resource.resource', 'Resource', ondelete='cascade', required=True), 'coach_id': fields.many2one('hr.employee', 'Coach'), 'job_id': fields.many2one('hr.job', 'Job'), - 'photo': fields.binary('Photo'), - 'photo_mini': fields.function(_get_photo_mini, fnct_inv=_set_photo_mini, string='Photo Mini', type="binary", + 'photo_stored': fields.binary('Stored photo', help="This field holds the photo of the employee. The photo field is used as an interface to access this field. The image is base64 encoded, and PIL-supported. Stored photo through the interface are resized to 360x300 px."), + 'photo': fields.function(_get_photo, fnct_inv=_set_photo, string='Employee photo', type="binary", store = { - 'hr.employee': (lambda self, cr, uid, ids, c={}: ids, ['photo'], 10), - }), + 'hr.employee': (lambda self, cr, uid, ids, c={}: ids, ['photo_stored'], 10), + }, help="Image used as photo for the employee. It is automatically resized as a 180x150 px image."), 'passport_id':fields.char('Passport No', size=64), 'color': fields.integer('Color Index'), 'city': fields.related('address_id', 'city', type='char', string='City'), @@ -248,11 +246,11 @@ class hr_employee(osv.osv): def _get_photo(self, cr, uid, context=None): photo_path = addons.get_module_resource('hr','images','photo.png') - return self._photo_resize(cr, uid, open(photo_path, 'rb').read().encode('base64')) + return self._photo_resize(cr, uid, open(photo_path, 'rb').read().encode('base64'), context=context) _defaults = { 'active': 1, - 'photo_mini': _get_photo, + 'photo': _get_photo, 'marital': 'single', 'color': 0, } diff --git a/addons/hr/hr_view.xml b/addons/hr/hr_view.xml index 132c56dca80..060e61bd3f2 100644 --- a/addons/hr/hr_view.xml +++ b/addons/hr/hr_view.xml @@ -34,7 +34,7 @@ - + @@ -136,7 +136,7 @@
- +

()

diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml index 9950de6a116..4ea94efc139 100644 --- a/addons/project/project_view.xml +++ b/addons/project/project_view.xml @@ -354,7 +354,7 @@ -