Source code for nh_eobs_mental_health.models.nh_clinical_settings

from openerp.osv import orm, fields, osv


[docs]class NHEobsMentalHealthSettings(orm.Model): _name = 'nh.clinical.settings' _inherit = 'nh.clinical.settings' _columns = { 'manually_set': fields.boolean(string='Have the settings been manually set') } _defaults = { 'discharge_transfer_period': 10, 'activity_period': 360, 'manually_set': False }
[docs] def init(self, cr, context=None): """ Change the existing settings to the new defaults """ workload_pool = self.pool.get('nh.clinical.settings.workload') config_pool = self.pool.get('nh.clinical.config.settings') existing_rec = self.read(cr, 1, 1, context=context) mental_health_buckets = workload_pool.search(cr, 1, [ ['name', 'in', [ '361+ minutes remain', '241-360 minutes remain', '121-240 minutes remain', '0-120 minutes remain', '1-120 minutes late', '121+ minutes late' ]]]) defaults = self._defaults bucket_objs = workload_pool.read(cr, 1, mental_health_buckets) defaults['workload_bucket_period'] = [[6, 0, mental_health_buckets]] if existing_rec: if not existing_rec.get('manually_set'): self.write(cr, 1, 1, defaults, context=context) config_pool.refresh_workload_view( cr, bucket_objs, context=context) else: self.create(cr, 1, defaults, context=context) config_pool.refresh_workload_view( cr, bucket_objs, context=context)
[docs]class NHEobsMentalHealthConfig(osv.TransientModel): _name = 'nh.clinical.config.settings' _inherit = 'nh.clinical.config.settings'
[docs] def set_discharge_transfer_period(self, cr, uid, ids, context=None): settings_pool = self.pool.get('nh.clinical.settings') wizard = self.browse(cr, uid, ids, context=context) settings_pool.write(cr, uid, 1, { 'discharge_transfer_period': wizard.discharge_transfer_period, 'manually_set': True }, context=context) return self.refresh_discharge_transfer_views( cr, wizard.discharge_transfer_period)
[docs] def set_workload_bucket_period(self, cr, uid, ids, context=None): settings_pool = self.pool.get('nh.clinical.settings') workload_pool = self.pool.get('nh.clinical.settings.workload') wizard = self.read(cr, uid, ids, context=context)[0] bucket_objs = workload_pool.read(cr, uid, wizard.get('workload_bucket_period'), context=context) buckets = [bucket.get('name') for bucket in bucket_objs] validation = settings_pool.validate_workload_buckets(buckets, context=context) if isinstance(validation, str): raise ValueError(validation) settings_pool.write(cr, uid, 1, { 'manually_set': True, 'workload_bucket_period': [ [6, 0, wizard.get('workload_bucket_period')] ]}, context=context) return self.refresh_workload_view(cr, bucket_objs, context=context)
[docs] def set_activity_period(self, cr, uid, ids, context=None): settings_pool = self.pool.get('nh.clinical.settings') wizard = self.browse(cr, uid, ids, context=context) return settings_pool.write(cr, uid, 1, { 'activity_period': wizard.activity_period, 'manually_set': True }, context=context)
[docs] def refresh_discharge_transfer_views(self, cr, interval, context=None): """ Refresh nh_clinical_wardboard with refused join :param cr: Odoo cursor :param interval: Interval for discharge / transfer view :param context: Odoo context :return: execution of SQL Statement """ nh_eobs_sql = self.pool.get('nh.clinical.sql') discharge = \ nh_eobs_sql.get_last_discharge_users('{0}d'.format(interval)) transfer = \ nh_eobs_sql.get_last_transfer_users('{0}d'.format(interval)) wardboard = \ nh_eobs_sql.get_refused_wardboard('{0}d'.format(interval)) return cr.execute( """ create or replace view last_discharge_users as({last_discharge_users}); create or replace view last_transfer_users as({last_transfer_users}); create or replace view nh_clinical_wardboard as({wardboard}); """.format(last_discharge_users=discharge, last_transfer_users=transfer, wardboard=wardboard) )