openerp-dev-web team mailing list archive
-
openerp-dev-web team
-
Mailing list archive
-
Message #04419
lp:~openerp-dev/openobject-addons/training_evalution_search_view into lp:~openobject-training/openobject-addons/training_with_history
gpa(Open ERP) has proposed merging lp:~openerp-dev/openobject-addons/training_evalution_search_view into lp:~openobject-training/openobject-addons/training_with_history.
Requested reviews:
Bhumika (OpenERP) (sbh-openerp)
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/training_evalution_search_view/+merge/54182
training_evalution improvement for the search view and sequence and improvement for the training module
--
https://code.launchpad.net/~openerp-dev/openobject-addons/training_evalution_search_view/+merge/54182
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-addons/training_evalution_search_view.
=== modified file 'training/partner.py'
--- training/partner.py 2011-02-25 12:33:02 +0000
+++ training/partner.py 2011-03-21 10:56:38 +0000
@@ -184,11 +184,10 @@
raise osv.except_osv(_('Warning'),
_("Please, Could you configure the contact's function ?"))
- function_ids = [x.function_id.id for x in proxy.browse(cr, uid, ids, context=context)]
-
+ functions = [x.function for x in proxy.browse(cr, uid, ids, context=context)]
proxy = self.pool.get('res.partner.job')
job_ids = proxy.search(cr, uid,
- domain + [('function_id', 'in', function_ids),('state', '=', 'current')])
+ domain + [('function', 'in', functions),('state', '=', 'current')])
if not job_ids:
raise osv.except_osv(_('Warning'),
=== modified file 'training/training.py'
--- training/training.py 2011-03-18 12:58:20 +0000
+++ training/training.py 2011-03-21 10:56:38 +0000
@@ -63,15 +63,29 @@
def _get_values_of_kind(self):
return [('standard', 'Course'),('writer','Writer')]
+ def _function_get(self, cr, uid, context=None):
+ if context is None:
+ context = {}
+
+ res_partner_job_obj = self.pool.get('res.partner.job')
+ ids = res_partner_job_obj.search(cr, uid, [])
+ res = res_partner_job_obj.read(cr, uid, ids, ['function'], context=context)
+ function_list = []
+ done_list = []
+ for r in res:
+ if not r['function'] in function_list:
+ function_list.append(r['function'])
+ done_list.append(r)
+ return [(r['function'], r['function']) for r in done_list]
+
_rec_name = 'kind'
-
_columns = {
'kind' : fields.selection(lambda obj, cr, uid, context=None: obj._get_values_of_kind(), 'Kind', required=True, select=1),
- 'function_id' : fields.many2one('res.partner.function', 'Function', required=True, select=1),
+ 'function': fields.selection(_function_get, 'Function', size=64),
}
_sql_constraints = [
- ('uniq_kind_function', 'unique(kind, function_id)', 'You can not define twice the same relation !'),
+ ('uniq_kind_function', 'unique(kind, function)', 'You can not define twice the same relation !'),
]
training_config_contact_function()
=== modified file 'training/training_view.xml'
--- training/training_view.xml 2011-03-18 13:32:27 +0000
+++ training/training_view.xml 2011-03-21 10:56:38 +0000
@@ -2366,7 +2366,7 @@
<field name="arch" type="xml">
<tree string="Contact Function Configuration">
<field name="kind"/>
- <field name="function_id"/>
+ <field name="function"/>
</tree>
</field>
</record>
@@ -2378,7 +2378,7 @@
<field name="arch" type="xml">
<form string="Contact Function Configuration">
<field name="kind"/>
- <field name="function_id"/>
+ <field name="function"/>
</form>
</field>
</record>
@@ -2390,7 +2390,7 @@
<field name="arch" type="xml">
<search string="Search Training Config Contact Function">
<field name="kind"/>
- <field name="function_id"/>
+ <field name="function"/>
</search>
</field>
</record>
=== renamed file 'training_evaluation/__terp__.py' => 'training_evaluation/__openerp__.py'
=== modified file 'training_evaluation/training_evaluation.py'
--- training_evaluation/training_evaluation.py 2011-02-23 12:44:16 +0000
+++ training_evaluation/training_evaluation.py 2011-03-21 10:56:38 +0000
@@ -40,6 +40,9 @@
return dict(res)
def name_get(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
+
if not len(ids):
return []
reads = self.read(cr, uid, ids, ['name','parent_id'], context=context)
@@ -73,6 +76,9 @@
}
def on_change_parent(self, cr, uid, ids, parent_id, context=None):
+ if context is None:
+ context = {}
+
if not parent_id:
return False
@@ -115,6 +121,9 @@
]
def on_change_question(self, cr, uid, ids, question_id, context=None):
+ if context is None:
+ context = {}
+
if not question_id:
return {}
@@ -130,7 +139,6 @@
return res
-
_order = 'sequence asc'
training_evaluation_questionnaire_question_rel()
@@ -153,6 +161,9 @@
}
def create(self, cr, uid, values, context=None):
+ if context is None:
+ context = {}
+
values['name'] = self.pool.get('ir.sequence').get(cr, uid, 'tr.eval.question')
return super(evaluation_question, self).create(cr, uid, values, context=context)
@@ -191,6 +202,9 @@
}
def _check_questionnaire(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
+
for obj in self.browse(cr, uid, ids, context=context):
if obj.state == 'validated':
cnt = self.search_count(cr, uid, [('state', '=', 'validated'),
@@ -205,10 +219,16 @@
]
def create(self, cr, uid, values, context=None):
+ if context is None:
+ context = {}
+
values['name'] = self.pool.get('ir.sequence').get(cr, uid, 'tr.eval.questionnaire')
return super(evaluation_questionnaire, self).create(cr, uid, values, context=context)
def get_validated_questionnaire(self, cr, uid, context=None):
+ if context is None:
+ context = {}
+
ids = self.search(cr, uid, [('state', '=', 'validated')], context=context)
if not ids:
raise osv.except_osv(_('Warning'),
@@ -216,6 +236,9 @@
return ids[0]
def action_signal_draft(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
+
workflow = netsvc.LocalService('workflow')
for oid in ids:
@@ -232,6 +255,9 @@
_description = 'Global Evaluation'
def _participation_ids_compute(self, cr, uid, ids, fields, args, context=None):
+ if context is None:
+ context = {}
+
res = dict.fromkeys(ids, 0)
for obj in self.browse(cr, uid, ids, context=context):
@@ -240,6 +266,9 @@
return res
def search_evaluation_ids_with_contacts(self, cr, uid, contact_ids, context=None):
+ if context is None:
+ context = {}
+
res = dict.fromkeys(contact_ids, [])
if contact_ids:
return res
@@ -257,7 +286,12 @@
return res
def do_evaluation_scan(self, cr, uid, res_id, page_num, scanner, context=None):
+ if context is None:
+ context = {}
+
position_storage_pool = self.pool.get('position.storage')
+ evaluation_pool = self.pool.get('training.evaluation')
+
checkboxes_position = position_storage_pool.load_checkboxes_position(cr, uid, self._name, res_id, page_num, context)
checkboxes_context = position_storage_pool.load_checkboxes_context(cr, uid, self._name, res_id, page_num, context)
if not checkboxes_position:
@@ -277,8 +311,6 @@
pass
questions[q_id] = r_num
- evaluation_pool = self.pool.get('training.evaluation')
-
# create a new evaluation, and load defaut questions
new_eval_id = evaluation_pool.create(cr, uid, {'evaluation_global_id': res_id, }, context=context)
evaluation_pool.load_questions(cr, uid, [new_eval_id], context=context)
@@ -316,11 +348,17 @@
]
def create(self, cr, uid, values, context=None):
+ if context is None:
+ context = {}
+
values['name'] = self.pool.get('ir.sequence').get(cr, uid, 'tr.eval.global')
return super(evaluation_global, self).create(cr, uid, values, context=context)
def search(self, cr, uid, domain, offset=0, limit=None, order=None, context=None, count=False):
- evaluation_contact_id = (context and 'evaluation_contact_id' in context and context.pop('evaluation_contact_id')) or False
+ if context is None:
+ context = {}
+
+ evaluation_contact_id = ('evaluation_contact_id' in context and context.pop('evaluation_contact_id')) or False
if evaluation_contact_id:
cr.execute("""
SELECT teg.id
@@ -350,6 +388,9 @@
_name = 'training.evaluation'
def load_questions(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
+
ev_line = self.pool.get('training.evaluation.line')
for obj in self.browse(cr, uid, ids, context=context):
for question_rel in obj.questionnaire_id.question_ids:
@@ -383,13 +424,18 @@
}
def create(self, cr, uid, values, context=None):
+ if context is None:
+ context = {}
+
values['name'] = self.pool.get('ir.sequence').get(cr, uid, 'tr.eval')
return super(evaluation, self).create(cr, uid, values, context=context)
def on_change_seance(self, cr, uid, ids, seance_id, context=None):
+ if context is None:
+ context = {}
+
if not seance_id:
return {}
-
seance = self.pool.get('training.seance').browse(cr, uid, seance_id, context=context)
res = {
'value' : {
@@ -400,6 +446,9 @@
return res
def on_change_evaluation_global(self, cr, uid, ids, evg_id, context=None):
+ if context is None:
+ context = {}
+
if not evg_id:
return {
'value' : {
@@ -427,11 +476,13 @@
_rec_name = 'question_id'
def on_change_question(self, cr, uid, ids, question_id, context=None):
+ if context is None:
+ context = {}
if not question_id:
return False
- question = self.pool.get('training.evaluation.question').browse(cr, uid, question_id)
+ question = self.pool.get('training.evaluation.question').browse(cr, uid, question_id, context=context)
return {
'value': {
@@ -482,7 +533,6 @@
class training_seance_generate_pdf_wizard(osv.osv_memory):
_inherit = 'training.seance.generate.zip.wizard'
-
_columns = {
'evaluations_report' : fields.boolean('Evaluations',
help="If you select this option, you will print the evaluations report. The file name format is Evaluation_DATE_INDEX.pdf"),
@@ -491,6 +541,9 @@
}
def _default_evaluations_number(self, cr, uid, context=None):
+ if context is None:
+ context = {}
+
active_id = context and context.get('active_id') or False
if active_id:
seance = self.pool.get('training.seance').browse(cr, uid, active_id, context=context)
@@ -504,6 +557,9 @@
}
def add_selections(self, cr, uid, ids, directory, log, context=None):
+ if context is None:
+ context = {}
+
active_id = context and context.get('active_id')
evg_pool = self.pool.get('training.evaluation.global')
ev_quizz_pool = self.pool.get('training.evaluation.questionnaire')
@@ -541,11 +597,14 @@
_inherit = 'ir.attachment'
def unlink(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
+
positions_by_model = {}
positions_to_delete = []
posstor_proxy = self.pool.get('position.storage')
- for attach in self.browse(cr, uid, ids):
+ for attach in self.browse(cr, uid, ids, context=context):
if attach.res_model == 'training.evaluation.global' and attach.datas_fname.startswith('EVAL') and attach.datas_fname.endswith('.pdf'):
positions_by_model.setdefault(attach.res_model, []).append(attach.res_id)
for model, model_ids in positions_by_model.iteritems():
@@ -555,7 +614,7 @@
positions_to_delete.extend(sids)
result = super(ir_attachment_eval_unlink, self).unlink(cr, uid, ids, context=context)
if result:
- result_position = posstor_proxy.unlink(cr, uid, positions_to_delete)
+ result_position = posstor_proxy.unlink(cr, uid, positions_to_delete, context=context)
return result
ir_attachment_eval_unlink()
=== modified file 'training_evaluation/training_evaluation_view.xml'
--- training_evaluation/training_evaluation_view.xml 2011-01-05 11:41:40 +0000
+++ training_evaluation/training_evaluation_view.xml 2011-03-21 10:56:38 +0000
@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
<data>
- <menuitem name="Evaluations" parent="training.training_library_mi" id="evaluation_mi" />
+ <menuitem name="Evaluations Questions" parent="training.training_library_mi" id="evaluation_mi" />
+ <menuitem name="Evaluations Seances" parent="training.training_mi" id="seance_evaluation_mi" />
<record model="ir.ui.view" id="evaluation_category_form">
<field name="name">training.evaluation.category.form</field>
@@ -100,7 +101,7 @@
<field name="questionnaire_id" />
<field name="evaluation_ids"
colspan="4"
- nolabel="1"
+ nolabel="1"
context="{'default_seance_id' : seance_id, 'default_date' : date, 'default_course_id' : course_id, 'default_evaluation_global_id' : active_id, 'default_questionnaire_id' : questionnaire_id}">
<tree string="Evaluations">
<field name="name" />
@@ -137,20 +138,39 @@
</field>
</record>
- <act_window id="evaluations_link"
- name="Evaluations"
- src_model="training.evaluation.global"
- res_model="training.evaluation"
- domain="[('evaluation_global_id', '=', active_id)]" />
+ <record id="training_evaluation_global_filter" model="ir.ui.view">
+ <field name="name">training.evaluation.global.search</field>
+ <field name="model">training.evaluation.global</field>
+ <field name="type">search</field>
+ <field name="priority">1</field>
+ <field name="arch" type="xml">
+ <search string="Search Seance Evaluation">
+ <field name="name" />
+ <field name="seance_id" />
+ <field name="questionnaire_id" />
+ <newline/>
+ <group expand="0" string="Group By...">
+ <filter string="Seance" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'seance_id'}"/>
+ </group>
+ </search>
+ </field>
+ </record>
<record model="ir.actions.act_window" id="evaluation_global_all_act">
<field name="name">Seance Evaluations</field>
<field name="res_model">training.evaluation.global</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
+ <field name="search_view_id" ref="training_evaluation_global_filter"/>
</record>
- <menuitem id="evaluation_global_all_mi" parent="training.training_mi" action="evaluation_global_all_act"/>
+ <menuitem id="evaluation_global_all_mi" parent="seance_evaluation_mi" action="evaluation_global_all_act" sequence="10" />
+
+ <act_window id="evaluations_link"
+ name="Evaluations"
+ src_model="training.evaluation.global"
+ res_model="training.evaluation"
+ domain="[('evaluation_global_id', '=', active_id)]" />
<record model="ir.ui.view" id="view_training_evaluation_form">
<field name="name">training.evaluation.form</field>
@@ -162,7 +182,7 @@
<field name="name" />
<field name="evaluation_global_id" on_change="on_change_evaluation_global(evaluation_global_id)" />
<separator string="Seance Information" colspan="4" />
- <field name="seance_id" readonly="1" on_change="on_change_seance(seance_id)" />
+ <field name="seance_id" readonly="1" on_change="on_change_seance(seance_id)" />
<field name="course_id" />
<field name="date" />
<notebook colspan="4">
@@ -191,15 +211,34 @@
</field>
</record>
+ <record model="ir.ui.view" id="view_training_evaluation_search">
+ <field name="name">training.evaluation.search</field>
+ <field name="model">training.evaluation</field>
+ <field name="type">search</field>
+ <field name="arch" type="xml">
+ <search string="Search Evaluations">
+ <field name="name" />
+ <field name="evaluation_global_id" />
+ <field name="seance_id" />
+ <newline/>
+ <group expand="0" string="Group By..." >
+ <filter string="Global Evalution" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'evaluation_global_id'}"/>
+ <separator orientation="vertical"/>
+ <filter string="Seance" icon="terp-accessories-archiver" domain="[]" context="{'group_by':'seance_id'}"/>
+ </group>
+ </search>
+ </field>
+ </record>
+
<record model="ir.actions.act_window" id="evaluation_all_act">
<field name="name">Evaluations</field>
<field name="res_model">training.evaluation</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
+ <field name="search_view_id" ref="view_training_evaluation_search"/>
</record>
- <menuitem action="evaluation_all_act" parent="evaluation_global_all_mi" id="evaluation_all_mi" />
-
+ <menuitem action="evaluation_all_act" parent="seance_evaluation_mi" id="evaluation_all_mi" sequence="2" />
<record model="ir.ui.view" id="evaluation_question_form">
<field name="name">training.evaluation.question.form</field>
@@ -237,27 +276,37 @@
</tree>
</field>
</record>
+
+ <record id="training_evaluation_question_filter" model="ir.ui.view">
+ <field name="name">training.evaluation.question.search</field>
+ <field name="model">training.evaluation.question</field>
+ <field name="type">search</field>
+ <field name="priority">1</field>
+ <field name="arch" type="xml">
+ <search string="Search Question">
+ <field name="name"/>
+ <field name="category_id" />
+ <field name="type"/>
+ <field name="question" />
+ <newline/>
+ <group expand="0" string="Group By...">
+ <filter string="Category" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'category_id'}"/>
+ <separator orientation="vertical"/>
+ <filter string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'type'}"/>
+ </group>
+ </search>
+ </field>
+ </record>
+
<record model="ir.actions.act_window" id="evaluation_question_all_act">
<field name="name">Questions</field>
<field name="res_model">training.evaluation.question</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
- </record>
- <record model="ir.actions.act_window" id="evaluation_question_new_act">
- <field name="name">New Question</field>
- <field name="res_model">training.evaluation.question</field>
- <field name="view_type">form</field>
- <field name="view_mode">form,tree</field>
- </record>
-
- <record model="ir.actions.act_window" id="evaluation_question_act">
- <field name="name">Questions</field>
- <field name="res_model">training.evaluation.question</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- </record>
-
- <menuitem parent="evaluation_mi" id="menu_evaluation_question_form" action="evaluation_question_act"/>
+ <field name="search_view_id" ref="training_evaluation_question_filter"/>
+ </record>
+
+ <menuitem parent="evaluation_mi" id="menu_evaluation_question_form" action="evaluation_question_all_act"/>
<record model="ir.ui.view" id="evaluation_questionnaire_question_rel_form">
<field name="name">training.evaluation.questionnaire.question.rel.form</field>
@@ -327,18 +376,44 @@
</tree>
</field>
</record>
+
+ <record id="evaluation_questionnaire_filter" model="ir.ui.view">
+ <field name="name">training.evaluation.questionnaire.search</field>
+ <field name="model">training.evaluation.questionnaire</field>
+ <field name="type">search</field>
+ <field name="priority">1</field>
+ <field name="arch" type="xml">
+ <search string="Search Questionnaires">
+ <filter icon="terp-document-new" string="Draft" domain="[('state','=', 'draft')]"/>
+ <filter icon="terp-camera_test" string="Inprogress" domain="[('state','=', 'inprogress')]"/>
+ <filter icon="gtk-apply" string="Validated" domain="[('state','=', 'validated')]"/>
+ <separator orientation="vertical"/>
+ <field name="name"/>
+ <field name="kind" />
+ <field name="state"/>
+ <newline/>
+ <group expand="0" string="Group By...">
+ <filter string="Kind" icon="terp-report" domain="[]" context="{'group_by':'kind'}"/>
+ <separator orientation="vertical"/>
+ <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
+ </group>
+ </search>
+ </field>
+ </record>
+
<record model="ir.actions.act_window" id="evaluation_questionnaire_all_act">
<field name="name">Questionnaires</field>
<field name="res_model">training.evaluation.questionnaire</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
+ <field name="search_view_id" ref="evaluation_questionnaire_filter"/>
</record>
+
<menuitem parent="evaluation_mi" id="menu_evaluation_questionnaire_form"
action="evaluation_questionnaire_all_act"/>
<!-- Evaluation Line-->
-
<record model="ir.ui.view" id="evaluation_line_tree">
<field name="name">training.evaluation.line.tree</field>
<field name="model">training.evaluation.line</field>
@@ -383,9 +458,9 @@
name="Evaluations"
src_model="training.participation"
res_model="training.evaluation"
- domain="[]"
+ domain="[]"
context="{'eval_part_id' : active_id}"
- groups="group_evaluation_user"
+ groups="group_evaluation_user"
/>
<act_window id="seance_evaluation_link"
@@ -395,29 +470,29 @@
groups="training_evaluation.group_evaluation_user"
domain="[('seance_id', '=', active_id)]" />
- <act_window id="seance_global_evaluation_link"
- name="Global Evaluation"
- src_model="training.seance"
- res_model="training.evaluation.global"
- groups="training_evaluation.group_evaluation_user"
- domain="[('seance_id', '=', active_id)]" />
+ <act_window id="seance_global_evaluation_link"
+ name="Global Evaluation"
+ src_model="training.seance"
+ res_model="training.evaluation.global"
+ groups="training_evaluation.group_evaluation_user"
+ domain="[('seance_id', '=', active_id)]" />
<act_window id="contact_evaluation_link"
name="Evaluations"
src_model='res.partner.contact'
res_model='training.evaluation.global'
- domain="[('seance_id', '=', active_id)]"
+ domain="[('seance_id', '=', active_id)]"
context="{'evaluation_contact_id' : active_id}"
-
+
/>
<act_window id="course_evaluation_link"
name="Evaluations"
src_model='training.course'
res_model='training.evaluation.global'
- domain="[('seance_id', '=', active_id)]"
+ domain="[('seance_id', '=', active_id)]"
context="{'evaluation_course_id' : active_id}"
-
+
/>
<record model="ir.ui.view" id="eval_seance_generate_zip_wizard_form">
=== modified file 'training_evaluation/wizard/wizard_organization_report.py'
--- training_evaluation/wizard/wizard_organization_report.py 2010-08-30 15:16:45 +0000
+++ training_evaluation/wizard/wizard_organization_report.py 2011-03-21 10:56:38 +0000
@@ -37,12 +37,16 @@
}
def do_print(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
+
if not ids:
return {}
wizard = self.browse(cr, uid, ids[0], context=context)
+ datas = {'ids': [ wizard.partner_id.id ]}
return {
'type': 'ir.actions.report.xml',
'report_name': 'training.evaluation.organization.report',
- 'ids': [ wizard.partner_id.id ],
+ 'datas': datas,
}
wizard_training_evaluation_organization_report()
=== modified file 'training_evaluation/wizard/wizard_organization_report_view.xml'
--- training_evaluation/wizard/wizard_organization_report_view.xml 2010-09-05 18:55:41 +0000
+++ training_evaluation/wizard/wizard_organization_report_view.xml 2011-03-21 10:56:38 +0000
@@ -1,6 +1,6 @@
<openerp>
<data>
-
+
<record model="ir.ui.view" id="training_evaluation_organization_report_wizard_form">
<field name="name">training.evaluation.organization.report.wizard.form</field>
<field name="model">training.evaluation.organization.report.wizard</field>
@@ -21,7 +21,7 @@
<field name="target">new</field>
</record>
- <menuitem id="organization_evaluation_wizard_mi" parent="evaluation_global_all_mi"
+ <menuitem id="organization_evaluation_wizard_mi" parent="seance_evaluation_mi"
action="training_evaluation_organization_report_wizard_action"
string="Organization Evaluation Report"/>
=== modified file 'training_evaluation/wizard/wizard_preview_evaluation.py'
--- training_evaluation/wizard/wizard_preview_evaluation.py 2011-02-23 12:44:16 +0000
+++ training_evaluation/wizard/wizard_preview_evaluation.py 2011-03-21 10:56:38 +0000
@@ -33,6 +33,9 @@
}
def _get_default_language(self, cr, uid, context=None):
+ if context is None:
+ context = {}
+
lang_pool = self.pool.get('res.lang')
ids = lang_pool.search(cr, uid, [('code','=', context.get('lang', 'en_US'))])
if ids:
@@ -43,15 +46,18 @@
}
def button_print(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
+
if not ids:
return {}
wizard = self.browse(cr, uid, ids[0], context=context)
- z = {
+
+ return {
'type': 'ir.actions.report.xml',
'report_name': 'training.evaluation.empty.preview.report',
'model': 'training.evaluation.questionnaire.preview.wizard',
'ids': ids,
}
- return z
wizard_preview_evaluation()
=== modified file 'training_report/report_training_view.xml'
--- training_report/report_training_view.xml 2010-10-05 14:48:03 +0000
+++ training_report/report_training_view.xml 2011-03-21 10:56:38 +0000
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
- <menuitem id="menu_training_report" name="Reporting" parent="training.training_mi" sequence="100"/>
+ <menuitem id="menu_training_report" name="Reporting" parent="training.training_mi" sequence="60"/>
<wizard id="training_session_volume_report_wizard"
model="training.session"
Follow ups