'active': True,
'month_first': 6,
'month_next': 12,
- 'company_id': lambda s,cr,uid,c: s.pool.get('res.company')._company_default_get(cr, uid, 'account.account', context=c),
+ 'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'account.account', context=c),
}
- hr_evaluation_plan()
+
class hr_evaluation_plan_phase(osv.osv):
_name = "hr_evaluation.plan.phase"
_description = "Appraisal Plan Phase"
'''),
}
- hr_evaluation_plan_phase()
+
class hr_employee(osv.osv):
_name = "hr.employee"
- _inherit="hr.employee"
+ _inherit = "hr.employee"
_columns = {
'evaluation_plan_id': fields.many2one('hr_evaluation.plan', 'Appraisal Plan'),
'evaluation_date': fields.date('Next Appraisal Date', help="The date of the next appraisal is computed by the appraisal plan's dates (first appraisal + periodicity)."),
obj_hr_eval_iterview.write(cr, uid, [survey_req.id], new_vals, context=context)
return super(hr_evaluation, self).write(cr, uid, ids, vals, context=context)
- hr_evaluation()
+
class survey_request(osv.osv):
- _inherit = "survey.request"
+ _inherit = "survey.response"
_columns = {
'is_evaluation': fields.boolean('Is Appraisal?'),
}
- survey_request()
+
class hr_evaluation_interview(osv.osv):
_name = 'hr.evaluation.interview'
- _inherits = {'survey.request': 'request_id'}
- _inherit = 'mail.thread'
- _rec_name = 'request_id'
+ _inherits = {'survey.response': 'response_id'}
+ _inherit = ['mail.thread', 'ir.needaction_mixin']
+ _rec_name = 'response_id'
_description = 'Appraisal Interview'
_columns = {
- 'request_id': fields.many2one('survey.request','Request_id', ondelete='cascade', required=True),
+ 'response_id': fields.many2one('survey.response', 'interview_id', ondelete='cascade', required=True),
'user_to_review_id': fields.many2one('hr.employee', 'Employee to Interview'),
'evaluation_id': fields.many2one('hr_evaluation.evaluation', 'Appraisal Form'),
+ 'user_id': fields.many2one('res.users', 'Interviewer'),
}
_defaults = {
'is_evaluation': True,
#
##############################################################################
- from openerp import pooler, tools
+ import openerp
+ from openerp import tools
from openerp.report.interface import report_rml
from openerp.tools import to_xml
+import lxml
+from lxml.html.clean import Cleaner
+cleaner = Cleaner(style=True, links=False, add_nofollow=True, page_structure=True, safe_attrs_only=True)
+
class survey_form(report_rml):
def create(self, cr, uid, ids, datas, context):
_description = 'Survey Type'
_columns = {
'name': fields.char("Name", size=128, required=1, translate=True),
- 'code': fields.char("Code", size=64),
}
-
class survey(osv.osv):
_name = 'survey'
_description = 'Survey'
'context': context
}
- def edit_survey(self, cr, uid, ids, context=None):
- sur_obj = self.read(cr, uid, ids,['title','page_ids'], context=context)
- for sur in sur_obj:
- name = sur['title']
- pages = sur['page_ids']
- if not pages:
- raise osv.except_osv(_('Warning!'), _('This survey has no question defined. Please define the questions and answers first.'))
- context.update({'survey_id': ids[0]})
+ def action_survey_sent(self, cr, uid, ids, context=None):
+ '''
+ This function opens a window to compose an email, with the survey template message loaded by default
+ '''
+ self._check_valid(cr, uid, ids, context=context)
+
+ survey_browse = self.pool.get('survey').browse(cr, uid, ids, context=context)[0]
+ if survey_browse.state != "open":
+ raise osv.except_osv(_('Warning!'), _("You cannot send invitations because the survey is not open."))
+
+ assert len(ids) == 1, 'This option should only be used for a single id at a time.'
+ ir_model_data = self.pool.get('ir.model.data')
+ try:
+ template_id = ir_model_data.get_object_reference(cr, uid, 'survey', 'email_template_survey')[1]
+ except ValueError:
+ template_id = False
+ ctx = dict(context)
+
+ ctx.update({
+ 'default_model': 'survey',
+ 'default_res_id': ids[0],
+ 'default_use_template': bool(template_id),
+ 'default_template_id': template_id,
+ 'default_composition_mode': 'comment',
+ 'survey_state': survey_browse.state
+ })
return {
+ 'type': 'ir.actions.act_window',
'view_type': 'form',
'view_mode': 'form',
- 'res_model': 'survey.question.wiz',
- 'type': 'ir.actions.act_window',
+ 'res_model': 'survey.mail.compose.message',
'target': 'new',
- 'name': name,
- 'context': context
+ 'context': ctx,
}
--
-class survey_history(osv.osv):
- _name = 'survey.history'
- _description = 'Survey History'
- _rec_name = 'date'
- _columns = {
- 'survey_id': fields.many2one('survey', 'Survey'),
- 'user_id': fields.many2one('res.users', 'User', readonly=True),
- 'date': fields.datetime('Date started', readonly=1),
- }
- _defaults = {
- 'date': lambda * a: datetime.datetime.now()
- }
-
class survey_page(osv.osv):
_name = 'survey.page'
_description = 'Survey Pages'