← Back to team overview

openerp-dev-web team mailing list archive

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