summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHarshad Modi <hmo@tinyerp.com>2008-06-20 11:49:23 +0000
committerHarshad Modi <hmo@tinyerp.com>2008-06-20 11:49:23 +0000
commit7318be91feb25f21406444a4b3ceea2e5eb125f2 (patch)
treee529a143f4c02540e9ed45897fa6236a971e5f12
parent24c3169bd70f974cd684ef4050ac7f66a72b308c (diff)
prototype of configuration wizard
bzr revid: hmo@tinyerp.com-9591a4aa840f7c7a4ecddde1adef198e27b5ddfa
-rw-r--r--addons/account/account.py68
-rw-r--r--addons/account/account_view.xml83
-rw-r--r--addons/base_setup/base_setup_data.xml9
-rw-r--r--addons/sale/sale.py39
-rw-r--r--addons/sale/sale_view.xml38
5 files changed, 230 insertions, 7 deletions
diff --git a/addons/account/account.py b/addons/account/account.py
index 84cb66e9acd..26a3e6583de 100644
--- a/addons/account/account.py
+++ b/addons/account/account.py
@@ -36,6 +36,7 @@ from tools.misc import currency
import mx.DateTime
from mx.DateTime import RelativeDateTime, now, DateTime, localtime
+
class account_payment_term(osv.osv):
_name = "account.payment.term"
_description = "Payment Term"
@@ -1541,3 +1542,70 @@ class account_subscription_line(osv.osv):
account_subscription_line()
+class account_config_fiscalyear(osv.osv_memory):
+ _name = 'account.config.fiscalyear'
+ _columns = {
+ 'name':fields.char('Name', required=True,size=64),
+ 'code':fields.char('Code', required=True,size=64),
+ 'date1': fields.date('Start of period', required=True),
+ 'date2': fields.date('End of period', required=True),
+ }
+ _defaults = {
+ 'date1': lambda *a: time.strftime('%Y-01-01'),
+ 'date2': lambda *a: time.strftime('%Y-%m-%d'),
+ }
+ def action_create(self, cr, uid,ids, context=None):
+ res=self.read(cr,uid,ids)[0]
+ if 'date1' in res and 'date2' in res:
+ res_obj = self.pool.get('account.fiscalyear')
+ start_date=res['date1']
+ end_date=res['date2']
+ name=res['name']#DateTime.strptime(start_date, '%Y-%m-%d').strftime('%m.%Y') + '-' + DateTime.strptime(end_date, '%Y-%m-%d').strftime('%m.%Y')
+ vals={
+ 'name':name,
+ 'code':name,
+ 'date_start':start_date,
+ 'date_stop':end_date,
+ }
+ new_id=res_obj.create(cr, uid, vals, context=context)
+ return {
+ 'view_type': 'form',
+ 'res_model': 'ir.module.module.configuration.wizard',
+ 'type': 'ir.actions.act_window',
+ 'target':'new',
+
+ }
+
+account_config_fiscalyear()
+
+
+class account_config_journal_bank_accounts(osv.osv_memory):
+ _name='account.config.journal.bank.account'
+ _columns = {
+ 'name':fields.char('Journal Name', size=64,required=True),
+ 'bank_account_id':fields.many2one('account.account', 'Bank Account', required=True, domain=[('type','=','cash')]),
+ 'view_id':fields.many2one('account.journal.view', 'Journal view', required=True),
+ 'sequence_id':fields.many2one('ir.sequence', 'Sequence', required=True),
+ }
+ def action_create(self, cr, uid, ids, context=None):
+ res=self.read(cr,uid,ids)[0]
+ res_obj = self.pool.get('account.journal')
+ if 'name' in res and 'bank_account_id' in res and 'view_id' in res and 'sequence_id' in res:
+ vals={
+ 'name':res['name'],
+ 'type':'cash',
+ 'view_id':res['view_id'],
+ 'default_credit_account_id':res['bank_account_id'],
+ 'default_debit_account_id':res['bank_account_id'],
+ 'sequence_id':res['sequence_id']
+ }
+ res_obj.create(cr, uid, vals, context=context)
+ return {
+ 'view_type': 'form',
+ 'res_model': 'ir.module.module.configuration.wizard',
+ 'type': 'ir.actions.act_window',
+ 'target':'new',
+ }
+
+account_config_journal_bank_accounts()
+
diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml
index 403c26d1959..3df28d1305e 100644
--- a/addons/account/account_view.xml
+++ b/addons/account/account_view.xml
@@ -471,9 +471,9 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
- <menuitem
- name="Financial Management/Configuration/General Accounts/"
- id="menu_action_account_type_form"
+ <menuitem
+ name="Financial Management/Configuration/General Accounts/"
+ id="menu_action_account_type_form"
groups="base.group_extended"
action="action_account_type_form"/>
<!--
@@ -1483,5 +1483,82 @@
id="act_account_partner_account_move"/>
+
+ <!-- configuration wizard view -->
+
+ <record model="ir.ui.view" id="view_config_fiscalyear_form">
+ <field name="name">Configure Fiscal Year</field>
+ <field name="model">account.config.fiscalyear</field>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <form string="Configure Fiscal Year">
+ <separator string="Configure Fiscal Year"/>
+ <newline/>
+ <field name="name"/>
+ <field name="code"/>
+ <field name="date1"/>
+ <field name="date2"/>
+ <group colspan="4" col="4">
+ <button special="cancel" string="Cancel" />
+ <button name="action_create" type='object' string="Create" />
+ </group>
+ </form>
+ </field>
+ </record>
+
+ <record model="ir.actions.act_window" id="action_config_fiscalyear_form">
+ <field name="name">Configure Fiscal Year</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">account.config.fiscalyear</field>
+ <field name="view_type">form</field>
+ <field name="target">new</field>
+ </record>
+
+
+
+ <record model="ir.ui.view" id="view_config_journal_bank_account">
+ <field name="name">Configure Journal of Bank account</field>
+ <field name="model">account.config.journal.bank.account</field>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <form string="Configure Journal of Bank account">
+ <separator string="Configure Journal of Bank account"/>
+ <newline/>
+ <field name="name"/>
+ <field name="bank_account_id"/>
+ <field name="view_id"/>
+ <field name="sequence_id"/>
+ <group colspan="4" col="4">
+ <button special="cancel" string="Cancel" />
+ <button name="action_create" type='object' string="Create"/>
+ </group>
+ </form>
+ </field>
+ </record>
+
+ <record model="ir.actions.act_window" id="action_config_journal_bank_account">
+ <field name="name">Configure Journal of Bank account</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">account.config.journal.bank.account</field>
+ <field name="view_type">form</field>
+ <field name="target">new</field>
+ </record>
+
+ <!-- register configuration wizard -->
+
+ <record model="ir.module.module.configuration.step"
+ id="config_fiscalyear">
+ <field name="name">account.config.fiscalyear</field>
+ <field name="action_id" ref="action_config_fiscalyear_form"/>
+ <field name="state">open</field>
+ </record>
+
+ <record model="ir.module.module.configuration.step"
+ id="config_journal_bank_account">
+ <field name="name">account.config.journal.bank.account</field>
+ <field name="action_id" ref="action_config_journal_bank_account"/>
+ <field name="state">open</field>
+ </record>
+
</data>
</terp>
diff --git a/addons/base_setup/base_setup_data.xml b/addons/base_setup/base_setup_data.xml
index 0b79f3d9a09..1f2327a64d1 100644
--- a/addons/base_setup/base_setup_data.xml
+++ b/addons/base_setup/base_setup_data.xml
@@ -12,5 +12,14 @@
<field name="action_id" ref="action_wizard_setup"/>
<field name="menu_id" ref="action_wizard_setup"/>
</record>
+
+
+ <!--<record model="ir.module.module.configuration.step"
+ id="config_base_setup_menu">
+ <field name="name">base_setup.base_setup.menu</field>
+ <field name="action_id" ref=""/>
+ <field name="sequence" eval="99999"/>
+ <field name="state">open</field>
+ </record>-->
</data>
</terp>
diff --git a/addons/sale/sale.py b/addons/sale/sale.py
index f7f557021d9..ca276acb6c4 100644
--- a/addons/sale/sale.py
+++ b/addons/sale/sale.py
@@ -91,7 +91,7 @@ class sale_order(osv.osv):
def _amount_total(self, cr, uid, ids, field_name, arg, context):
res = {}
- untax = self._amount_untaxed(cr, uid, ids, field_name, arg, context)
+ untax = self._amount_untaxed(cr, uid, ids, field_name, arg, context)
tax = self._amount_tax(cr, uid, ids, field_name, arg, context)
cur_obj=self.pool.get('res.currency')
for id in ids:
@@ -242,8 +242,8 @@ class sale_order(osv.osv):
def button_dummy(self, cr, uid, ids, context={}):
return True
-#FIXME: the method should return the list of invoices created (invoice_ids)
-# and not the id of the last invoice created (res). The problem is that we
+#FIXME: the method should return the list of invoices created (invoice_ids)
+# and not the id of the last invoice created (res). The problem is that we
# cannot change it directly since the method is called by the sale order
# workflow and I suppose it expects a single id...
def _inv_get(self, cr, uid, order, context={}):
@@ -571,7 +571,7 @@ class sale_order_line(osv.osv):
except:
res[line.id] = 1
return res
-
+
def _get_1st_packaging(self, cr, uid, context={}):
cr.execute('select id from product_packaging order by id asc limit 1')
res = cr.fetchone()
@@ -833,3 +833,34 @@ class sale_order_line(osv.osv):
return res
sale_order_line()
+
+
+
+_policy_form = '''<?xml version="1.0"?>
+<form string="Select Bank Account">
+ <field name="picking_policy" colspan="4"/>
+</form>'''
+
+_policy_fields = {
+ 'picking_policy': {'string': 'Packing Policy', 'type': 'selection','selection': [('direct','Direct Delivery'),('one','All at once')],'required': True,}
+}
+class sale_config_picking_policy(osv.osv_memory):
+ _name='sale.config.picking_policy'
+ _columns = {
+ 'name':fields.char('Name', size=64),
+ 'picking_policy': fields.selection([('direct','Direct Delivery'),('one','All at once')], 'Packing Policy', required=True ),
+ }
+ _defaults={
+ 'picking_policy': lambda *a: 'direct',
+ }
+ def set_default(self, cr, uid, ids, context=None):
+ if 'name' in context:
+ ir_values_obj = self.pool.get('ir.values')
+ ir_values_obj.set(cr,uid,'default',False,'picking_policy',['sale.order'],context['picking_policy'])
+ return {
+ 'view_type': 'form',
+ 'res_model': 'ir.module.module.configuration.wizard',
+ 'type': 'ir.actions.act_window',
+ 'target':'new',
+ }
+sale_config_picking_policy()
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index 4b99ecf71f4..9ce1670d5d4 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -447,5 +447,43 @@
domain="[('product_id','=',active_id)]"/>
+
+
+ <!-- configartion view -->
+
+ <record model="ir.ui.view" id="view_config_picking_policy">
+ <field name="name">Configure Picking Policy for Sale Order </field>
+ <field name="model">sale.config.picking_policy</field>
+ <field name="type">form</field>
+ <field name="arch" type="xml">
+ <form string="Configure Picking Policy for Sale Order">
+ <separator string="Configure Picking Policy for Sale Order"/>
+ <newline/>
+ <field name="picking_policy"/>
+ <group colspan="4" col="4">
+ <button special="cancel" string="Cancel" />
+ <button name="set_default" type='object' string="Set Default"/>
+ </group>
+ </form>
+ </field>
+ </record>
+
+ <record model="ir.actions.act_window" id="action_config_picking_policy">
+ <field name="name">Configure Picking Policy for Sale Order</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">sale.config.picking_policy</field>
+ <field name="view_type">form</field>
+ <field name="target">new</field>
+ </record>
+
+ <!-- register configuration wizard -->
+ <record model="ir.module.module.configuration.step"
+ id="config_wizard_step_sale_picking_policy">
+ <field name="name">sale.config.picking_policy</field>
+ <field name="action_id" ref="action_config_picking_policy"/>
+ <field name="state">open</field>
+ </record>
+
+
</data>
</terp>