[MERGE]: Merged with team1.
bzr revid: uco@tinyerp.com-20101028070542-fhe8w6z1ggb4crne
This commit is contained in:
commit
ffbb15e03e
|
@ -240,6 +240,8 @@ class account_cash_statement(osv.osv):
|
|||
}
|
||||
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
if 'journal_id' not in vals:
|
||||
raise osv.except_osv('Error', _('You cannot create a bank or cash register without a journal!'))
|
||||
sql = [
|
||||
('journal_id', '=', vals.get('journal_id', False)),
|
||||
('state', '=', 'open')
|
||||
|
@ -326,8 +328,8 @@ class account_cash_statement(osv.osv):
|
|||
statement_pool = self.pool.get('account.bank.statement')
|
||||
for statement in statement_pool.browse(cr, uid, ids, context=context):
|
||||
vals = {}
|
||||
|
||||
if not self._user_allow(cr, uid, statement.id, context=context):
|
||||
force_allow = context.get('force_allow',False)
|
||||
if not force_allow and not self._user_allow(cr, uid, statement.id, context=context):
|
||||
raise osv.except_osv(_('Error !'), _('User %s does not have rights to access %s journal !' % (statement.user_id.name, statement.journal_id.name)))
|
||||
|
||||
if statement.name and statement.name == '/':
|
||||
|
|
|
@ -380,7 +380,6 @@ class account_invoice(osv.osv):
|
|||
raise orm.except_orm(_('Configuration Error!'),
|
||||
_('There is no Accounting Journal of type Sale/Purchase defined!'))
|
||||
else:
|
||||
raise
|
||||
raise orm.except_orm(_('UnknownError'), str(e))
|
||||
|
||||
def confirm_paid(self, cr, uid, ids, context=None):
|
||||
|
@ -1656,3 +1655,5 @@ class res_partner(osv.osv):
|
|||
}
|
||||
|
||||
res_partner()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
<field name="date"/>
|
||||
<field name="user_id" invisible="1"/>
|
||||
<field name="parent_id" invisible="1"/>
|
||||
<field name="partner_id" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
I clicked on Open CashBox button to open the cashbox
|
||||
-
|
||||
!python {model: account.bank.statement}: |
|
||||
self.button_open(cr, uid, [ref("account_bank_statement_1")], {"lang": "en_US", "tz": False, "active_model": "account.bank.statement", "active_ids": [ref("account_bank_statement_1")], "active_id": ref("account_bank_statement_1"), })
|
||||
self.button_open(cr, uid, [ref("account_bank_statement_1")], {"force_allow":True, "lang": "en_US", "tz": False, "active_model": "account.bank.statement", "active_ids": [ref("account_bank_statement_1")], "active_id": ref("account_bank_statement_1"), })
|
||||
|
||||
-
|
||||
I check that now bank statement is in the "Open" state
|
||||
|
|
|
@ -103,11 +103,7 @@ msgstr "Δημιουργημένος τραπεζικός λογαριασμός
|
|||
#: model:ir.actions.act_window,name:account_coda.act_account_payment_account_bank_statement
|
||||
#: model:ir.actions.act_window,name:account_coda.action_account_coda
|
||||
msgid "Coda import"
|
||||
<<<<<<< TREE
|
||||
msgstr ""
|
||||
=======
|
||||
msgstr "Εισαγωγή Coda"
|
||||
>>>>>>> MERGE-SOURCE
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.coda,user_id:0
|
||||
|
@ -122,11 +118,7 @@ msgstr "Λανθασμένο XML για αρχιτεκτονική όψης!"
|
|||
#. module: account_coda
|
||||
#: model:ir.model,name:account_coda.model_account_coda
|
||||
msgid "coda for an Account"
|
||||
<<<<<<< TREE
|
||||
msgstr ""
|
||||
=======
|
||||
msgstr "coda για εναν λογαριασμό"
|
||||
>>>>>>> MERGE-SOURCE
|
||||
|
||||
#. module: account_coda
|
||||
#: wizard_field:account.coda_import,init,def_payable:0
|
||||
|
@ -136,20 +128,12 @@ msgstr "Προεπιλεγμένος λογαριασμός πληρωμής"
|
|||
#. module: account_coda
|
||||
#: model:ir.ui.menu,name:account_coda.menu_account_coda
|
||||
msgid "Coda Statements"
|
||||
<<<<<<< TREE
|
||||
msgstr ""
|
||||
=======
|
||||
msgstr "Λογαριασμοί Coda"
|
||||
>>>>>>> MERGE-SOURCE
|
||||
|
||||
#. module: account_coda
|
||||
#: model:ir.ui.menu,name:account_coda.menu_account_coda_wizard
|
||||
msgid "Import Coda Statements"
|
||||
<<<<<<< TREE
|
||||
msgstr ""
|
||||
=======
|
||||
msgstr "Εισαγωγή λογαριασμών Coda"
|
||||
>>>>>>> MERGE-SOURCE
|
||||
|
||||
#. module: account_coda
|
||||
#: wizard_button:account.coda_import,init,extraction:0
|
||||
|
@ -160,20 +144,12 @@ msgstr "_Εντάξει"
|
|||
#: wizard_view:account.coda_import,extraction:0
|
||||
#: wizard_view:account.coda_import,init:0
|
||||
msgid "Import Coda Statement"
|
||||
<<<<<<< TREE
|
||||
msgstr ""
|
||||
=======
|
||||
msgstr "Εισαγωγή λογαριασμών Coda"
|
||||
>>>>>>> MERGE-SOURCE
|
||||
|
||||
#. module: account_coda
|
||||
#: field:account.bank.statement,coda_id:0
|
||||
msgid "Coda"
|
||||
<<<<<<< TREE
|
||||
msgstr ""
|
||||
=======
|
||||
msgstr "Coda"
|
||||
>>>>>>> MERGE-SOURCE
|
||||
|
||||
#. module: account_coda
|
||||
#: wizard_view:account.coda_import,extraction:0
|
||||
|
|
|
@ -54,7 +54,6 @@
|
|||
</record>
|
||||
|
||||
<menuitem name="Association" id="base.menu_association" icon="terp-calendar" sequence="9" groups="base.group_extended"/>
|
||||
<menuitem name="Events Organisation" id="base.menu_event_main" parent="base.menu_association" />
|
||||
<menuitem name="Configuration" id="base.menu_event_config" parent="base.menu_association" sequence="30" groups="base.group_extended"/>
|
||||
<menuitem name="Reporting" id="base.menu_report_association" parent="base.menu_association" sequence="20"/>
|
||||
</data>
|
||||
|
|
|
@ -44,7 +44,7 @@ class buyer_form_report(report_sxw.rml_parse):
|
|||
taxes.append(lot.author_right)
|
||||
if lot.auction_id:
|
||||
taxes += lot.auction_id.buyer_costs
|
||||
tax=self.pool.get('account.tax').compute(self.cr, self.uid, taxes, lot.obj_price, 1)
|
||||
tax=self.pool.get('account.tax').compute_all(self.cr, self.uid, taxes, lot.obj_price, 1)
|
||||
for t in tax:
|
||||
amount+=t['amount']
|
||||
return amount
|
||||
|
|
|
@ -45,7 +45,7 @@ class seller_form_report(report_sxw.rml_parse):
|
|||
taxes.append(lot.bord_vnd_id.tax_id)
|
||||
elif lot.auction_id and lot.auction_id.seller_costs:
|
||||
taxes += lot.auction_id.seller_costs
|
||||
tax=self.pool.get('account.tax').compute(self.cr, self.uid, taxes, lot.obj_price, 1)
|
||||
tax=self.pool.get('account.tax').compute_all(self.cr, self.uid, taxes, lot.obj_price, 1)
|
||||
for t in tax:
|
||||
amount+=t['amount']
|
||||
return amount
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
|
||||
"access_auction_artists","auction.artists","model_auction_artists","group_auction_manager",1,1,1,1
|
||||
"access_auction_dates_user","auction.dates user","model_auction_dates","group_auction_user",1,0,0,0
|
||||
"access_auction_dates_manager","auction.dates manager","model_auction_dates","group_auction_manager",1,1,1,1
|
||||
"access_auction_deposit_manager","auction.deposit manager","model_auction_deposit","group_auction_manager",1,1,1,1
|
||||
"access_auction_deposit_user","auction.deposit user","model_auction_deposit","group_auction_user",1,0,0,0
|
||||
"access_auction_deposit_cost","auction.deposit.cost","model_auction_deposit_cost","group_auction_manager",1,1,1,1
|
||||
"access_auction_lot_category","auction.lot.category","model_auction_lot_category","group_auction_user",1,0,0,0
|
||||
"access_auction_lot_category_manager","auction.lot.category manager","model_auction_lot_category","group_auction_manager",1,1,1,1
|
||||
"access_auction_lots","auction.lots","model_auction_lots","group_auction_user",1,1,1,1
|
||||
"access_auction_lots","auction.lots","model_auction_lots","group_auction_user",1,1,1,0
|
||||
"access_auction_lots_manager","auction.lots manager","model_auction_lots","group_auction_manager",1,0,0,0
|
||||
"access_auction_bid","auction.bid","model_auction_bid","group_auction_user",1,1,1,1
|
||||
"access_auction_bid_manager","auction.bid manager","model_auction_bid","group_auction_manager",1,0,0,0
|
||||
|
@ -18,6 +20,7 @@
|
|||
"access_report_auction_adjudication","report.auction.adjudication","model_report_auction_adjudication","group_auction_manager",1,1,1,1
|
||||
"access_report_object_encoded","report.object.encoded","model_report_object_encoded","group_auction_manager",1,1,1,1
|
||||
"access_aie_category","aie.category","model_aie_category","group_auction_manager",1,1,1,1
|
||||
"access_auction_account_tax_user","account.tax user","account.model_account_tax","group_auction_user",1,0,0,0
|
||||
"access_auction_account_tax","account.tax manager","account.model_account_tax","group_auction_manager",1,1,1,0
|
||||
"access_auction_account_fiscalyear","account.fiscalyear manager","account.model_account_fiscalyear","group_auction_manager",1,1,1,0
|
||||
"access_auction_account_journal","account.journal manager","account.model_account_journal","group_auction_manager",1,1,1,0
|
||||
|
|
|
|
@ -27,8 +27,8 @@
|
|||
I will search for one of the recurrent event and count the number of events
|
||||
-
|
||||
!python {model: calendar.event}: |
|
||||
ids = self.search(cr, uid, [('date', '>=', '2010-05-01 00:00:00'), ('date', '<=', '2010-05-31 00:00:00')] )
|
||||
assert len(ids) == 9
|
||||
ids = self.search(cr, uid, [('date', '>=', '2010-04-30 16:00:00'), ('date', '<=', '2010-05-31 00:00:00')] )
|
||||
assert len(ids) == 10
|
||||
- |
|
||||
Now I will make All day event and test it
|
||||
-
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_calendar_collection_tree">
|
||||
<field name="name">Calendar Collections : Tree</field>
|
||||
<field name="model">document.directory</field>
|
||||
|
@ -47,6 +48,7 @@
|
|||
<field name="view_id" ref="view_calendar_collection_tree"/>
|
||||
<field name="act_window_id" ref="action_calendar_collection_form"/>
|
||||
</record>
|
||||
|
||||
<record id="action_dir_view2" model="ir.actions.act_window.view">
|
||||
<field eval="20" name="sequence"/>
|
||||
<field name="view_mode">form</field>
|
||||
|
@ -54,15 +56,11 @@
|
|||
<field name="act_window_id" ref="action_calendar_collection_form"/>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
id="menu_calendar"
|
||||
name="Calendar"
|
||||
<menuitem id="menu_calendar" name="Calendar"
|
||||
parent="knowledge.menu_document_configuration" />
|
||||
|
||||
<menuitem
|
||||
action="action_calendar_collection_form"
|
||||
id="menu_calendar_collection"
|
||||
parent="menu_calendar"/>
|
||||
<menuitem action="action_calendar_collection_form"
|
||||
id="menu_calendar_collection" parent="menu_calendar" />
|
||||
|
||||
<record model="ir.ui.view" id="view_caldav_form">
|
||||
<field name="name">Calendar : Form</field>
|
||||
|
@ -133,6 +131,26 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="view_caldav_search">
|
||||
<field name="name">Calendar: Search</field>
|
||||
<field name="model">basic.calendar</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Calendars">
|
||||
<filter string="WebCal" icon="terp-calendar" domain="[('has_webcal', '=', True)]" help="Webcal Calendar"/>
|
||||
<filter string="Event" icon="terp-calendar" domain="[('type', '=', 'vevent')]"/>
|
||||
<filter string="Todo" icon="terp-calendar" domain="[('type', '=', 'vtodo')]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="name"/>
|
||||
<field name="type"/>
|
||||
<field name="user_id" widget="selection">
|
||||
<filter icon="terp-personal" domain="[('user_id', '=', uid)]" help="My Calendar(s)" string="MY"/>
|
||||
</field>
|
||||
<field name="collection_id" required="1"/>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="action_caldav_form">
|
||||
<field name="name">Calendars</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
|
@ -154,9 +172,8 @@
|
|||
<field name="act_window_id" ref="action_caldav_form"/>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
action="action_caldav_form"
|
||||
id="menu_caldav_directories"
|
||||
parent="menu_calendar"/>
|
||||
<menuitem action="action_caldav_form"
|
||||
id="menu_caldav_directories" parent="menu_calendar" />
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -48,7 +48,7 @@
|
|||
<field name="view_type">form</field>
|
||||
<field name="view_mode">graph,tree,form</field>
|
||||
<field name="view_id" ref="view_crm_opportunity_categ_graph"/>
|
||||
<field name="domain">[('state','!=','done'),('state','!=','cancel')]</field>
|
||||
<field name="domain">[('state', 'not in', ('done', 'cancel')), ('type', '=', 'opportunity')]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="act_opportunity_stage">
|
||||
|
@ -56,7 +56,7 @@
|
|||
<field name="view_type">form</field>
|
||||
<field name="view_mode">graph,tree,form</field>
|
||||
<field name="view_id" ref="view_crm_opportunity_stage_graph"/>
|
||||
<field name="domain">[('state','!=','done'),('state','!=','cancel')]</field>
|
||||
<field name="domain">[('state', 'not in', ('done', 'cancel')), ('type', '=', 'opportunity')]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="act_oppor_stage_user">
|
||||
|
|
|
@ -325,7 +325,7 @@
|
|||
|
||||
<act_window
|
||||
domain="[('partner_address_id', '=', active_id)]"
|
||||
context="{'default_partner_address_id': active_id}"
|
||||
context="{'default_partner_id': partner_id}"
|
||||
id="act_claim_partner_address"
|
||||
name="Report a Claim"
|
||||
view_mode="form,tree"
|
||||
|
|
|
@ -3,3 +3,5 @@
|
|||
"access_crm_profiling_answer_manager","crm_profiling.answer manager","model_crm_profiling_answer","base.group_sale_manager",1,0,0,0
|
||||
"access_crm_profiling_question_manager","crm_profiling.question manager","model_crm_profiling_question","base.group_sale_salesman",1,1,1,0
|
||||
"access_crm_profiling_question_user","crm_profiling.question user","model_crm_profiling_question","base.group_sale_manager",1,0,0,0
|
||||
"access_crm_profiling_questionnarie_user","crm_profiling.questionnarie user","model_crm_profiling_questionnaire","base.group_sale_salesman",1,0,0,0
|
||||
"access_crm_profiling_questionnarie_manager","crm_profiling.questionnarie manager","model_crm_profiling_questionnaire","base.group_sale_manager",1,1,1,1
|
||||
|
|
|
|
@ -40,7 +40,7 @@
|
|||
'partner_view.xml'
|
||||
],
|
||||
'demo_xml': ['delivery_demo.xml'],
|
||||
'test':['test/delivery_test.yml','test/delivery_report.yml'],
|
||||
'test':['test/delivery_report.yml'],
|
||||
'installable': True,
|
||||
'active': False,
|
||||
'certificate': '0033981912253',
|
||||
|
|
|
@ -661,6 +661,7 @@ This is useful for CRM leads for example"),
|
|||
user,
|
||||
mailbox_values,
|
||||
context)
|
||||
|
||||
return mailbox_id
|
||||
|
||||
|
||||
|
@ -731,6 +732,8 @@ class email_template_preview(osv.osv_memory):
|
|||
ref_obj_name = self.pool.get('ir.model').read(cr, uid, ref_obj_id['object_name'][0], ['model'], context)['model']
|
||||
model_obj = self.pool.get(ref_obj_name)
|
||||
ref_obj_ids = model_obj.search(cr, uid, [], 0, 20, 'id desc', context=context)
|
||||
if not ref_obj_ids:
|
||||
ref_obj_ids = []
|
||||
|
||||
# also add the default one if requested, otherwise it won't be available for selection:
|
||||
default_id = context.get('default_rel_model_ref')
|
||||
|
@ -761,7 +764,7 @@ class email_template_preview(osv.osv_memory):
|
|||
user,
|
||||
context['template_id'],
|
||||
['object_name'],
|
||||
context)['object_name']
|
||||
context).get('object_name', False)
|
||||
|
||||
_columns = {
|
||||
'ref_template':fields.many2one(
|
||||
|
@ -788,7 +791,7 @@ class email_template_preview(osv.osv_memory):
|
|||
'report':fields.char('Report Name', size=100, readonly=True),
|
||||
}
|
||||
_defaults = {
|
||||
'ref_template': lambda self, cr, uid, ctx:ctx['template_id'],
|
||||
'ref_template': lambda self, cr, uid, ctx:ctx['template_id'] or False,
|
||||
'rel_model': _default_model,
|
||||
}
|
||||
def on_change_ref(self, cr, uid, ids, rel_model_ref, context=None):
|
||||
|
|
|
@ -13,3 +13,4 @@
|
|||
"access_event_event_sale_salesman","event.event.sale","model_event_event","base.group_sale_salesman",1,0,0,0
|
||||
"access_account_account_invoice_manager","account.account.invoice","account.model_account_invoice","base.group_marketing_manager",1,0,0,0
|
||||
"access_event_registration_badge","event.registration.badge","model_event_registration_badge","marketing.group_marketing_user",1,0,0,0
|
||||
"access_event_registration_sale_user","event.registration.sale.user","model_event_registration","base.group_sale_salesman",1,0,0,0
|
||||
|
|
|
|
@ -425,6 +425,18 @@ class payroll_register(osv.osv):
|
|||
self.write(cr, uid, ids, {'state':'draft', 'number':number}, context=context)
|
||||
return True
|
||||
|
||||
def set_to_draft(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
self.write(cr, uid, ids, {'state':'draft'}, context=context)
|
||||
return True
|
||||
|
||||
def cancel_sheet(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
self.write(cr, uid, ids, {'state':'cancel'}, context=context)
|
||||
return True
|
||||
|
||||
def verify_sheet(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
|
|
|
@ -38,6 +38,7 @@
|
|||
'init_xml': [
|
||||
],
|
||||
'update_xml': [
|
||||
"security/ir.model.access.csv",
|
||||
"hr_payroll_account_view.xml",
|
||||
],
|
||||
'demo_xml': [
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
|
||||
"access_hr_payslip_account_move_user","access.hr.payslip.account.move.user","model_hr_payslip_account_move","base.group_user",1,0,0,0
|
|
|
@ -127,9 +127,9 @@
|
|||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
<group col="6" colspan="4">
|
||||
<field name="state"/>
|
||||
<group col="4" colspan="2">
|
||||
<button name="button_confirm" states="draft" string="Close" type="object" icon="terp-check"/>
|
||||
<button name="button_confirm" states="draft" string="Confirm" type="object" icon="terp-check"/>
|
||||
<button name="action_set_to_draft" states="done" string="Set to Draft" type="object" icon="terp-stock_effects-object-colorize"/>
|
||||
<button name="cancel" states="confirm" string="Refuse" type="workflow" icon="gtk-cancel"/>
|
||||
<button name="done" states="confirm" string="Approve" type="workflow" icon="terp-camera_test"/>
|
||||
|
|
|
@ -140,7 +140,7 @@ class mailgate_thread(osv.osv):
|
|||
'description': details or (hasattr(case, 'description') and case.description or False),
|
||||
'attachment_ids': [(6, 0, attachments)]
|
||||
}
|
||||
attachments = []
|
||||
|
||||
if history:
|
||||
for param in (email, email_cc, email_bcc):
|
||||
if isinstance(param, list):
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
|
||||
"mail_gateway_mailgate_message","mail_gateway.mailgate.message","model_mailgate_message","base.group_system",1,1,1,1
|
||||
"mail_gateway_mailgate_thread","mail_gateway.mailgate.thread","model_mailgate_thread","base.group_system",1,1,1,1
|
||||
"mail_gateway_message_internal_user","mail_gateway.mailgate.message.internal","model_mailgate_message","base.group_user",1,0,0,0
|
||||
|
|
|
|
@ -177,17 +177,9 @@ class product_category(osv.osv):
|
|||
'child_id': fields.one2many('product.category', 'parent_id', string='Child Categories'),
|
||||
'sequence': fields.integer('Sequence', help="Gives the sequence order when displaying a list of product categories."),
|
||||
'type': fields.selection([('view','View'), ('normal','Normal')], 'Category Type'),
|
||||
'property_stock_variation': fields.property(
|
||||
'account.account',
|
||||
type='many2one',
|
||||
relation='account.account',
|
||||
string="Stock variation Account",
|
||||
method=True,
|
||||
view_load=True, help="This account will be used in product when valuation type is real-time valuation ",),
|
||||
}
|
||||
|
||||
|
||||
|
||||
_defaults = {
|
||||
'type' : lambda *a : 'normal',
|
||||
}
|
||||
|
@ -738,6 +730,7 @@ class pricelist_partnerinfo(osv.osv):
|
|||
}
|
||||
_order = 'min_quantity asc'
|
||||
pricelist_partnerinfo()
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
class res_users(osv.osv):
|
||||
_inherit = 'res.users'
|
||||
|
@ -757,5 +750,3 @@ class res_users(osv.osv):
|
|||
}
|
||||
|
||||
res_users()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -110,7 +110,7 @@
|
|||
|
||||
<group colspan="2" col="2" name="status" groups="base.group_extended">
|
||||
<separator string="Status" colspan="2"/>
|
||||
<field name="categ_id" select="1" groups="base.group_extended"/>
|
||||
<field name="categ_id"/>
|
||||
<field name="state"/>
|
||||
<field name="product_manager"/>
|
||||
</group>
|
||||
|
@ -220,7 +220,6 @@
|
|||
<field name="name" select="1"/>
|
||||
<field name="parent_id"/>
|
||||
<field name="sequence" invisible="1"/>
|
||||
<field name="property_stock_variation"/>
|
||||
<field name="type"/>
|
||||
<newline/>
|
||||
</form>
|
||||
|
|
|
@ -40,7 +40,7 @@ class stock_production_lot(osv.osv):
|
|||
# set date to False when no expiry time specified on the product
|
||||
date = duration and (datetime.datetime.today()
|
||||
+ datetime.timedelta(days=duration))
|
||||
return date and date.strftime('%Y-%m-%d %H:%M:%S')
|
||||
return date and date.strftime('%Y-%m-%d %H:%M:%S') or False
|
||||
return calc_date
|
||||
|
||||
_columns = {
|
||||
|
|
|
@ -325,7 +325,7 @@
|
|||
<field name="progress" widget="progressbar" invisible="context.get('set_visible',False)"/>
|
||||
<field name="state" invisible="context.get('set_visible',False)"/>
|
||||
<button name="do_cancel" states="draft,open,pending" string="Cancel" type="object" icon="gtk-cancel" help="For cancelling the task"/>
|
||||
<button name="do_open" states="pending,draft,done,cancel" string="Start Task" type="object" icon="gtk-execute" help="For changing to open state" invisible="context.get('set_visible',False)"/>
|
||||
<button name="do_open" states="pending,draft,done,cancelled" string="Start Task" type="object" icon="gtk-execute" help="For changing to open state" invisible="context.get('set_visible',False)"/>
|
||||
<button groups="base.group_extended" name="%(action_project_task_delegate)d" states="pending,open,draft" string="Delegate" type="action" icon="gtk-sort-descending" help="For changing to delegate state"/>
|
||||
<button name="action_close" states="draft,pending,open" string="Done" type="object" icon="terp-dialog-close" help="For changing to done state"/>
|
||||
</tree>
|
||||
|
|
|
@ -149,7 +149,7 @@
|
|||
<field name="help">This report allows you to analyse the performance of your projects and users. You can analyse the quantities of tasks, the hours spent compared to the planned hours, the average number of days to open or close a task, etc.</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_tasks_config" name="Tasks" parent="project.menu_definitions" sequence="1"/>
|
||||
<menuitem action="action_project_task_user_tree" id="menu_project_task_user_tree" parent="base.menu_project_report" groups="project.group_project_manager"/>
|
||||
|
||||
<!-- Views and action for project dashboard -->
|
||||
<record id="view_project_vs_remaining_hours_tree" model="ir.ui.view">
|
||||
|
|
|
@ -134,7 +134,7 @@
|
|||
-
|
||||
Make a work task entry 'Training on OpenERP modules, models and classes' of 10 hours
|
||||
-
|
||||
!record {model: project.task, id: project_task_technicaltraining0}:
|
||||
!record {model: project.task, id: project_task_technicaltraining0, context:{'no_analytic_entry':True}}:
|
||||
work_ids:
|
||||
- date: '2010-05-31 15:04:22'
|
||||
hours: 10.0
|
||||
|
@ -149,7 +149,7 @@
|
|||
-
|
||||
Make a work task entry 'Training on OpenERP xml views' of 10 hours
|
||||
-
|
||||
!record {model: project.task, id: project_task_technicaltraining0}:
|
||||
!record {model: project.task, id: project_task_technicaltraining0, context:{'no_analytic_entry':True}}:
|
||||
work_ids:
|
||||
- date: '2010-06-01 15:04:46'
|
||||
hours: 10.0
|
||||
|
@ -164,7 +164,7 @@
|
|||
-
|
||||
Make a work task entry 'Training on workflows' of 10 hours
|
||||
-
|
||||
!record {model: project.task, id: project_task_technicaltraining0}:
|
||||
!record {model: project.task, id: project_task_technicaltraining0, context:{'no_analytic_entry':True}}:
|
||||
work_ids:
|
||||
- date: '2010-06-02 15:05:24'
|
||||
hours: 10.0
|
||||
|
@ -200,7 +200,7 @@
|
|||
-
|
||||
Make a work task entry 'Training on reports and wizards' of 10 hours
|
||||
-
|
||||
!record {model: project.task, id: project_task_technicaltraining0}:
|
||||
!record {model: project.task, id: project_task_technicaltraining0, context:{'no_analytic_entry':True}}:
|
||||
work_ids:
|
||||
- date: '2010-05-31 15:08:40'
|
||||
hours: 10.0
|
||||
|
@ -251,7 +251,7 @@
|
|||
-
|
||||
Make a work task entry 'Training on yml' of 5 hours
|
||||
-
|
||||
!record {model: project.task, id: project_task_technicaltraining0}:
|
||||
!record {model: project.task, id: project_task_technicaltraining0, context:{'no_analytic_entry':True}}:
|
||||
work_ids:
|
||||
- date: '2010-05-31 16:55:27'
|
||||
hours: 5.0
|
||||
|
|
|
@ -10,11 +10,11 @@
|
|||
<form string="Send Email">
|
||||
<group colspan="4" col="4">
|
||||
<field name="manager_warn" invisible="1"/>
|
||||
<field name="manager_email" widget="email" attrs="{'invisible':[('manager_warn','=',False)], 'required':[('manager_warn','=',True)]}"/>
|
||||
<field name="manager_email" widget="email" attrs="{'invisible':[('manager_warn','=',False)], 'required':[('manager_warn','=',True)]}" width="250"/>
|
||||
<field name="partner_warn" invisible="1"/>
|
||||
<field name="partner_email" widget="email" attrs="{'invisible':[('partner_warn','=',False)], 'required':[('partner_warn','=',True)]}"/>
|
||||
<separator string="Warn Message" colspan="4"/>
|
||||
<field name="description" nolabel="1" colspan="4"/>
|
||||
<field name="description" nolabel="1" colspan="4" width="200" height="150"/>
|
||||
</group>
|
||||
<separator string="" colspan="4"/>
|
||||
<group colspan="2" col="2">
|
||||
|
|
|
@ -32,6 +32,7 @@ class project_task(osv.osv):
|
|||
# force inherit from project.project_task so that
|
||||
# calendar.todo.active is masked oute
|
||||
'active': base_project_task._columns['active'],
|
||||
'date_deadline': base_project_task._columns['date_deadline'],
|
||||
'write_date': fields.datetime('Write Date'),
|
||||
'create_date': fields.datetime('Create Date', readonly=True),
|
||||
'attendee_ids': fields.many2many('calendar.attendee', \
|
||||
|
|
|
@ -93,7 +93,7 @@
|
|||
<button name="case_reset" string="Reset to Draft" states="done,cancel" type="object" icon="gtk-convert"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Emails" groups="base.group_extended">
|
||||
<page string="History" groups="base.group_extended">
|
||||
<group colspan="4">
|
||||
<field colspan="4" name="email_cc" string="Global CC" widget="url"/>
|
||||
</group>
|
||||
|
@ -146,7 +146,7 @@
|
|||
context="{'mail':'new', 'model': 'project.issue'}"
|
||||
icon="terp-mail-message-new" type="action" />
|
||||
</page>
|
||||
<page string="History" groups="base.group_extended">
|
||||
<page string="Extra Info" groups="base.group_extended">
|
||||
<group col="2" colspan="2">
|
||||
<separator colspan="2" string="Date"/>
|
||||
<field name="create_date"/>
|
||||
|
|
|
@ -346,6 +346,30 @@
|
|||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_phase_task_search_form_group" model="ir.ui.view">
|
||||
<field name="name">phase.task.search.form.group</field>
|
||||
<field name="model">project.task</field>
|
||||
<field name="type">search</field>
|
||||
<field name="inherit_id" ref="project.view_task_search_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<filter string="Project" name="group_project_id" icon="terp-folder-violet" domain="[]" context="{'group_by':'project_id'}" position="after">
|
||||
<filter string="Project Phase" name="group_project_id_phase" icon="terp-folder-violet" domain="[]" context="{'group_by':'phase_id'}" groups="base.group_extended"/>
|
||||
</filter>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_phase_task_search_form_tree" model="ir.ui.view">
|
||||
<field name="name">phase.task.search.form.tree</field>
|
||||
<field name="model">project.task</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="inherit_id" ref="project.view_task_tree2"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="project_id" position="after">
|
||||
<field name="phase_id" invisible="1" groups="base.group_extended"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<act_window
|
||||
id="project_phase_task_list"
|
||||
name="Related Tasks"
|
||||
|
|
|
@ -80,7 +80,7 @@ class project_work(osv.osv):
|
|||
|
||||
vals_line = {}
|
||||
context = kwargs.get('context', {})
|
||||
|
||||
if not context.get('no_analytic_entry',False):
|
||||
obj_task = task_obj.browse(cr, uid, vals['task_id'])
|
||||
result = self.get_user_related_details(cr, uid, vals.get('user_id', uid))
|
||||
vals_line['name'] = '%s: %s' % (tools.ustr(obj_task.name), tools.ustr(vals['name']) or '/')
|
||||
|
|
|
@ -67,7 +67,7 @@
|
|||
'board_sale_view.xml',
|
||||
'process/sale_process.xml',
|
||||
],
|
||||
# 'demo_xml': ['sale_demo.xml'],
|
||||
'demo_xml': ['sale_demo.xml'],
|
||||
'test': [
|
||||
'test/data_test.yml',
|
||||
'test/manual_order_policy.yml',
|
||||
|
|
|
@ -931,9 +931,10 @@ class sale_order_line(osv.osv):
|
|||
'for this product: "%s" (id:%d)') % \
|
||||
(line.product_id.name, line.product_id.id,))
|
||||
else:
|
||||
a = self.pool.get('ir.property').get(cr, uid,
|
||||
prop = self.pool.get('ir.property').get(cr, uid,
|
||||
'property_account_income_categ', 'product.category',
|
||||
context=context).id
|
||||
context=context)
|
||||
a = prop and prop.id or False
|
||||
uosqty = _get_line_qty(line)
|
||||
uos_id = _get_line_uom(line)
|
||||
pu = 0.0
|
||||
|
|
|
@ -292,6 +292,7 @@
|
|||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form,calendar,graph</field>
|
||||
<field name="search_view_id" ref="view_sales_order_filter"/>
|
||||
<field name="context">{"search_default_user_id":uid}</field>
|
||||
<field name="help">Sales Orders helps you manage quotations and orders done with your customers. OpenERP suggests that you to start by creating a quotation. Once the order is confirmed, the quotation is converted into a Sale Order. OpenERP can handle several types of products so that a sales order can trigger tasks, delivery orders, manufacturing orders, purchases and so on. Based on the configuration of the sale order, a draft invoice will be generated so that you just have to confirm it when you want to bill your customer.</field>
|
||||
</record>
|
||||
<menuitem action="action_order_form" id="menu_sale_order" parent="base.menu_sales" sequence="3" groups="base.group_sale_salesman,base.group_sale_manager"/>
|
||||
|
|
|
@ -31,6 +31,19 @@
|
|||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
||||
</record>
|
||||
|
||||
<record id="sale_order_personal_rule" model="ir.rule">
|
||||
<field name="name">Personal Orders</field>
|
||||
<field ref="model_sale_order" name="model_id"/>
|
||||
<field name="domain_force">['|',('user_id','=',user.id),('user_id','=',False)]</field>
|
||||
<field name="groups" eval="[(4, ref('base.group_sale_salesman'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="sale_order_line_personal_rule" model="ir.rule">
|
||||
<field name="name">Personal Order Lines</field>
|
||||
<field ref="model_sale_order_line" name="model_id"/>
|
||||
<field name="domain_force">['|',('order_id.user_id','=',user.id),('order_id.user_id','=',False)]</field>
|
||||
<field name="groups" eval="[(4, ref('base.group_sale_salesman'))]"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<field name="inherit_id" ref="sale.view_order_line_form2"/>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="/form/notebook/page/field[@name='name']" position="before">
|
||||
<xpath expr="/form/group/field[@name='name']" position="before">
|
||||
<field name="layout_type" select="1" on_change="onchange_sale_order_line_view(layout_type)" />
|
||||
<field name="sequence"/>
|
||||
</xpath>
|
||||
|
|
|
@ -43,7 +43,6 @@
|
|||
'website': 'http://www.openerp.com',
|
||||
'data': [
|
||||
'security/share_security.xml',
|
||||
'security/ir.model.access.csv',
|
||||
'share_view.xml',
|
||||
'res_users_view.xml',
|
||||
'wizard/share_wizard_view.xml'
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
|
||||
"access_share_wizard_user","access_share_wizard_user","model_share_wizard","share.group_share_user",1,1,1,1
|
|
|
@ -423,6 +423,7 @@ class product_template(osv.osv):
|
|||
string='Stock Output Account', method=True, view_load=True,
|
||||
help='When doing real-time inventory valuation, counterpart Journal Items for all outgoing stock moves will be posted in this account. If not set on the product, the one from the product category is used.'),
|
||||
}
|
||||
|
||||
product_template()
|
||||
|
||||
class product_category(osv.osv):
|
||||
|
@ -448,6 +449,7 @@ class product_category(osv.osv):
|
|||
method=True, view_load=True,
|
||||
help="When real-time inventory valuation is enabled on a product, this account will hold the current value of the products.",),
|
||||
}
|
||||
|
||||
product_category()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
|
|
@ -60,16 +60,12 @@
|
|||
}
|
||||
pick_obj.do_partial(cr, uid, [ref('stock_picking_out0')], partial_datas, context=context)
|
||||
-
|
||||
As the Invoice state of the picking order is To be invoiced. I create a record for create invoice.
|
||||
-
|
||||
!record {model: stock.invoice.onshipping, id: stock_invoice_onshipping_0}:
|
||||
invoice_date: '2010-08-04'
|
||||
journal_id: account.bank_journal
|
||||
-
|
||||
I create a Customer invoice for my outgoing picking order.
|
||||
As the Invoice state of the picking order is To be invoiced. I create invoice for my outgoing picking order.
|
||||
-
|
||||
!python {model: stock.invoice.onshipping}: |
|
||||
self.create_invoice(cr, uid, [ref("stock_invoice_onshipping_0")], {"lang": "en_US",
|
||||
wiz_id = self.create(cr, uid, {'invoice_date': '2010-08-04', 'journal_id': ref('account.bank_journal')},
|
||||
{'active_ids': [ref("stock_picking_out0")]})
|
||||
self.create_invoice(cr, uid, [wiz_id], {"lang": "en_US",
|
||||
"search_default_available": 1, "tz": False, "active_model": "stock.picking",
|
||||
"contact_display": "partner", "active_ids": [ref("stock_picking_out0")], "active_id": ref("stock_picking_out0")})
|
||||
-
|
||||
|
|
|
@ -201,11 +201,11 @@ class survey_browse_response(report_rml):
|
|||
for survey in surv_obj.browse(cr, uid, [response.survey_id.id]):
|
||||
tbl_width = float(_tbl_widths.replace('cm', ''))
|
||||
colwidth = "4.6cm,5cm," + str(tbl_width - 16.4) +"cm,4cm,3cm"
|
||||
resp_create = tools.ustr(time.strftime('%d-%m-%Y %I:%M:%S %p', time.strptime(response.date_create.split('.')[0], '%Y-%m-%d %H:%M:%S')))
|
||||
rml += """<blockTable colWidths='""" + colwidth + """' style="Table_heading">
|
||||
<tr>
|
||||
<td><para style="terp_tblheader_General_Centre">Answer Create Date:- </para></td>
|
||||
# *-* formatting hard coded, breaks with utf8
|
||||
<td><para style="terp_tblheader_General_Centre_simple">""" + to_xml(time.strftime('%d-%m-%Y %I:%M:%S %p', time.strptime(response.date_create.split('.')[0], '%Y-%m-%d %H:%M:%S'))) + """</para></td>
|
||||
<td><para style="terp_tblheader_General_Centre_simple">""" + to_xml(resp_create) + """</para></td>
|
||||
<td><para style="terp_tblheader_General_Centre"></para></td>
|
||||
<td><para style="terp_tblheader_General_right">Answer By:- </para></td>
|
||||
<td><para style="terp_tblheader_General_right_simple">""" + to_xml(response.user_id.login or '') + """</para></td>
|
||||
|
|
|
@ -1,21 +1,20 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
## -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# $Id$
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
# GNU Affero General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
@ -78,31 +77,42 @@ class survey_question_wiz(osv.osv_memory):
|
|||
sur_name_rec = surv_name_wiz.browse(cr, uid, wiz_id)
|
||||
context.update({'sur_name_id' :wiz_id})
|
||||
else:
|
||||
sur_name_rec = surv_name_wiz.browse(cr, uid, context.get('sur_name_id', False))
|
||||
sur_name_rec = surv_name_wiz.browse(cr, uid, context['sur_name_id'])
|
||||
|
||||
if context.has_key('active_id'):
|
||||
context.pop('active_id')
|
||||
|
||||
survey_id = context.get('survey_id', False)
|
||||
if not survey_id:
|
||||
return {}
|
||||
# Try one more time to find it
|
||||
if sur_name_rec.survey_id:
|
||||
survey_id = sur_name_rec.survey_id[0]
|
||||
else:
|
||||
# raise osv.except_osv(_('Error!'), _("Cannot locate survey for the question wizard!"))
|
||||
# If this function is called without a survey_id in
|
||||
# its context, it makes no sense to return any view.
|
||||
# Just return the default, empty view for this object,
|
||||
# in order to please random calls to this fn().
|
||||
return super(survey_question_wiz, self).\
|
||||
fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context,
|
||||
toolbar=toolbar, submenu=submenu)
|
||||
sur_rec = survey_obj.browse(cr, uid, survey_id)
|
||||
p_id = map(lambda x:x.id, sur_rec.page_ids)
|
||||
total_pages = len(p_id)
|
||||
pre_button = False
|
||||
readonly = 0
|
||||
|
||||
if context.has_key('response_id') and context.get('response_id', False) \
|
||||
if context.get('response_id', False) \
|
||||
and int(context['response_id'][0]) > 0:
|
||||
readonly = 1
|
||||
|
||||
if not sur_name_rec.page_no + 1 :
|
||||
surv_name_wiz.write(cr, uid, [context.get('sur_name_id',False)], {'store_ans':{}})
|
||||
surv_name_wiz.write(cr, uid, [context['sur_name_id'],], {'store_ans':{}})
|
||||
|
||||
sur_name_read = surv_name_wiz.browse(cr, uid, context.get('sur_name_id',False))
|
||||
sur_name_read = surv_name_wiz.browse(cr, uid, context['sur_name_id'])
|
||||
page_number = int(sur_name_rec.page_no)
|
||||
if sur_name_read.transfer or not sur_name_rec.page_no + 1:
|
||||
surv_name_wiz.write(cr, uid, [context.get('sur_name_id', False)], {'transfer':False})
|
||||
surv_name_wiz.write(cr, uid, [context['sur_name_id']], {'transfer':False})
|
||||
flag = False
|
||||
fields = {}
|
||||
if sur_name_read.page == "next" or sur_name_rec.page_no == -1:
|
||||
|
@ -123,7 +133,7 @@ class survey_question_wiz(osv.osv_memory):
|
|||
survey_obj.write(cr, uid, survey_id, {'state':'close', 'date_close':strftime("%Y-%m-%d %H:%M:%S")})
|
||||
|
||||
p_id = p_id[sur_name_rec.page_no + 1]
|
||||
surv_name_wiz.write(cr, uid, [context.get('sur_name_id', False)], {'page_no' : sur_name_rec.page_no + 1})
|
||||
surv_name_wiz.write(cr, uid, [context['sur_name_id'],], {'page_no' : sur_name_rec.page_no + 1})
|
||||
flag = True
|
||||
page_number += 1
|
||||
if sur_name_rec.page_no > - 1:
|
||||
|
@ -131,7 +141,7 @@ class survey_question_wiz(osv.osv_memory):
|
|||
else:
|
||||
if sur_name_rec.page_no != 0:
|
||||
p_id = p_id[sur_name_rec.page_no - 1]
|
||||
surv_name_wiz.write(cr, uid, [context.get('sur_name_id', False)],\
|
||||
surv_name_wiz.write(cr, uid, [context['sur_name_id'],],\
|
||||
{'page_no' : sur_name_rec.page_no - 1})
|
||||
flag = True
|
||||
page_number -= 1
|
||||
|
@ -144,6 +154,7 @@ class survey_question_wiz(osv.osv_memory):
|
|||
xml_group = etree.SubElement(xml_form, 'group', {'col': '1', 'colspan': '4'})
|
||||
if context.has_key('response_id') and context.get('response_id', False) \
|
||||
and int(context.get('response_id',0)[0]) > 0:
|
||||
# TODO: l10n, cleanup this code to make it readable. Or template?
|
||||
xml_group = etree.SubElement(xml_form, 'group', {'col': '40', 'colspan': '4'})
|
||||
record = sur_response_obj.browse(cr, uid, context['response_id'][context['response_no']])
|
||||
etree.SubElement(xml_group, 'label', {'string': to_xml(tools.ustr('Answer Of :- ' + record.user_id.name + ', Date :- ' + record.date_create.split('.')[0] )), 'align':"0.0"})
|
||||
|
|
|
@ -27,7 +27,7 @@ from tools.translate import _
|
|||
class survey_name_wiz(osv.osv_memory):
|
||||
_name = 'survey.name.wiz'
|
||||
|
||||
def default_get(self, cr, uid, fields, context={}):
|
||||
def default_get(self, cr, uid, fields, context=None):
|
||||
"""
|
||||
Set the default value in survey_id field. if open this wizard in survey form then set the default value in survey_id = active survey id.
|
||||
|
||||
|
@ -38,7 +38,7 @@ class survey_name_wiz(osv.osv_memory):
|
|||
@param context: A standard dictionary for contextual values
|
||||
@return : Dictionary value for created survey statistics report
|
||||
"""
|
||||
if not context:
|
||||
if context is None:
|
||||
context = {}
|
||||
data = super(survey_name_wiz, self).default_get(cr, uid, fields, context)
|
||||
if context.has_key('survey_id'):
|
||||
|
|
|
@ -1,22 +1,21 @@
|
|||
# -*- encoding: utf-8 -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
|
||||
# $Id$
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>)
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
# published by the Free Software Foundation, either version 3 of the
|
||||
# License, or (at your option) any later version
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
# GNU Affero General Public License for more details
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# You should have received a copy of the GNU Affero General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
|
|
Loading…
Reference in New Issue