merged
authorHDA (OpenERP) <hda@tinyerp.com>
Fri, 9 Oct 2009 10:03:04 +0000 (15:33 +0530)
committerHDA (OpenERP) <hda@tinyerp.com>
Fri, 9 Oct 2009 10:03:04 +0000 (15:33 +0530)
bzr revid: hda@tinyerp.com-20091009100304-ypn2f3ivhfg8s8pq

1  2 
addons/account/account_view.xml
addons/base_report_creator/base_report_creator.py
addons/crm/scripts/openerp-mailgate/openerp-mailgate.py
addons/hr_timesheet/hr_timesheet_view.xml
addons/project/project_view.xml
addons/purchase/purchase.py
addons/purchase/purchase_view.xml
addons/purchase/wizard/wizard_group.py
addons/sale/sale.py
addons/stock/stock_view.xml

@@@ -30,8 -30,8 +30,8 @@@
                      <separator colspan="4" string="States"/>
                      <field name="state" select="1" readonly="1"/>
                      <group col="2" colspan="2">
 -                        <button name="create_period" states="draft" string="Create Monthly Periods" type="object"/>
 -                        <button name="create_period3" states="draft" string="Create 3 Months Periods" type="object"/>
 +                        <button name="create_period" states="draft" string="Create Monthly Periods" type="object" icon="gtk-dnd"/>
 +                        <button name="create_period3" states="draft" string="Create 3 Months Periods" type="object" icon="gtk-dnd"/>
                      </group>
                  </form>
              </field>
@@@ -78,7 -78,7 +78,7 @@@
                      <field name="special"/>
                      <separator colspan="4" string="States"/>
                      <field name="state" select="1"/>
 -                    <button name="action_draft" states="done" string="Set to Draft" type="object"/>
 +                    <button name="action_draft" states="done" string="Set to Draft" type="object" icon="gtk-convert"/>
                  </form>
              </field>
          </record>
                      <field name="period_id" select="2"/>
                      <group colspan="2" col="3">
                          <button name="%(wizard_populate_statement_from_inv)d"
 -                            string="Import Invoice" type="action" attrs="{'invisible':[('state','=','confirm')]}"/>
 +                            string="Import Invoice" type="action" attrs="{'invisible':[('state','=','confirm')]}" icon="gtk-open"/>
                      </group>
                      <newline/>
                      <field name="balance_start"/>
                          <page string="Entry encoding">
                              <field colspan="4" name="line_ids" nolabel="1">
                                  <tree editable="bottom" string="Statement lines">
 +                                    <field name="sequence"/>                                
                                      <field name="date"/>
                                      <field name="ref"/>
                                      <field name="name"/>
                                      <field name="amount"/>
                                      <field context="{'partner_id':partner_id,'amount':amount,'account_id':account_id,'currency_id': parent.currency,'journal_id':parent.journal_id, 'date':date}" name="reconcile_id"/>
                                      <field name="ref"/>
 +                                    <field name="sequence"/>                                    
                                      <separator colspan="4" string="Notes"/>
                                      <field colspan="4" name="note" nolabel="1"/>
                                  </form>
                      <group col="7" colspan="4">
                          <field name="state" select="2"/>
                          <field name="balance_end"/>
 -                        <button name="button_dummy" states="draft" string="Compute"/>
 -                        <button name="button_confirm" states="draft" string="Confirm" type="object"/>
 -                        <button name="button_cancel" states="confirm" string="Cancel" type="object"/>
 +                        <button name="button_dummy" states="draft" string="Compute" icon="gtk-execute"/>
 +                        <button name="button_confirm" states="draft" string="Confirm" type="object"  icon="gtk-apply"/>
 +                        <button name="button_cancel" states="confirm" string="Cancel" type="object" icon="gtk-cancel"/>
                      </group>
                  </form>
              </field>
              <field name="view_type">form</field>
              <field name="view_mode">tree,form</field>
              <field name="domain">[('state','=','draft')]</field>
 +            <field name="filter" eval="True"/>            
          </record>
 -        <menuitem action="action_bank_statement_draft_tree" id="menu_bank_statement_draft_tree" parent="account.menu_bank_statement_tree"/>
 +        <menuitem action="action_bank_statement_draft_tree" id="menu_bank_statement_draft_tree" parent="account.menu_bank_statement_tree" groups="base.group_extended_menu"/>
  
          <record id="action_bank_statement_tree2" model="ir.actions.act_window">
              <field name="name">New Statement</field>
                          <field name="total_entry"/>
                          <field name="total_new"/>
                          <field name="total_balance"/>
 -                        <button colspan="2" name="dummy" string="Compute"/>
 +                        <button colspan="2" name="dummy" string="Compute" icon="gtk-execute"/>
                      </group>
                  </form>
              </field>
                      <separator colspan="4" string="State"/>
                      <field name="state" select="1"/>
                      <group col="2" colspan="2">
 -                        <button name="button_validate" states="draft" string="Validate" type="object"/>
 -                        <button name="button_cancel" states="posted" string="Cancel" type="object"/>
 +                        <button name="button_validate" states="draft" string="Validate" type="object" icon="gtk-execute"/>
 +                        <button name="button_cancel" states="posted" string="Cancel" type="object" icon="gtk-cancel"/>
                      </group>
                  </form>
              </field>
                      <group col="7" colspan="4">
                          <field name="state" select="2"/>
                          <field name="balance_end"/>
 -                        <button name="button_dummy" states="draft" string="Compute"/>
 -                        <button name="button_confirm" states="draft" string="Confirm" type="object" icon="gtk-execute"/>
 +                        <button name="button_dummy" states="draft" string="Compute" icon="gtk-execute"/>
 +                        <button name="button_confirm" states="draft" string="Confirm" type="object" icon="gtk-apply"/>
                          <button name="button_cancel" states="confirm" string="Cancel" type="object" icon="gtk-cancel"/>
                      </group>
                  </form>
                      <separator string="Legend" colspan="4"/>
                      <field name="legend" colspan="4" nolabel="1"/>
                      <group col="1" colspan="4">
 -                        <button name="%(wizard_account_use_model)d" string="Create entries" type="action" />
 +                        <button name="%(wizard_account_use_model)d" string="Create entries" type="action" icon="gtk-execute"/>
                      </group>
                  </form>
              </field>
                      <field name="period_type"/>
                      <field name="model_id"/>
                      <group col="2" colspan="2">
 -                        <button name="compute" states="draft,running" string="Compute" type="object"/>
 -                        <button name="remove_line" states="running" string="Remove Lines" type="object"/>
 +                        <button name="compute" states="draft,running" string="Compute" type="object" icon="gtk-execute"/>
 +                        <button name="remove_line" states="running" string="Remove Lines" type="object" icon="gtk-remove"/>
                      </group>
                      <separator colspan="4" string="Subscription Lines"/>
                      <field colspan="4" name="lines_id" widget="one2many_list"/>
                      <separator colspan="4" string="State"/>
                      <field name="state" select="2"/>
                      <group col="1" colspan="2">
 -                        <button name="state_draft" states="done" string="Set to Draft" type="object"/>
 +                        <button name="state_draft" states="done" string="Set to Draft" type="object"  icon="gtk-convert" />
                      </group>
                  </form>
              </field>
              <field name="view_type">form</field>
              <field name="view_mode">tree,form</field>
              <field name="domain">[('state','=','running')]</field>
 +            <field name="filter" eval="True"/>            
          </record>
 -        <menuitem action="action_subscription_form_running" id="menu_action_subscription_form_running" parent="menu_action_subscription_form"/>
 +        <menuitem action="action_subscription_form_running" id="menu_action_subscription_form_running" parent="menu_action_subscription_form" groups="base.group_extended_menu"/>
  
          <record id="action_subscription_form_new" model="ir.actions.act_window">
              <field name="name">New Subscription</field>
              <field name="arch" type="xml">
                  <form string="Fiscal Position Template">
                      <field name="name" select="1"/>
+                     <field name="chart_template_id"/>
                      <newline/>
                      <field name="tax_ids" colspan="4">
                          <tree string="Taxes Mapping" editable="bottom">
@@@ -72,9 -72,9 +72,9 @@@ class report_creator(osv.osv)
      #
      # Should Call self.fields_get !
      #
 -    def fields_view_get(self, cr, user, view_id=None, view_type='form', context=None, toolbar=False):
 +    def fields_view_get(self, cr, user, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
          if (not context) or 'report_id' not in context:
 -            return super(report_creator, self).fields_view_get(cr, user, view_id, view_type, context, toolbar)
 +            return super(report_creator, self).fields_view_get(cr, user, view_id, view_type, context, toolbar=toolbar, submenu=submenu)
          report = self.browse(cr, user, context['report_id'])
          models = {}
          for model in report.model_ids:
                  else:
                      temp_list.append('''<field name="%(name)s" select="1"/>''' % {'name':'field'+str(i)})
                      i+=1
-             arch += '''<%(view_type)s string="%(string)s" date_start="%(date_start)s" date_delay="%(date_delay)s" color="%(color)s">''' %set_dict
+             arch += '''<%(view_type)s string="%(string)s" date_start="%(date_start)s" ''' %set_dict
+             if set_dict.get('date_delay',False):
+                 arch +=''' date_delay="%(date_delay)s"  '''%set_dict
+             
+             if set_dict.get('date_stop',False):
+                 arch +=''' date_stop="%(date_stop)s" '''%set_dict      
+             
+             if set_dict.get('color',False):
+                 arch +=''' color="%(color)s"'''%set_dict
+             arch += '''>'''
              arch += ''.join(temp_list)
          else:
              arch += '<%s string="%s">\n' % (view_type, report.name)
@@@ -375,7 -384,7 +384,7 @@@ class report_creator_field(osv.osv)
          'report_id': fields.many2one('base_report_creator.report','Report', on_delete='cascade'),
          'group_method': fields.selection([('group','Grouped'),('sum','Sum'),('min','Minimum'),('count','Count'),('max','Maximum'),('avg','Average')], 'Grouping Method', required=True),
          'graph_mode': fields.selection([('','/'),('x','X Axis'),('y','Y Axis')], 'Graph Mode'),
-         'calendar_mode': fields.selection([('','/'),('date_start','Starting Date'),('date_end','Ending Date'),('date_delay','Delay'),('color','Uniq Colors')], 'Calendar Mode'),
+         'calendar_mode': fields.selection([('','/'),('date_start','Starting Date'),('date_end','Ending Date'),('date_delay','Delay'),('date_stop','End Date'),('color','Unique Colors')], 'Calendar Mode'),
      }
      _defaults = {
          'group_method': lambda *args: 'group',
@@@ -62,8 -62,8 +62,8 @@@ class rpc_proxy(object)
          return self.rpc.execute(self.dbname, self.user_id, self.passwd, *request)
  
  class email_parser(object):
-     def __init__(self, uid, password, section, email, email_default, dbname):
-         self.rpc = rpc_proxy(uid, password, dbname=dbname)
+     def __init__(self, uid, password, section, email, email_default, dbname, host):
+         self.rpc = rpc_proxy(uid, password, host=host, dbname=dbname)
          try:
              self.section_id = int(section)
          except:
              'email_cc': self._decode_header(msg['Cc'] or ''),
              'canal_id': self.canal_id,
              'user_id': False,
 -            'history_line': [(0, 0, {'name': 'Create','section_id': self.section_id,'canal_id': self.canal_id,'description': message['body'], 'email': msg['From'] })],
 +            'description': message['body'],
 +            'history_line': [(0, 0, {'description': message['body'], 'email': msg['From'] })],
          }
          try:
              data.update(self.partner_get(self._decode_header(msg['From'])))
              if part.get_content_maintype() == 'multipart':
                  continue
  
 -            if part.get_content_maintype()=='text' and part.get_content_subtype() == 'plain':
 +            if part.get_content_maintype()=='text' and part.get_content_subtype() in ('plain','html'):
                  buf = part.get_payload(decode=True)
                  if buf:
                      txt = buf.decode(part.get_charsets()[0] or 'ascii', 'replace')
          body['body'] = body_data
  
          data = {
 -            'history_line': [(0, 0, {'name': 'Close','section_id': self.section_id,'canal_id': self.canal_id,'description': body['body'], 'email': msg['From']})],
 +            'description': body['body'],
 +            'history_line': [(0, 0, {'description': body['body'], 'email': msg['From']})],
          }
          act = 'case_close'
          if 'state' in actions:
          self.rpc('crm.case', act, [id])
          body2 = '\n'.join(map(lambda l: '> '+l, (body or '').split('\n')))
          data = {
 -                'history_line': [(0, 0, {'name': 'Open','section_id': self.section_id,'canal_id': self.canal_id,'description': body, 'email': msg['From'][:84]})],
 +            'description':body,
 +            'history_line': [(0, 0, {'description': body, 'email': msg['From'][:84]})],
          }
          self.rpc('crm.case', 'write', [id], data)
          return id
@@@ -318,9 -315,11 +318,11 @@@ if __name__ == '__main__'
      parser.add_option("-s", "--section", dest="section", help="ID or code of the case section", default="support")
      parser.add_option("-m", "--default", dest="default", help="Default eMail in case of any trouble.", default=None)
      parser.add_option("-d", "--dbname", dest="dbname", help="Database name (default: terp)", default='terp')
+     parser.add_option("--host", dest="host", help="Hostname of the Open ERP Server", default="localhost")
  
      (options, args) = parser.parse_args()
-     parser = email_parser(options.userid, options.password, options.section, options.email, options.default, dbname=options.dbname)
+     parser = email_parser(options.userid, options.password, options.section, options.email, options.default, dbname=options.dbname, host=options.host)
  
      msg_txt = email.message_from_file(sys.stdin)
  
@@@ -16,6 -16,7 +16,7 @@@
                      <field name="product_uom_id" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)"/>
                      <field name="amount" sum="Total cost"/>
                      <field name="general_account_id"/>
+                     <field name="journal_id"/>
                  </tree>
              </field>
          </record>
@@@ -59,9 -60,8 +60,9 @@@
              <field name="view_type">form</field>
              <field name="view_mode">tree,form</field>
              <field name="domain">[('user_id','=',uid),('date', '=',time.strftime('%Y-%m-%d'))]</field>
 +            <field name="filter" eval="True"/>            
          </record>
 -        <menuitem action="act_hr_timesheet_line_evry1_today_form_my" id="menu_act_hr_timesheet_line_evry1_today_form_my" parent="menu_act_hr_timesheet_line_me_all_form"/>
 +        <menuitem action="act_hr_timesheet_line_evry1_today_form_my" id="menu_act_hr_timesheet_line_evry1_today_form_my" parent="menu_act_hr_timesheet_line_me_all_form" groups="base.group_extended_menu"/>
   
          
          <record id="act_hr_timesheet_line_evry1_all_form" model="ir.actions.act_window">
              <field name="res_model">hr.analytic.timesheet</field>
              <field name="view_type">form</field>
              <field name="view_mode">tree,form</field>
 -            <field name="domain">[('date', '=',    time.strftime('%Y-%m-%d'))]</field>
 +            <field name="domain">[('date', '=', time.strftime('%Y-%m-%d'))]</field>
 +            <field name="filter" eval="True"/>            
          </record>
 -        <menuitem action="act_hr_timesheet_line_evry1_today_form" id="menu_act_hr_timesheet_line_evry1_today_form" parent="menu_act_hr_timesheet_line_evry1_all_form"/>
 +        <menuitem action="act_hr_timesheet_line_evry1_today_form" id="menu_act_hr_timesheet_line_evry1_today_form" parent="menu_act_hr_timesheet_line_evry1_all_form" groups="base.group_extended_menu"/>
         
          <record id="hr_timesheet_employee_extd_form" model="ir.ui.view">
              <field name="name">hr.timesheet.employee.extd_form</field>
              <field name="type">form</field>
              <field name="arch" type="xml">
                  <form string="Project">
 -                    <group colspan="4" col="6">
 +                    <group colspan="4" col="2">
                          <field name="name" select="1"/>
                          <field name="parent_id"/>
 +                    </group>
 +                    <group colspan="4" col="4">
 +                        <field name="date_start"/>                        
                          <field name="manager" select="1"/>
 -                        <field name="date_start"/>
                          <field name="date_end"/>
                          <field name="progress_rate" widget="progressbar"/>
                      </group>
                                  <button name="set_open" string="Reactivate Project" type="object" states="pending,cancelled,done" icon="gtk-ok"/>
                                  <button name="set_pending" string="Pending" type="object" states="open" icon="gtk-media-pause"/>
                                  <button name="set_cancel" string="Cancel" type="object" states="open,pending" icon="gtk-cancel"/>
 -                                <button name="set_done" string="Done" type="object" states="open,pending" icon="gtk-ok"/>
 +                                <button name="set_done" string="Done" type="object" states="open,pending" icon="gtk-jump-to"/>
                                  <button name="reset_project" string="Reset as Project" type="object" states="template" icon="gtk-convert"/>
                                  <button name="duplicate_template"
                                      string="New Project Based on Template"
                                      type="object"
 -                                    states="template" icon="gtk-execute"/>
 +                                    states="template" icon="gtk-new"/>
                              </group>
                          </page>
                          <page groups="base.group_extended" string="Partner Info">
                                  <label string="Date Stop: %%(date_stop)s"/>
                              </group>
                          </page>
 +                        <page string="Tasks">
 +                           <field name="tasks" nolabel="1" attrs="{'readonly':[('state','in',['cancelled','done'])]}">
 +                               <tree colors="grey:state in ('cancel','done');blue:remaining_hours&lt;0;red:bool(date_deadline) &amp; (date_deadline&lt;current_date) &amp; (state in ('draft','open'))" string="Tasks">
 +                                   <field name="sequence"/>
 +                                   <field name="name"/>
 +                                   <field name="user_id"/>
 +                                   <field name="date_deadline"/>
 +                                   <field name="planned_hours" sum="Planned" widget="float_time"/>
 +                                   <field name="delay_hours" sum="Delay" widget="float_time"/>
 +                                   <field name="progress" widget="progressbar"/>
 +                                   <field name="priority"/>
 +                                   <field name="state"/>
 +                                   <field name="remaining_hours" invisible="1"/>
 +                                   </tree>
 +                           </field>
 +                        </page>                        
                          <page string="Notes">
                              <field colspan="4" name="notes" nolabel="1"/>
                          </page>
                  </tree>
              </field>
          </record>
 +
 +       <record id="view_project_project_filter" model="ir.ui.view">
 +            <field name="name">project.project.select</field>
 +            <field name="model">project.project</field>
 +            <field name="type">search</field>
 +            <field name="arch" type="xml">
 +                <search string="Search Project">
 +                   <group col='6' colspan='4'>
 +                       <field name="state" select="1">
 +                           <filter icon="terp-project" domain="[('state','=','open')]" help="Open Projects"/>
 +                           <filter icon="terp-project" domain="[('state','=','pending')]" help="Pending Projects"/>
 +                       </field>
 +                       <separator orientation="vertical"/>
 +                       <field name="name" select='1'/>
 +                   </group>
 +               </search>
 +            </field>
 +        </record>
 +        
          <record id="view_project" model="ir.ui.view">
              <field name="name">project.project.tree</field>
              <field name="model">project.project</field>
              <field name="view_type">form</field>
              <field name="domain">[]</field>
              <field name="view_id" ref="view_project"/>
 +            <field name="search_view_id" ref="view_project_project_filter"/>            
          </record>
          <menuitem action="open_view_project_all" id="menu_open_view_project_all" parent="menu_all_project"/>
  
              <field name="view_type">form</field>
              <field name="domain">[('state','=','open')]</field>
              <field name="view_id" ref="view_project"/>
 +            <field name="filter" eval="True"/>
 +            <field name="search_view_id" ref="view_project_project_filter"/>            
          </record>
 -        <menuitem action="open_view_project_open" id="menu_open_view_project_open" parent="menu_open_view_project_all"/>
 +        <menuitem action="open_view_project_open" id="menu_open_view_project_open" groups="base.group_extended_menu" parent="menu_open_view_project_all"/>
  
          <record id="open_view_template_project" model="ir.actions.act_window">
 -            <field name="name">Template of Projects</field>
 +            <field name="name">Templates of Projects</field>
              <field name="res_model">project.project</field>
              <field name="view_type">form</field>
              <field name="domain">[('state','=','template')]</field>
              <field name="view_type">form</field>
              <field name="domain">[('manager', '=', uid)]</field>
              <field name="view_id" ref="view_my_project"/>
 +            <field name="filter" eval="True"/>
 +            <field name="search_view_id" ref="view_project_project_filter"/>            
          </record>
 -        <menuitem action="open_view_my_project" id="menu_open_view_my_project" parent="menu_all_project"
 +        <menuitem action="open_view_my_project" id="menu_open_view_my_project" parent="menu_all_project" groups="base.group_extended_menu"
              sequence="1"/>
  
          <record id="open_view_my_project_my_run" model="ir.actions.act_window">
              <field name="view_type">form</field>
              <field name="domain">[('manager', '=', uid),('state','=','open')]</field>
              <field name="view_id" ref="view_my_project"/>
 +            <field name="filter" eval="True"/>
 +            <field name="search_view_id" ref="view_project_project_filter"/>            
          </record>
          <menuitem
              action="open_view_my_project_my_run"
              id="menu_open_view_my_project_my_run"
 +            groups="base.group_extended_menu"
              parent="menu_open_view_my_project"/>
  
          <record id="open_view_my_project_open" model="ir.actions.act_window">
                      <field name="remaining_hours" widget="float_time"/>
                      <group col="4" colspan="4">
                          <button icon="gtk-cancel" special="cancel" string="Cancel"/>
 -                        <button icon="gtk-ok" name="compute_hours" string="Update" type="object"/>
 +                        <button icon="gtk-refresh" name="compute_hours" string="Update" type="object"/>
                      </group>
                  </form>
              </field>
              <field eval="2" name="priority"/>
              <field name="arch" type="xml">
                  <form string="Task edition">
 -                    <group colspan="6" col="6">
 -                        <field name="name" select="1" attrs="{'readonly':[('state','=','done')]}" />
 -                        <field name="project_id" required="1" select="1" attrs="{'readonly':[('state','=','done')]}" />
 +                    <group colspan="4" col="2">
 +                        <field name="name" select="1"/>
 +                        <field name="project_id" required="1" select="1"/>
 +                    </group>
 +                    <group colspan="4" col="4">
 +                        <field name="date_deadline" select="2"/>
 +                        <field name="user_id" select="1"/>
                          <field name="total_hours" widget="float_time"/>
 -                        <field name="user_id" select="1" attrs="{'readonly':[('state','=','done')]}" />
 -                        <field name="date_deadline" select="2" attrs="{'readonly':[('state','=','done')]}" />
                          <field name="progress" widget="progressbar"/>
                      </group>
                      <notebook colspan="4">
                                  attrs="{'readonly':[('state','!=','draft')]}" 
                                  on_change="onchange_planned(planned_hours,effective_hours)"/>
                                  <field name="remaining_hours" select="2" widget="float_time" attrs="{'readonly':[('state','!=','draft')]}" colspan="2"/>
 -                                <button name="%(action_config_compute_remaining)d" string="Review" type="action" colspan="1" target="new" states="open,pending"/>
 +                                <button name="%(action_config_compute_remaining)d" string="Review" type="action" colspan="1" target="new" states="open,pending" icon="gtk-edit"/>
                              </group>
                              <group col="2" colspan="2">
                              <field name="delay_hours" widget="float_time"/>
                              <field name="effective_hours" widget="float_time"/>
                              </group>
  
 -                            <field colspan="4" name="description" nolabel="1" select="2"  attrs="{'readonly':[('state','=','done')]}" />
 +                            <field colspan="4" name="description" nolabel="1" select="2"  attrs="{'readonly':[('state','=','done')]}" widget="text_wiki"/>
                              <field colspan="4" name="work_ids" nolabel="1" attrs="{'readonly':[('state','in',['draft','done'])]}">
                                  <tree string="Task Work" editable="top">
                                      <field name="date" />
                                  <button name="do_open" states="pending,draft" string="Start Task" type="object" icon="gtk-execute"/>
                                  <button name="do_reopen" states="done,cancelled" string="Reactivate" type="object" icon="gtk-convert"/>
                                  <button name="do_pending" states="open" string="Pending" type="object" icon="gtk-media-pause"/>
 -                                <button groups="base.group_extended" name="%(wizard_delegate_task)d" states="pending,open" string="Delegate" type="action" icon="gtk-execute"/>
 +                                <button groups="base.group_extended" name="%(wizard_delegate_task)d" states="pending,open" string="Delegate" type="action" icon="gtk-sort-descending"/>
                                  <button name="%(wizard_close_task)d" states="pending,open" string="Done" type="action" icon="gtk-jump-to"/>
                                  <button name="do_cancel" states="draft,open,pending" string="Cancel" type="object" icon="gtk-cancel"/>
  
                              </group>
                          </page>
 -                        <page groups="base.group_extended" string="Delegations">
 -                            <field colspan="4" name="history" nolabel="1"/>
 -                            <field colspan="4" height="150" name="child_ids" nolabel="1" attrs="{'readonly':[('state','!=','draft')]}" context="{'project_id': project_id}">
 +                        <page groups="base.group_extended" string="Delegations"> 
 +                            <field name="parent_id"/>                           
 +                            <newline/>
 +                            <field colspan="4" height="150" name="child_ids" nolabel="1" attrs="{'readonly':[('state','!=','draft')]}">
                                  <tree string="Delegated tasks">
                                      <field name="name"/>
                                      <field name="user_id"/>
                                      <field name="remaining_hours" widget="float_time"/>
                                      <field name="date_deadline"/>
                                  </tree>
 -                            </field>
 -                            <field colspan="4" name="parent_id"/>
 +                            </field>                            
 +                            <field colspan="4" name="history" nolabel="1"/>
                          </page>
 -                        <page groups="base.group_extended" string="Extra Info" attrs="{'readonly':[('state','in',['draft','done'])]}">
 -                            <separator string="Planning" colspan="2"/>
 -                            <separator string="Dates" colspan="2"/>
 -                            <field name="priority"/>
 -                            <field name="date_start" select="2"/>
 -                            <field name="sequence"/>
 -                            <field name="date_close" select="2"/>
 -
 +                        <page groups="base.group_extended" string="Extra Info" attrs="{'readonly':[('state','=','done')]}">
 +                            <group colspan="2" col="2">
 +                                <separator string="Planning" colspan="2"/>
 +                                <field name="priority"/>
 +                                <field name="sequence"/>
 +                            </group>
 +                            <group colspan="2" col="2">
 +                                <separator string="Dates" colspan="2"/>
 +                                <field name="date_start" select="2"/>
 +                                <field name="date_close" select="2"/>
 +                            </group>
 +                            <separator string="Miscelleanous" colspan="4"/>
                              <field name="type"/>
                              <field name="active" select="2"/>
                              <field name="partner_id" select="2"/>
              <field eval="2" name="priority"/>
              <field name="arch" type="xml">
                  <tree colors="grey:state in ('cancel','done');blue:remaining_hours&lt;0;red:bool(date_deadline) &amp; (date_deadline&lt;current_date) &amp; (state in ('draft','open'))" string="Tasks">
 -                    <field name="sequence"/>
 +                    <field name="sequence" string="Seq."/>
                      <field name="name"/>
 -                    <field name="project_id"/>
 +                    <field name="project_id" icon="gtk-indent"/>
                      <field name="user_id"/>
                      <field name="date_deadline"/>
 -                    <field name="planned_hours" sum="Planned" widget="float_time"/>
 -                    <field name="delay_hours" sum="Delay" widget="float_time"/>
 +                    <field name="remaining_hours" widget="float_time"/>
 +                    <field name="progress" widget="progressbar"/>
 +                    <field name="priority"/>
 +                    <field name="state"/>
 +                    <button name="do_draft" states="open" string="Draft" type="object" icon="gtk-indent" help="For changing to draft state"/>
 +                    <button name="do_open" states="pending,draft" string="Start Task" type="object" icon="gtk-execute" help="For changing to open state"/>
 +                    <button name="do_reopen" states="done,cancelled" string="Reactivate" type="object" icon="gtk-convert" help="For reopening the tasks"/>
 +                    <button name="do_pending" states="open" string="Pending" type="object" icon="gtk-media-pause" help="For changing to pending state"/>
 +                    <button groups="base.group_extended" name="%(wizard_delegate_task)d" states="pending,open,draft" string="Delegate" type="action" icon="gtk-execute" help="For changing to delegate state"/>
 +                    <button name="%(wizard_close_task)d" states="pending,open" string="Done" type="action" icon="gtk-jump-to" help="For changing to done state"/>
 +                    <button name="do_cancel" states="draft,open,pending" string="Cancel" type="object" icon="gtk-cancel" help="For cancelling the task"/>
 +                </tree>
 +            </field>
 +        </record>
 +        
 +        <record id="view_task_tree3" model="ir.ui.view">
 +            <field name="name">project.task.tree</field>
 +            <field name="model">project.task</field>
 +            <field name="type">tree</field>
 +            <field eval="2" name="priority"/>
 +            <field name="arch" type="xml">
 +                <tree editable="top" colors="grey:state in ('cancel','done');blue:remaining_hours&lt;0;red:bool(date_deadline) &amp; (date_deadline&lt;current_date) &amp; (state in ('draft','open'))" string="Tasks">
 +                    <field name="sequence" string="Seq."/>
 +                    <field name="name"/>
 +                    <field name="project_id" icon="gtk-indent"/>
 +                    <field name="user_id"/>
 +                    <field name="date_deadline"/>
 +                    <field name="remaining_hours" widget="float_time"/>
                      <field name="progress" widget="progressbar"/>
                      <field name="priority"/>
                      <field name="state"/>
 -                    <field name="remaining_hours" invisible="1"/>
 +                    <button name="do_draft" states="open" string="Draft" type="object" icon="gtk-indent" help="For changing to draft state"/>
 +                    <button name="do_open" states="pending,draft" string="Start Task" type="object" icon="gtk-execute" help="For changing to open state"/>
 +                    <button name="do_reopen" states="done,cancelled" string="Reactivate" type="object" icon="gtk-convert" help="For reopening the tasks"/>
 +                    <button name="do_pending" states="open" string="Pending" type="object" icon="gtk-media-pause" help="For changing to pending state"/>
 +                    <button groups="base.group_extended" name="%(wizard_delegate_task)d" states="pending,open,draft" string="Delegate" type="action" icon="gtk-execute" help="For changing to delegate state"/>
 +                    <button name="%(wizard_close_task)d" states="pending,open" string="Done" type="action" icon="gtk-jump-to" help="For changing to done state"/>
 +                    <button name="do_cancel" states="draft,open,pending" string="Cancel" type="object" icon="gtk-cancel" help="For cancelling the task"/>
                  </tree>
              </field>
          </record>
              <field eval="2" name="priority"/>
              <field name="arch" type="xml">
                  <tree colors="grey:state in ('cancel','done');blue:remaining_hours&lt;0;red:bool(date_deadline) &amp; (date_deadline&lt;current_date) &amp; (state in ('draft','open'))" string="Tasks">
 -                    <field name="sequence"/>
 +                    <field name="sequence" string="Seq."/>
                      <field name="name"/>
                      <field name="project_id"/>
                      <field name="delegated_user_id"/>
                      <field name="date_deadline"/>
 -                    <field name="planned_hours" sum="Planned" widget="float_time"/>
 -                    <field name="delay_hours" sum="Delay" widget="float_time"/>
 +                    <field name="remaining_hours" widget="float_time"/>
                      <field name="progress" widget="progressbar"/>
                      <field name="priority"/>
                      <field name="state"/>
 -                    <field name="remaining_hours" invisible="1"/>
                  </tree>
              </field>
          </record>
              </field>
          </record>
  
 +        <record id="view_task_search_form" model="ir.ui.view">
 +            <field name="name">project.task.search.form</field>
 +            <field name="model">project.task</field>
 +            <field name="type">search</field>
 +            <field name="arch" type="xml">
 +               <search string="Task Edition">
 +                    <group col="4" colspan="1">
 +                       <filter domain="[('user_id','=',uid)]" help="Tasks Related to Current User" icon="gtk-execute" string="My Task"/>
 +                        <filter domain="[('user_id', 'child_of', [uid])]" help="Tasks Related to Department" icon="gtk-execute" separator="1" string="My Departments Task"/>
 +                        <filter domain="[('user_id','=',uid),('parent_id','!=',False)]" help="Delegated Tasks Related to Current User" icon="gtk-execute" separator="1" string="My Delegated Task"/>
 +                    </group>
 +                    <group col="6" colspan="4">
 +                        <field name="state" select="1">
 +                             <filter domain="[('state','=','open')]" help="Open Tasks" icon="terp-project"/>
 +                             <filter domain="[('state','=','pending')]" help="Pending Tasks" icon="terp-project"/>
 +                        </field>
 +                        <field name="name" select="1"/>
 +                        <field name="user_id" select="1" widget="selection"/>
 +                        <field name="project_id" select="1" widget="selection"/>
 +                    </group>
 +                </search>
 +            </field>
 +        </record>
 +    
          <record id="action_view_task" model="ir.actions.act_window">
              <field name="name">All Tasks</field>
              <field name="res_model">project.task</field>
              <field name="view_type">form</field>
              <field name="view_mode">tree,form,calendar,gantt,graph</field>
              <field eval="False" name="view_id"/>
 +            <field eval="True" name="filter"/>
 +            <field name="search_view_id" ref="view_task_search_form"/>            
          </record>
          <menuitem action="action_view_task" id="menu_action_view_task" parent="project.menu_tasks"/>
  
              <field name="view_type">form</field>
              <field name="view_mode">tree,form,calendar,gantt,graph</field>
              <field name="domain">[('user_id', '=', uid)]</field>
 +            <field name="view_id" ref="view_task_tree3"/>
 +            <field eval="True" name="filter"/>
 +            <field name="search_view_id" ref="view_task_search_form"/>
          </record>
 -        <menuitem action="action_view_task4" id="menu_action_view_task4" parent="project.menu_tasks"/>
 +        <menuitem action="action_view_task4" id="menu_action_view_task4" parent="project.menu_tasks" groups="base.group_extended_menu" />
 +
 +        <record id="action_view_task_department" model="ir.actions.act_window">
 +            <field name="name">My Department Tasks</field>
 +            <field name="res_model">project.task</field>
 +            <field name="view_type">form</field>
 +            <field name="view_mode">tree,form,calendar,gantt,graph</field>
 +            <field eval="True" name="filter"/>
 +            <field name="domain">[('user_id', 'child_of', [uid])]</field>
 +            <field eval="True" name="filter"/>
 +            <field name="search_view_id" ref="view_task_search_form"/>
 +        </record>
 +        <menuitem action="action_view_task_department" id="menu_action_view_department_tasks" parent="project.menu_tasks" groups="base.group_extended_menu"/>
  
          <record id="action_view_task5_pending" model="ir.actions.act_window">
              <field name="name">My Pending Tasks</field>
              <field name="view_type">form</field>
              <field name="view_mode">tree,form,calendar,graph</field>
              <field name="domain">[('user_id', '=', uid),('state','=','pending')]</field>
 +            <field eval="True" name="filter"/>            
              <field name="view_id" ref="my_pending_task"/>
 +            <field name="search_view_id" ref="view_task_search_form"/>            
          </record>
 -        <menuitem action="action_view_task5_pending" id="menu_tasks_yours_pending" parent="menu_action_view_task4"/>
 +        <menuitem action="action_view_task5_pending" id="menu_tasks_yours_pending" groups="base.group_extended_menu" parent="menu_action_view_task4"/>
  
          <record id="action_view_task5_prog" model="ir.actions.act_window">
              <field name="name">My Current Tasks</field>
              <field name="view_type">form</field>
              <field name="view_mode">tree,form,calendar,graph</field>
              <field name="domain">[('user_id', '=', uid),('state','in',('open','draft'))]</field>
 +            <field eval="True" name="filter"/>
 +            <field name="view_id" ref="view_task_tree3"/>
 +            <field name="filter" eval="True"/>
 +            <field name="search_view_id" ref="view_task_search_form"/>                        
          </record>
 -        <menuitem action="action_view_task5_prog" id="menu_tasks_yours_prog" parent="menu_action_view_task4"
 -            sequence="1"/>
 +        <menuitem action="action_view_task5_prog" id="menu_tasks_yours_prog" parent="menu_action_view_task4" sequence="1"/>
  
          <record id="action_view_task5_prog_prog" model="ir.actions.act_window">
              <field name="name">My Tasks in Progress</field>
              <field name="view_type">form</field>
              <field name="view_mode">tree,form,calendar,graph</field>
              <field name="domain">[('user_id', '=', uid),('state','=','open')]</field>
 +            <field name="view_id" ref="view_task_tree3"/>
 +            <field name="filter" eval="True"/>
 +            <field name="search_view_id" ref="view_task_search_form"/>            
          </record>
 -        <menuitem action="action_view_task5_prog_prog" id="menu_tasks_yours_prog_prog" parent="menu_tasks_yours_prog"/>
 +        <menuitem action="action_view_task5_prog_prog" id="menu_tasks_yours_prog_prog" groups="base.group_extended_menu" parent="menu_tasks_yours_prog"/>
  
          <record id="action_view_task5_prog_draft" model="ir.actions.act_window">
              <field name="name">My Draft Tasks</field>
              <field name="view_type">form</field>
              <field name="view_mode">tree,form,calendar,graph</field>
              <field name="domain">[('user_id', '=', uid),('state','=','draft')]</field>
 +            <field name="view_id" ref="view_task_tree3"/>
 +            <field name="filter" eval="True"/>
 +            <field name="search_view_id" ref="view_task_search_form"/>
 +        </record>
 +        <menuitem action="action_view_task5_prog_draft" id="menu_tasks_yours_prog_draft" groups="base.group_extended_menu" parent="menu_tasks_yours_prog"/>
 +
 +        <record id="action_view_task5_departments_pending" model="ir.actions.act_window">
 +            <field name="name">My Department's Pending Tasks</field>
 +            <field name="res_model">project.task</field>
 +            <field name="view_type">form</field>
 +            <field name="view_mode">tree,form,calendar,graph</field>
 +            <field name="domain">[('user_id', 'child_of', [uid]),('state','=','pending')]</field>
 +            <field name="view_id" ref="my_pending_task"/>
 +           <field name="filter" eval="True"/>
 +           <field name="search_view_id" ref="view_task_search_form"/>
          </record>
 -        <menuitem action="action_view_task5_prog_draft" id="menu_tasks_yours_prog_draft" parent="menu_tasks_yours_prog"/>
 +        <menuitem action="action_view_task5_departments_pending" id="menu_tasks_yours_departments_pending" groups="base.group_extended_menu" parent="menu_action_view_department_tasks"/>
  
 +        <record id="action_view_task5_departments_prog" model="ir.actions.act_window">
 +            <field name="name">My Department's Current Tasks</field>
 +            <field name="res_model">project.task</field>
 +            <field name="view_type">form</field>
 +            <field name="view_mode">tree,form,calendar,graph</field>
 +            <field eval="True" name="filter"/>
 +            <field name="domain">[('user_id', 'child_of', [uid]),('state','in',('open','draft'))]</field>
 +            <field name="filter" eval="True"/>
 +            <field name="search_view_id" ref="view_task_search_form"/>
 +        </record>
 +        <menuitem action="action_view_task5_departments_prog" id="menu_tasks_yours_departments_prog" parent="menu_action_view_department_tasks" sequence="1"/>
 +
 +        <record id="action_view_task5_departments_prog_prog" model="ir.actions.act_window">
 +            <field name="name">My Department's Tasks in Progress</field>
 +            <field name="res_model">project.task</field>
 +            <field name="view_type">form</field>
 +            <field name="view_mode">tree,form,calendar,graph</field>
 +            <field name="domain">[('user_id', 'child_of', [uid]),('state','=','open')]</field>
 +            <field name="filter" eval="True"/>
 +            <field name="search_view_id" ref="view_task_search_form"/>
 +        </record>
 +        <menuitem action="action_view_task5_departments_prog_prog" id="menu_tasks_yours_departments_prog_prog" groups="base.group_extended_menu" parent="menu_tasks_yours_departments_prog"/>
 +
 +        <record id="action_view_task5_departments_prog_draft" model="ir.actions.act_window">
 +            <field name="name">My Department's Draft Tasks</field>
 +            <field name="res_model">project.task</field>
 +            <field name="view_type">form</field>
 +            <field name="view_mode">tree,form,calendar,graph</field>
 +            <field name="domain">[('user_id', 'child_of', [uid]),('state','=','draft')]</field>
 +            <field name="filter" eval="True"/>
 +            <field name="search_view_id" ref="view_task_search_form"/>
 +        </record>
 +        <menuitem action="action_view_task5_departments_prog_draft" id="menu_tasks_yours_departments_prog_draft" groups="base.group_extended_menu" parent="menu_tasks_yours_departments_prog"/>
  
          <record id="action_view_task_new" model="ir.actions.act_window">
              <field name="name">New Task</field>
              <field name="res_model">project.task</field>
              <field name="view_type">form</field>
              <field name="view_mode">tree,form,calendar,graph,gantt</field>
-             <field name="domain">[('state', '=', 'progress')]</field>
 +            <field name="filter" eval="True"/>
 +            <field name="search_view_id" ref="view_task_search_form"/>            
+             <field name="domain">[('state','=','open')]</field>
          </record>
 -        <menuitem action="action_view_task6_prog" id="menu_action_view_task6_prog" parent="project.menu_action_view_task"/>
 +        <menuitem action="action_view_task6_prog" id="menu_action_view_task6_prog" parent="project.menu_action_view_task" groups="base.group_extended_menu"/>
  
          <record id="action_view_task7" model="ir.actions.act_window">
              <field name="name">Unassigned Tasks</field>
              <field name="view_type">form</field>
              <field name="view_mode">tree,form,calendar,graph,gantt</field>
              <field name="domain">[('user_id', '=', False)]</field>
 +            <field name="filter" eval="True"/>
 +            <field name="search_view_id" ref="view_task_search_form"/>                        
          </record>
 -        <menuitem action="action_view_task7" id="menu_action_view_task7" parent="project.menu_action_view_task"/>
 +        <menuitem action="action_view_task7" id="menu_action_view_task7" parent="project.menu_action_view_task" groups="base.group_extended_menu"/>
  
          <!-- Opening task when double clicking on project -->
          <record id="dblc_proj" model="ir.actions.act_window">
              <field name="arch" type="xml">
                  <page string="Configuration" position="inside">
                      <separator string="Project Management" colspan="4"/>
 -                    <field name="project_time_mode"/>
 +                    <field name="project_time_mode_id"/>
                      <newline/>
                  </page>
              </field>
@@@ -149,11 -149,11 +149,11 @@@ class purchase_order(osv.osv)
          'origin': fields.char('Origin', size=64,
              help="Reference of the document that generated this purchase order request."
          ),
 -        'partner_ref': fields.char('Partner Ref.', size=64),
 -        'date_order':fields.date('Date', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)]}, help="Date on which this document has been created."),
 +        'partner_ref': fields.char('Supplier Ref.', size=64),
 +        'date_order':fields.date('Date Ordered', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)]}, help="Date on which this document has been created."),
          'date_approve':fields.date('Date Approved', readonly=1),
          'partner_id':fields.many2one('res.partner', 'Supplier', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)]}, change_default=True),
 -        'partner_address_id':fields.many2one('res.partner.address', 'Address', required=True, states={'posted':[('readonly',True)]}),
 +        'partner_address_id':fields.many2one('res.partner.address', 'Supplier Address', required=True, states={'posted':[('readonly',True)]}),
  
          'dest_address_id':fields.many2one('res.partner.address', 'Destination Address', states={'posted':[('readonly',True)]},
              help="Put an address if you want to deliver directly from the supplier to the customer." \
  
          'pricelist_id':fields.many2one('product.pricelist', 'Pricelist', required=True, states={'confirmed':[('readonly',True)], 'approved':[('readonly',True)]}, help="The pricelist sets the currency used for this purchase order. It also computes the supplier price for the selected products/quantities."),
  
 -        'state': fields.selection([('draft', 'Request for Quotation'), ('wait', 'Waiting'), ('confirmed', 'Confirmed'), ('approved', 'Approved'),('except_picking', 'Shipping Exception'), ('except_invoice', 'Invoice Exception'), ('done', 'Done'), ('cancel', 'Cancelled')], 'Order Status', readonly=True, help="The state of the purchase order or the quotation request. A quotation is a purchase order in a 'Draft' state. Then the order has to be confirmed by the user, the state switch to 'Confirmed'. Then the supplier must confirm the order to change the state to 'Approved'. When the purchase order is paid and received, the state becomes 'Done'. If a cancel action occurs in the invoice or in the reception of goods, the state becomes in exception.", select=True),
 +        'state': fields.selection([('draft', 'Request for Quotation'), ('wait', 'Waiting'), ('confirmed', 'Waiting Supplier Ack'), ('approved', 'Approved'),('except_picking', 'Shipping Exception'), ('except_invoice', 'Invoice Exception'), ('done', 'Done'), ('cancel', 'Cancelled')], 'Order Status', readonly=True, help="The state of the purchase order or the quotation request. A quotation is a purchase order in a 'Draft' state. Then the order has to be confirmed by the user, the state switch to 'Confirmed'. Then the supplier must confirm the order to change the state to 'Approved'. When the purchase order is paid and received, the state becomes 'Done'. If a cancel action occurs in the invoice or in the reception of goods, the state becomes in exception.", select=True),
          'order_line': fields.one2many('purchase.order.line', 'order_id', 'Order Lines', states={'approved':[('readonly',True)]}),
          'validator' : fields.many2one('res.users', 'Validated by', readonly=True),
          'notes': fields.text('Notes'),
                  'journal_id': len(journal_ids) and journal_ids[0] or False,
                  'origin': o.name,
                  'invoice_line': il,
-                 'fiscal_position': o.partner_id.property_account_position.id
+                 'fiscal_position': o.partner_id.property_account_position.id,
+                 'payment_term':o.partner_id.property_payment_term and o.partner_id.property_payment_term.id or False,
              }
              inv_id = self.pool.get('account.invoice').create(cr, uid, inv, {'type':'in_invoice'})
              self.pool.get('account.invoice').button_compute(cr, uid, [inv_id], {'type':'in_invoice'}, set_total=True)
@@@ -495,7 -496,7 +496,7 @@@ class purchase_order_line(osv.osv)
                      qty = temp_qty
  
          dt = (DateTime.now() + DateTime.RelativeDateTime(days=seller_delay or 0.0)).strftime('%Y-%m-%d %H:%M:%S')
 -        prod_name = prod.partner_ref
 +        prod_name = self.pool.get('product.product').name_get(cr, uid, [prod.id])[0][1]
  
  
          res = {'value': {'price_unit': price, 'name':prod_name, 'taxes_id':map(lambda x: x.id, prod.supplier_taxes_id),
                                  <field name="amount_untaxed" sum="Untaxed amount"/>
                                  <field name="amount_tax"/>
                                  <field name="amount_total" sum="Total amount"/>
 -                                <button name="button_dummy" states="draft" string="Compute" type="object"/>
 +                                <button name="button_dummy" states="draft" string="Compute" type="object" icon="gtk-execute"/>
                              </group>
                              <group col="11" colspan="4">
                                  <field name="state" readonly="1"/>
 -                                <button name="purchase_confirm" states="draft" string="Confirm Purchase Order" icon="gtk-execute"/>
 +                                <button name="purchase_confirm" states="draft" string="Confirm Purchase Order" icon="gtk-apply"/>
                                  <button name="purchase_appbuyer" states="wait_auth" string="Approve Purchase" icon="gtk-ok"/>
                                  <button name="purchase_approve" states="confirmed" string="Approved by Supplier" icon="gtk-ok"/>
                                  <button name="purchase_cancel" states="draft,confirmed,wait_auth" string="Cancel Purchase Order" icon="gtk-cancel"/>
              </field>
          </record>
  
 +       <record id="view_purchase_order_filter" model="ir.ui.view">
 +            <field name="name">purchase.order.list.select</field>
 +            <field name="model">purchase.order</field>
 +            <field name="type">search</field>
 +            <field name="arch" type="xml">
 +                <search string="Search Purchase Order">
 +                 <group col='6' colspan='4'>
 +                   <filter icon="gtk-execute" string="Exception Purchases" domain="[('state','in',('except_picking','except_invoice'))]" separator="1" help="Purchases Related to Exception"/>
 +                   <field name="state">
 +                       <filter icon="terp-purchase" domain="[('state','=','wait')]" help="Waiting Purchases"/>
 +                       <filter icon="terp-purchase" domain="[('state','=','confirmed')]" help="Confirmed Purchases"/>
 +                       <filter icon="terp-purchase" domain="[('state','=','approved')]" help="Approved Purchases"/>
 +                    </field>
 +                   <separator orientation="vertical"/>
 +                   <field name="name" select="1"/>
 +                </group>
 +              </search>
 +            </field>
 +        </record>
 +       
          <record id="purchase_form_action" model="ir.actions.act_window">
              <field name="name">Purchase Orders</field>
              <field name="type">ir.actions.act_window</field>
              <field name="res_model">purchase.order</field>
              <field name="view_mode">tree,form,calendar,graph</field>
 +            <field name="search_view_id" ref="view_purchase_order_filter"/>            
          </record>
          <menuitem action="purchase_form_action" id="menu_purchase_form_action" parent="purchase.menu_purchase_root"/>
  
              <field name="domain">[('state','=','draft')]</field>
              <field name="view_type">form</field>
              <field name="view_mode">tree,form,calendar,graph</field>
 +            <field name="filter" eval="True"/>
 +            <field name="search_view_id" ref="view_purchase_order_filter"/>            
          </record>
 -        <menuitem action="purchase_form_action2" id="menu_purchase_order_draft" parent="purchase.menu_purchase_form_action"/>
 +        <menuitem action="purchase_form_action2" id="menu_purchase_order_draft" parent="purchase.menu_purchase_form_action" groups="base.group_extended_menu"/>
  
          <record id="purchase_form_action3" model="ir.actions.act_window">
              <field name="name">Purchase Order Waiting Approval</field>
              <field name="view_type">form</field>
              <field name="view_mode">tree,form,calendar,graph</field>
              <field name="domain">[('state','=','confirmed')]</field>
 +            <field name="filter" eval="True"/>
 +            <field name="search_view_id" ref="view_purchase_order_filter"/>            
          </record>
 -        <menuitem action="purchase_form_action3" id="menu_purchase_form_action3" parent="purchase.menu_purchase_form_action"/>
 +        <menuitem action="purchase_form_action3" id="menu_purchase_form_action3" parent="purchase.menu_purchase_form_action" groups="base.group_extended_menu"/>
  
          <record id="purchase_form_action4" model="ir.actions.act_window">
              <field name="name">Purchase Orders in Progress</field>
              <field name="view_type">form</field>
              <field name="view_mode">tree,form,calendar,graph</field>
              <field name="domain">[('state','=','approved')]</field>
 +            <field name="filter" eval="True"/>
 +            <field name="search_view_id" ref="view_purchase_order_filter"/>            
          </record>
 -        <menuitem action="purchase_form_action4" id="menu_purchase_form_action4" parent="purchase.menu_purchase_form_action"/>
 +        <menuitem action="purchase_form_action4" id="menu_purchase_form_action4" parent="purchase.menu_purchase_form_action" groups="base.group_extended_menu"/>
  
          <record id="purchase_form_action_new" model="ir.actions.act_window">
              <field name="name">New Purchase Order</field>
              <field name="type">tree</field>
              <field name="arch" type="xml">
                  <tree colors="red:date_planned&lt;=current_date" string="Purchase Order Lines">
-                     <field name="order_id"/>
-                     <field name="date_order"/>
+                     <field name="name"/>
                      <field name="date_planned"/>
-                     <field name="partner_id"/>
                      <field name="product_id"/>
                      <field name="product_qty"/>
                      <field name="product_uom"/>
@@@ -37,6 -37,7 +37,7 @@@ merge_form = """<?xml version="1.0"?
          * their status is draft
          * they belong to the same partner
          * are going to the same location
+         * have the same pricelist
        - lines will only be merged if:
          * they are exactly the same except for the quantity and unit</label>
  </form>
@@@ -54,11 -55,7 +55,11 @@@ ack_fields = {
  
  
  def _merge_orders(self, cr, uid, data, context):
 -    order_obj = pooler.get_pool(cr.dbname).get('purchase.order')
 +    pool = pooler.get_pool(cr.dbname)
 +    order_obj = pool.get('purchase.order')
 +    mod_obj = pool.get('ir.model.data')
 +    result = mod_obj._get_id(cr, uid, 'purchase', 'view_purchase_order_filter')
 +    id = mod_obj.read(cr, uid, result, ['res_id'])
  
      def make_key(br, fields):
          list_key = []
@@@ -80,7 -77,7 +81,7 @@@
      # compute what the new orders should contain
      new_orders = {}
      for porder in [order for order in order_obj.browse(cr, uid, data['ids']) if order.state == 'draft']:
-         order_key = make_key(porder, ('partner_id', 'location_id'))
+         order_key = make_key(porder, ('partner_id', 'location_id', 'pricelist_id'))
  
          new_order = new_orders.setdefault(order_key, ({}, []))
          new_order[1].append(porder.id)
          'view_mode': 'tree,form',
          'res_model': 'purchase.order',
          'view_id': False,
 -        'type': 'ir.actions.act_window'
 +        'type': 'ir.actions.act_window',
 +        'search_view_id': id['res_id']
      }
  
  
diff --combined addons/sale/sale.py
@@@ -379,8 -379,7 +379,8 @@@ class sale_order(osv.osv)
              'currency_id': order.pricelist_id.currency_id.id,
              'comment': order.note,
              'payment_term': pay_term,
 -            'fiscal_position': order.partner_id.property_account_position.id
 +            'fiscal_position': order.partner_id.property_account_position.id,
 +            'date_invoice' : context.get('date_invoice',False)
          }
          inv_obj = self.pool.get('account.invoice')
          inv.update(self._inv_get(cr, uid, order))
          inv_obj.button_compute(cr, uid, [inv_id])
          return inv_id
  
 -    def action_invoice_create(self, cr, uid, ids, grouped=False, states=['confirmed', 'done', 'exception']):
 +    def action_invoice_create(self, cr, uid, ids, grouped=False, states=['confirmed', 'done', 'exception'], date_inv = False):
          res = False
          invoices = {}
          invoice_ids = []
  
 -        for o in self.browse(cr, uid, ids):
 +        context = {}
 +        # If date was specified, use it as date invoiced, usefull when invoices are generated this month and put the 
 +        # last day of the last month as invoice date
 +        if date_inv:
 +            context['date_inv'] = date_inv
 +        for o in self.browse(cr,uid,ids):
              lines = []
              for line in o.order_line:
                  if (line.state in states) and not line.invoiced:
          picking_obj = self.pool.get('stock.picking')
          for val in invoices.values():
              if grouped:
 -                res = self._make_invoice(cr, uid, val[0][0], reduce(lambda x, y: x + y, [l for o, l in val], []))
 -                for o, l in val:
 -                    self.write(cr, uid, [o.id], {'state': 'progress'})
 -                    if o.order_policy == 'picking':
 -                        picking_obj.write(cr, uid, map(lambda x: x.id, o.picking_ids), {'invoice_state': 'invoiced'})
 +                res = self._make_invoice(cr, uid, val[0][0], reduce(lambda x,y: x + y, [l for o,l in val], []), context=context)
 +                for o,l in val:
 +                    self.write(cr, uid, [o.id], {'state' : 'progress'})
 +                    if o.order_policy=='picking':
 +                        picking_obj.write(cr,uid,map(lambda x:x.id,o.picking_ids),{'invoice_state':'invoiced'})
                      cr.execute('insert into sale_order_invoice_rel (order_id,invoice_id) values (%s,%s)', (o.id, res))
              else:
                  for order, il in val:
 -                    res = self._make_invoice(cr, uid, order, il)
 +                    res = self._make_invoice(cr, uid, order, il, context=context)
                      invoice_ids.append(res)
                      self.write(cr, uid, [order.id], {'state': 'progress'})
                      if order.order_policy == 'picking':
@@@ -742,7 -736,7 +742,7 @@@ class sale_order_line(osv.osv)
          'order_id': fields.many2one('sale.order', 'Order Ref', required=True, ondelete='cascade', select=True),
          'name': fields.char('Description', size=256, required=True, select=True),
          'sequence': fields.integer('Sequence'),
-         'delay': fields.float('Delivery Delay', required=True),
+         'delay': fields.float('Delivery Lead Time', required=True, help="Number of days between the order confirmation the the shipping of the products to the customer"),
          'product_id': fields.many2one('product.product', 'Product', domain=[('sale_ok', '=', True)], change_default=True),
          'invoice_lines': fields.many2many('account.invoice.line', 'sale_order_line_invoice_rel', 'order_line_id', 'invoice_id', 'Invoice Lines', readonly=True),
          'invoiced': fields.boolean('Invoiced', readonly=True),
              partner = partner_obj.browse(cr, uid, partner_id)
              result['tax_id'] = self.pool.get('account.fiscal.position').map_tax(cr, uid, fpos, product_obj.taxes_id)
          if not flag:
 -            result['name'] = product_obj.partner_ref
 +            result['name'] = self.pool.get('product.product').name_get(cr, uid, [product_obj.id])[0][1]
          domain = {}
          if (not uom) and (not uos):
              result['product_uom'] = product_obj.uom_id.id
                      </page>
                      </notebook>
                      <field name="state" select="1"/>
 -                    <group col="2" colspan="2">
 -                        <button name="action_done" states="draft" string="Confirm Inventory" type="object"/>
 -                        <button name="action_cancel" states="done" string="Cancel Inventory" type="object"/>
 +                    <group col="4" colspan="2">
 +                        <button name="action_done" states="draft" string="Confirm Inventory" type="object" icon="gtk-apply"/>
 +                        <button name="action_cancel" states="cancel" string="Set to Draft" type="object" icon="gtk-cancel"/>
 +                        <button name="action_cancel_inventary" states="draft" string="Cancel Inventory" type="object" icon="gtk-cancel"/>
                      </group>
                  </form>
              </field>
@@@ -79,7 -78,6 +79,7 @@@
              <field name="res_model">stock.inventory</field>
              <field name="view_type">form</field>
              <field name="view_id" ref="view_inventory_tree"/>
 +            <field name="context">{'full':'1'}</field>            
          </record>
          <menuitem action="action_inventory_form" id="menu_action_inventory_form" parent="menu_stock_root"/>
  
              <field name="res_model">stock.inventory</field>
              <field name="view_type">form</field>
              <field name="domain">[('state','=','draft')]</field>
 +            <field name="filter" eval="True"/>            
          </record>
 -        <menuitem action="action_inventory_form_draft" id="menu_action_inventory_form_draft" parent="menu_action_inventory_form"/>
 +        <menuitem action="action_inventory_form_draft" id="menu_action_inventory_form_draft" parent="menu_action_inventory_form" groups="base.group_extended_menu"/>
          <record id="action_inventory_form_new" model="ir.actions.act_window">
              <field name="name">New Periodical Inventory</field>
              <field name="type">ir.actions.act_window</field>
              <field name="res_model">stock.inventory</field>
              <field name="view_type">form</field>
              <field name="view_mode">form,tree</field>
 +            <field name="domain">[('state','=','draft')]</field>            
          </record>
          <menuitem action="action_inventory_form_new" id="menu_action_inventory_form_new" parent="menu_action_inventory_form"/>
  
              <field name="res_model">stock.production.lot</field>
              <field name="view_type">form</field>
              <field name="view_id" ref="view_production_lot_tree"/>
 +            <field name="context">{'full':'1'}</field>            
          </record>
          <menuitem action="action_production_lot_form" id="menu_action_production_lot_form" parent="menu_traceability"/>
  
 -
          #
          # Lot composition (history)
          #
              <field name="type">ir.actions.act_window</field>
              <field name="view_type">form</field>
              <field name="view_id" ref="view_location_tree2"/>
 +            <field name="context">{'full':'1'}</field>            
          </record>
          <menuitem action="action_location_form" id="menu_action_location_form" parent="menu_stock_configuration"/>
  
                      <field name="picking_id" invisible="True"/>
                      <field domain="[('picking_id','&lt;&gt;',picking_id),('state','in',['confirmed','assigned']),('picking_id.address_id','=',address_id)]" name="move_ids" nolabel="1"/><newline/>
                      <group colspan="4">
 -                        <button special="cancel" string="Cancel"/>
 -                        <button name="action_move" string="Add" type="object"/>
 +                        <button special="cancel" string="Cancel" icon="gtk-cancel"/>
 +                        <button name="action_move" string="Add" type="object" icon="gtk-add"/>
                      </group>
                  </form>
                 </field>
                                      <field groups="base.group_extended" name="tracking_id" select="2"/>
                                      <newline/>
                                      <label/>
 -                                    <button name="%(track_line)d" string="Split in production lots" type="action"/>
 +                                    <button name="%(track_line)d" string="Split in production lots" type="action" icon="gtk-justify-fill"/>
                                      <separator colspan="4" string="Move State"/>
                                      <field name="state" select="1"/>
                                      <group>
 -                                        <button name="force_assign" states="confirmed" string="Force Availability" type="object"/>
 -                                        <button name="cancel_assign" states="assigned" string="Cancel Availability" type="object"/>
 -                                        <button name="action_cancel" states="assigned" string="Cancel" type="object"/>
 +                                        <button name="force_assign" states="confirmed" string="Force Availability" type="object" icon="gtk-jump-to"/>
 +                                        <button name="cancel_assign" states="assigned" string="Cancel Availability" type="object" icon="gtk-no"/>
 +                                        <button name="action_cancel" states="assigned" string="Cancel" type="object" icon="gtk-cancel"/>
                                      </group>
                                  </form>
                              </field>
                              <group col="7" colspan="4">
                                  <label colspan="6"/>
 -                                <button name="%(move_split)d" string="Split move lines in two" type="action"/>
 +                                <button name="%(move_split)d" string="Split move lines in two" type="action" icon="gtk-justify-fill"/>
                              </group>
                              <group col="10" colspan="4">
                                  <field name="state" readonly="1"/>
 -                                <button name="draft_force_assign" states="draft" string="Confirm (Do Not Process Now)" type="object"/>
 -                                <button name="draft_validate" states="draft" string="Process Now" type="object"/>
 -                                <button name="action_assign" states="confirmed" string="Check Availability" type="object"/>
 -                                <button name="force_assign" states="confirmed" string="Force Availability" type="object"/>
 -                                <button name="%(partial_picking)d" states="assigned" string="Validate" type="action"/>
 -                                <button name="button_cancel" states="assigned,confirmed,draft" string="Cancel"/>
 +                                <button name="draft_force_assign" states="draft" string="Confirm (Do Not Process Now)" type="object" icon="gtk-apply"/>
 +                                <button name="draft_validate" states="draft" string="Process Now" type="object" icon="gtk-media-play"/>
 +                                <button name="action_assign" states="confirmed" string="Check Availability" type="object" icon="gtk-find"/>
 +                                <button name="force_assign" states="confirmed" string="Force Availability" type="object" icon="gtk-jump-to"/>
 +                                <button name="%(partial_picking)d" states="assigned" string="Validate" type="action" icon="gtk-apply"/>
 +                                <button name="button_cancel" states="assigned,confirmed,draft" string="Cancel" icon="gtk-cancel"/>
                              </group>
                          </page>
                          <page string="Notes">
                  <form string="Packing list">
                      <group col="6" colspan="4">
                          <field name="address_id" select="1"/>
+                         <field name="type"/>
                          <field name="name" select="1" readonly="1"/>
                          <field name="min_date" select="1"/>
                          <field name="backorder_id" select="2" readonly="1"/>
                                      <separator colspan="4" string="Move State"/>
                                      <field name="state" select="1"/>
                                      <group>
 -                                        <button name="force_assign" states="confirmed" string="Force Availability" type="object"/>
 -                                        <button name="cancel_assign" states="assigned" string="Cancel Availability" type="object"/>
 -                                        <button name="action_cancel" states="assigned" string="Cancel" type="object"/>
 +                                        <button name="force_assign" states="confirmed" string="Force Availability" type="object" icon="gtk-jump-to"/>
 +                                        <button name="cancel_assign" states="assigned" string="Cancel Availability" type="object" icon="gtk-find"/>
 +                                        <button name="action_cancel" states="assigned" string="Cancel" type="object" icon="gtk-cancel"/>
                                      </group>
                                  </form>
                              </field>
                              <group col="7" colspan="4">
                                  <label colspan="6"/>
 -                                <button name="%(move_split)d" string="Split in Two" type="action" states="assigned,confirmed,draft,auto" />
 +                                <button name="%(move_split)d" string="Split in Two" type="action" states="assigned,confirmed,draft,auto" icon="gtk-justify-fill"/>
                              </group>
                              <group col="10" colspan="4">
                                  <field name="state" readonly="1"/>
 -                                <button name="draft_force_assign" states="draft" string="Process Later" type="object"/>
 -                                <button name="draft_validate" states="draft" string="Process Now" type="object"/>
 -                                <button name="action_assign" states="confirmed" string="Check Availability" type="object"/>
 -                                <button name="force_assign" states="confirmed" string="Force Availability" type="object"/>
 -                                <button name="%(partial_picking)d" states="assigned" string="Products Sent" type="action"/>
 -                                <button name="button_cancel" states="assigned,confirmed,draft" string="Cancel"/>
 +                                <button name="draft_force_assign" states="draft" string="Process Later" type="object" icon="gtk-ok"/>
 +                                <button name="draft_validate" states="draft" string="Process Now" type="object" icon="gtk-media-play"/>
 +                                <button name="action_assign" states="confirmed" string="Check Availability" type="object" icon="gtk-find"/>
 +                                <button name="force_assign" states="confirmed" string="Force Availability" type="object" icon="gtk-jump-to"/>
 +                                <button name="%(partial_picking)d" states="assigned" string="Products Sent" type="action" icon="gtk-go-forward"/>
 +                                <button name="button_cancel" states="assigned,confirmed,draft" string="Cancel" icon="gtk-cancel"/>
                              </group>
                          </page>
                          <page string="Notes">
              </field>
          </record>
  
 +       <record id="view_stock_delivery_filter" model="ir.ui.view">
 +            <field name="name">stock.view_stock_delivery_filter.list.select</field>
 +            <field name="model">stock.picking</field>
 +            <field name="type">search</field>
 +            <field name="arch" type="xml">
 +                <search string="Search Stock Delivery">
 +                    <group col='6' colspan='4'>
 +                        <field name="state">
 +                           <filter icon="terp-stock" domain="[('state','=','auto')]" help="Waiting Orders"/>
 +                           <filter icon="terp-stock" domain="[('state','=','confirmed')]" help="Confirmed Orders"/>
 +                           <filter icon="terp-stock" domain="[('state','=','assigned')]" help="Assigned Orders"/>
 +                        </field>
 +                        <separator orientation="vertical"/>
 +                        <field name="name" select="1"/>
 +                   </group>
 +              </search>
 +            </field>
 +        </record>
  
          <record id="action_picking_tree_delivery" model="ir.actions.act_window">
              <field name="name">Delivery Orders</field>
              <field name="view_mode">tree,form,calendar</field>
              <field name="domain">[('type','=','delivery')]</field>
              <field name="context">{'contact_display': 'partner'}</field>
 +            <field name="search_view_id" ref="view_stock_delivery_filter"/>            
          </record>
          <record id="action_picking_tree_delivery_view1" model="ir.actions.act_window.view">
              <field eval="1" name="sequence"/>
              <field name="view_mode">tree,form,calendar</field>
              <field name="domain">[('state','=','assigned'),('type','=','delivery')]</field>
              <field name="context">{'contact_display': 'partner'}</field>
 +            <field name="filter" eval="True"/>
 +            <field name="search_view_id" ref="view_stock_delivery_filter"/>            
          </record>
          <record id="action_picking_tree_delivery_view1_toproc" model="ir.actions.act_window.view">
              <field eval="1" name="sequence"/>
              <field name="view_mode">calendar</field>
              <field name="act_window_id" ref="action_picking_tree2_delivery"/>
          </record>
 -        <menuitem action="action_picking_tree2_delivery" id="menu_picking_waiting_delivery" parent="menu_action_picking_tree_delivery"/>
 +        <menuitem action="action_picking_tree2_delivery" id="menu_picking_waiting_delivery" parent="menu_action_picking_tree_delivery" groups="base.group_extended_menu" />
  
          <record id="action_picking_tree3_delivery" model="ir.actions.act_window">
              <field name="name">Future Delivery Orders</field>
              <field name="view_mode">tree,form,calendar</field>
              <field name="domain">[('state','=','confirmed'),('type','=','delivery')]</field>
              <field name="context">{'contact_display': 'partner'}</field>
 +            <field name="filter" eval="True"/>
 +            <field name="search_view_id" ref="view_stock_delivery_filter"/>            
          </record>
          <record id="action_picking_tree_delivery_view1_waiting" model="ir.actions.act_window.view">
              <field eval="1" name="sequence"/>
              <field name="view_mode">calendar</field>
              <field name="act_window_id" ref="action_picking_tree3_delivery"/>
          </record>
 -        <menuitem action="action_picking_tree3_delivery" id="menu_action_picking_tree3_delivery" parent="menu_action_picking_tree_delivery"/>
 +        <menuitem action="action_picking_tree3_delivery" id="menu_action_picking_tree3_delivery" parent="menu_action_picking_tree_delivery" groups="base.group_extended_menu" />
  
         <record id="action_picking_calendar_delivery" model="ir.actions.act_window">
              <field name="name">Calendar of Deliveries</field>
              <field name="domain">[('state','=','assigned'),('type','=','delivery')]</field>
              <field name="context">{'contact_display': 'partner'}</field>
          </record>
 -        <menuitem action="action_picking_calendar_delivery" id="menu_picking_calendar_delivery" parent="menu_action_picking_tree_delivery"/>
 +        <menuitem action="action_picking_calendar_delivery" id="menu_picking_calendar_delivery" parent="menu_action_picking_tree_delivery" groups="base.group_extended_menu" />
  
          #
          # Sending Products
              <field name="model">stock.picking</field>
              <field name="type">tree</field>
              <field name="arch" type="xml">
 -                <tree color="red:state=='cancel'" string="Packing list">
 +                <tree colors="red:state=='cancel';grey:state=='confirmed';blue:state=='done'" string="Packing list">            
                      <field name="name"/>
                      <field name="origin"/>
                      <field name="address_id"/>
                  <form string="Packing list">
                      <group col="6" colspan="4">
                          <field name="address_id" select="2"/>
+                         <field name="type"/>
                          <field name="min_date" select="2"/>
                          <field name="name" select="1" readonly="1"/>
                          <field name="invoice_state"/>
                                          on_change="onchange_lot_id(prodlot_id,product_qty, location_id)"/>
                                      <field groups="base.group_extended" name="tracking_id" select="1"/>
                                      <label/>
 -                                    <button name="%(track_line)d" string="Split in production lots" type="action"/>
 +                                    <button name="%(track_line)d" string="Split in production lots" type="action" icon="gtk-justify-fill"/>
                                      <separator colspan="4" string="Move State"/>
                                      <field name="state" select="1"/>
                                      <group>
 -                                        <button name="force_assign" states="confirmed" string="Force Availability" type="object"/>
 -                                        <button name="cancel_assign" states="assigned" string="Cancel Availability" type="object"/>
 -                                        <button name="action_cancel" states="assigned" string="Cancel" type="object"/>
 +                                        <button name="force_assign" states="confirmed" string="Force Availability" type="object"  icon="gtk-jump-to"/>
 +                                        <button name="cancel_assign" states="assigned" string="Cancel Availability" type="object"  icon="gtk-no"/>
 +                                        <button name="action_cancel" states="assigned" string="Cancel" type="object"  icon="gtk-cancel"/>
                                      </group>
                                  </form>
                              </field>
                              <group col="7" colspan="4">
                                  <label colspan="6"/>
 -                                <button name="%(move_split)d" string="Split in Two" type="action"/>
 +                                <button name="%(move_split)d" string="Split in Two" type="action" icon="gtk-justify-fill"/>
                              </group>
                              <group col="10" colspan="4">
                                  <field name="state" readonly="1"/>
 -                                <button name="draft_force_assign" states="draft" string="Process Later" type="object"/>
 -                                <button name="draft_validate" states="draft" string="Process Now" type="object"/>
 -                                <button name="action_assign" states="confirmed" string="Check Availability" type="object" groups="base.group_extended"/>
 -                                <button name="force_assign" states="confirmed" string="Force Availability" type="object"/>
 -                                <button name="%(partial_picking)d" states="assigned" string="Packing Done" type="action"/>
 -                                <button name="button_cancel" states="assigned,confirmed,draft" string="Cancel"/>
 +                                <button name="draft_force_assign" states="draft" string="Process Later" type="object" icon="gtk-ok"/>
 +                                <button name="draft_validate" states="draft" string="Process Now" type="object" icon="gtk-yes"/>
 +                                <button name="action_assign" states="confirmed" string="Check Availability" type="object" groups="base.group_extended" icon="gtk-apply"/>
 +                                <button name="force_assign" states="confirmed" string="Force Availability" type="object" icon="gtk-jump-to"/>
 +                                <button name="%(partial_picking)d" states="assigned" string="Packing Done" type="action" icon="gtk-execute"/>
 +                                <button name="button_cancel" states="assigned,confirmed,draft" string="Cancel" icon="gtk-cancel"/>
                              </group>
                          </page>
                          <page string="Notes">
              <field name="view_mode">tree,form,calendar</field>
              <field name="domain">[('type','=','out')]</field>
              <field name="context">{'contact_display': 'partner'}</field>
 +            <field name="filter" eval="True"/>
 +            <field name="search_view_id" ref="view_stock_delivery_filter"/>            
          </record>
          <record id="action_picking_tree_out_view1_waiting" model="ir.actions.act_window.view">
              <field eval="1" name="sequence"/>
              <field name="view_mode">tree,form,calendar</field>
              <field name="domain">[('state','=','assigned'),('type','=','out')]</field>
              <field name="context">{'contact_display': 'partner'}</field>
 +            <field name="filter" eval="True"/>
 +            <field name="search_view_id" ref="view_stock_delivery_filter"/>            
          </record>
          <record id="action_picking_tree2_out_view1" model="ir.actions.act_window.view">
              <field eval="1" name="sequence"/>
              <field name="view_mode">calendar</field>
              <field name="act_window_id" ref="action_picking_tree2"/>
          </record>
 -        <menuitem action="action_picking_tree2" id="menu_picking_waiting" parent="menu_action_picking_tree"/>
 +        <menuitem action="action_picking_tree2" id="menu_picking_waiting" parent="menu_action_picking_tree" groups="base.group_extended_menu"/>
  
          <record id="action_picking_tree3" model="ir.actions.act_window">
              <field name="name">Confirmed Packing Waiting Availability</field>
              <field name="view_mode">tree,form,calendar</field>
              <field name="domain">[('state','=','confirmed'),('type','=','out')]</field>
              <field name="context">{'contact_display': 'partner'}</field>
 +            <field name="filter" eval="True"/>
 +            <field name="search_view_id" ref="view_stock_delivery_filter"/>            
          </record>
          <record id="action_picking_tree3_out_view1" model="ir.actions.act_window.view">
              <field eval="1" name="sequence"/>
              <field name="view_mode">calendar</field>
              <field name="act_window_id" ref="action_picking_tree3"/>
          </record>
 -        <menuitem action="action_picking_tree3" id="menu_action_picking_tree3" parent="menu_action_picking_tree"/>
 +        <menuitem action="action_picking_tree3" id="menu_action_picking_tree3" parent="menu_action_picking_tree" groups="base.group_extended_menu"/>
  
          #
          # Reception of Products
                  <form string="Input Packing List">
                      <group colspan="4" col="6">
                          <field name="address_id" on_change="onchange_partner_in(address_id)" select="2" context="{'contact_display':'partner'}"/>
+                         <field name="type"/>
                          <field name="origin" select="2"/>
                          <field name="invoice_state" select="2" string="Invoice Control"/>
                          <field name="name" readonly="1" select="1"/>
                                      <field groups="base.group_extended" name="tracking_id" select="1"/>
                                      <newline/>
                                      <label/>
 -                                    <button groups="base.group_extended" name="%(track_line)d" string="Split in production lots" type="action"/>
 +                                    <button groups="base.group_extended" name="%(track_line)d" string="Split in production lots" type="action" icon="gtk-justify-fill"/>
                                      <separator colspan="4" string="Move State"/>
                                      <field name="state" select="1"/>
                                      <group>
 -                                        <button name="force_assign" states="confirmed" string="Force Availability" type="object"/>
 -                                        <button name="cancel_assign" states="assigned" string="Cancel Availability" type="object"/>
 -                                        <button name="action_cancel" states="assigned" string="Cancel" type="object"/>
 +                                        <button name="force_assign" states="confirmed" string="Force Availability" type="object" icon=""/>
 +                                        <button name="cancel_assign" states="assigned" string="Cancel Availability" type="object" icon=""/>
 +                                        <button name="action_cancel" states="assigned" string="Cancel" type="object" icon=""/>
                                      </group>
                                  </form>
                              </field>
                              <group col="7" colspan="4">
                                  <label colspan="5"/>
 -                                <button name="%(act_stock_picking_move_wizard)d" string="Unreceived Products" type="action" states="draft,confirmed,assigned"/>
 +                                <button name="%(act_stock_picking_move_wizard)d" string="Unreceived Products" type="action" states="draft,confirmed,assigned" icon="gtk-redo"/>
                              </group>
                              <group col="10" colspan="4">
                                  <field name="state" readonly="1"/>
 -                                <button name="draft_force_assign" states="draft" string="Process Later" type="object"/>
 -                                <button name="draft_validate" states="draft" string="Process Now" type="object"/>
 -                                <button name="action_assign" states="confirmed" string="Check Availability" type="object"/>
 -                                <button name="force_assign" states="confirmed" string="Force Availability" type="object" groups="base.group_extended"/>
 -                                <button name="%(partial_picking)d" states="assigned" string="Products Received" type="action"/>
 -                                <button name="button_cancel" states="assigned,confirmed,draft" string="Cancel"/>
 +                                <button name="draft_force_assign" states="draft" string="Process Later" type="object" icon="gtk-ok"/>
 +                                <button name="draft_validate" states="draft" string="Process Now" type="object" icon="gtk-media-play"/>
 +                                <button name="action_assign" states="confirmed" string="Check Availability" type="object" icon="gtk-find"/>
 +                                <button name="force_assign" states="confirmed" string="Force Availability" type="object" groups="base.group_extended" icon="gtk-jump-to"/>
 +                                <button name="%(partial_picking)d" states="assigned" string="Products Received" type="action" icon="gtk-ok"/>
 +                                <button name="button_cancel" states="assigned,confirmed,draft" string="Cancel" icon="gtk-cancel"/>
                              </group>
                          </page>
                          <page string="Notes">
              </field>
          </record>
  
 -
 -
          <record id="action_picking_tree4" model="ir.actions.act_window">
              <field name="name">Incoming Products</field>
              <field name="res_model">stock.picking</field>
              <field name="view_mode">tree,form,calendar</field>
              <field name="domain">[('type','=','in')]</field>
              <field name="context">{'contact_display': 'partner'}</field>
 +            <field name="filter" eval="True"/>
 +            <field name="search_view_id" ref="view_stock_delivery_filter"/>            
          </record>
          <record id="action_invoice_tree5_view1" model="ir.actions.act_window.view">
              <field eval="1" name="sequence"/>
              <field name="view_mode">tree,form,calendar</field>
              <field name="domain">[('state','=','assigned'),('type','=','in')]</field>
              <field name="context">{'contact_display': 'partner'}</field>
 +            <field name="filter" eval="True"/>
 +            <field name="search_view_id" ref="view_stock_delivery_filter"/>            
          </record>
          <record id="action_invoice_tree6_view1" model="ir.actions.act_window.view">
              <field eval="1" name="sequence"/>
              <field name="view_mode">calendar</field>
              <field name="act_window_id" ref="action_picking_tree5"/>
          </record>
 -        <menuitem action="action_picking_tree5" id="menu_action_picking_tree5" parent="menu_action_picking_tree4"/>
 +        <menuitem action="action_picking_tree5" id="menu_action_picking_tree5" parent="menu_action_picking_tree4" groups="base.group_extended_menu"/>
  
          <record id="action_picking_form" model="ir.actions.act_window">
              <field name="name">New Reception Packing</field>
              <field name="view_mode">tree,form,calendar</field>
              <field name="domain">[('type','=','internal')]</field>
              <field name="context">{'contact_display': 'partner'}</field>
 +            <field name="filter" eval="True"/>
 +            <field name="search_view_id" ref="view_stock_delivery_filter"/>            
          </record>
          <menuitem action="action_picking_tree6" id="menu_action_picking_tree6" parent="menu_stock_root" sequence="18"/>
  
              <field name="view_mode">tree,form,calendar</field>
              <field name="domain">[('state','=','assigned'),('type','=','internal')]</field>
              <field name="context">{'contact_display': 'partner'}</field>
 +            <field name="filter" eval="True"/>
 +            <field name="search_view_id" ref="view_stock_delivery_filter"/>            
          </record>
 -        <menuitem action="action_picking_tree7" id="menu_action_picking_tree7" parent="menu_action_picking_tree6"/>
 +        <menuitem action="action_picking_tree7" id="menu_action_picking_tree7" parent="menu_action_picking_tree6" groups="base.group_extended_menu"/>
  
          <record id="action_picking_tree8" model="ir.actions.act_window">
              <field name="name">Confirmed Packing Waiting Availability</field>
              <field name="view_mode">tree,form,calendar</field>
              <field name="domain">[('state','=','confirmed'),('type','=','internal')]</field>
              <field name="context">{'contact_display': 'partner'}</field>
 +            <field name="filter" eval="True"/>
 +            <field name="search_view_id" ref="view_stock_delivery_filter"/>            
          </record>
 -        <menuitem action="action_picking_tree8" id="menu_action_picking_tree8" parent="menu_action_picking_tree6"/>
 +        <menuitem action="action_picking_tree8" id="menu_action_picking_tree8" parent="menu_action_picking_tree6" groups="base.group_extended_menu"/>
  
          <record id="action_picking_tree9" model="ir.actions.act_window">
              <field name="name">New Internal Packing</field>
                      <field name="tracking_id" select="2"/>
                      <newline/>
                      <label/>
 -                    <button name="%(track_line)d" string="Split in production lots" type="action"/>
 +                    <button name="%(track_line)d" string="Split in production lots" type="action" icon="gtk-justify-fill"/>
                      <separator colspan="4" string="Move State"/>
                      <field name="state" select="1"/>
                      <group col="4" colspan="2">
 -                        <button name="action_confirm" states="draft" string="Confirm" type="object"/>
 -                        <button name="action_assign" states="confirmed" string="Set Available" type="object"/>
 -                        <button name="action_cancel" states="assigned,confirmed" string="Cancel" type="object"/>
 -                        <button name="action_done" states="assigned" string="Make Parcel" type="object"/>
 +                        <button name="action_confirm" states="draft" string="Confirm" type="object" icon="gtk-apply"/>
 +                        <button name="action_assign" states="confirmed" string="Set Available" type="object" icon="gtk-yes"/>
 +                        <button name="action_cancel" states="assigned,confirmed" string="Cancel" type="object" icon="gtk-cancel"/>
 +                        <button name="action_done" states="assigned" string="Make Parcel" type="object" icon="gtk-jump-to"/>
                      </group>
                  </form>
              </field>
              <field name="view_type">form</field>
              <field name="domain">[('state','=','draft')]</field>
              <field name="view_id" ref="view_move_tree"/>
 +            <field name="filter" eval="True"/>            
          </record>
 -        <menuitem action="action_move_form3" id="menu_action_move_form3" parent="menu_action_move_form2"/>
 +        <menuitem action="action_move_form3" id="menu_action_move_form3" parent="menu_action_move_form2" groups="base.group_extended_menu"/>
  
          <record id="action_move_form4" model="ir.actions.act_window">
              <field name="name">Available Moves</field>
              <field name="view_type">form</field>
              <field name="domain">[('state','=','assigned')]</field>
              <field name="view_id" ref="view_move_tree"/>
 +            <field name="filter" eval="True"/>            
          </record>
 -        <menuitem action="action_move_form4" id="menu_action_move_form4" parent="menu_action_move_form2"/>
 +        <menuitem action="action_move_form4" id="menu_action_move_form4" parent="menu_action_move_form2" groups="base.group_extended_menu"/>
  
          <record id="action_picking_all" model="ir.actions.act_window">
              <field name="name">Packing</field>