openerp-dev-web team mailing list archive
-
openerp-dev-web team
-
Mailing list archive
-
Message #04283
lp:~openerp-dev/openobject-addons/addons-convert_training-room_intra_ysa into lp:~openobject-training/openobject-addons/training_with_history
Yogesh(Open ERP) has proposed merging lp:~openerp-dev/openobject-addons/addons-convert_training-room_intra_ysa into lp:~openobject-training/openobject-addons/training_with_history.
Requested reviews:
OpenObject Training (openobject-training)
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/addons-convert_training-room_intra_ysa/+merge/53756
training_room, training_intra:- convert into v6 and fix problem. training:- add button icon.
--
https://code.launchpad.net/~openerp-dev/openobject-addons/addons-convert_training-room_intra_ysa/+merge/53756
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-addons/addons-convert_training-room_intra_ysa.
=== modified file 'training/training_email_view.xml'
--- training/training_email_view.xml 2011-03-14 10:48:46 +0000
+++ training/training_email_view.xml 2011-03-17 09:08:29 +0000
@@ -234,7 +234,7 @@
<field name="search_view_id" ref="training_email_layout_search"/>
</record>
- <menuitem parent="training_config_mi" id="training_email_all_emails_mi" name="Emails" sequence='50'/>
+ <menuitem parent="training_config_mi" id="training_email_all_emails_mi" name="Emails" sequence='2'/>
<menuitem parent="training_email_all_emails_mi" id="training_email_all_mi"
action="training_email_all_act" sequence='1'/>
<menuitem parent="training_email_all_emails_mi" id="training_email_stylegroup_mi"
@@ -258,7 +258,7 @@
<separator string="Message" colspan="4" />
<field name="message" colspan="4" nolabel="1" />
<separator colspan="4" />
- <button name="action_send" string="Send Email" type="object" colspan="4" />
+ <button name="action_send" string="Send Email" type="object" colspan="4" icon="gtk-execute"/>
</form>
</field>
</record>
=== modified file 'training/training_holiday_view.xml'
--- training/training_holiday_view.xml 2011-03-14 10:48:46 +0000
+++ training/training_holiday_view.xml 2011-03-17 09:08:29 +0000
@@ -77,7 +77,7 @@
<field name="search_view_id" ref="holiday_period_search"/>
</record>
- <menuitem id="holiday_mi" name="Non-Working Days" parent="training_config_mi" sequence='60'/>
+ <menuitem id="holiday_mi" name="Non-Working Days" parent="training_config_mi" sequence='3'/>
<menuitem id="holiday_period_all_mi" action="holiday_period_all_act" parent="holiday_mi" />
<record model="ir.ui.view" id="holiday_year_tree">
=== modified file 'training/training_view.xml'
--- training/training_view.xml 2011-03-14 10:48:46 +0000
+++ training/training_view.xml 2011-03-17 09:08:29 +0000
@@ -483,12 +483,12 @@
<group colspan="4" col="6">
<field name="state" />
<button name="signal_validate" string="Validate" type="workflow" states="draft"
- confirm="Do you want to validate this catalog ?" />
+ icon="terp-document-new" confirm="Do you want to validate this catalog ?" />
<button name="signal_cancel" string="Cancel" type="workflow" states="validated,inprogress"
- confirm="Do you want to cancel this catalog ?"/>
- <button name="signal_inprogress" string="In Progress" type="workflow" states="validated" />
+ icon="gtk-cancel" confirm="Do you want to cancel this catalog ?"/>
+ <button name="signal_inprogress" string="In Progress" type="workflow" states="validated" icon="terp-accessories-archiver"/>
<button name="signal_deprecate" string="Deprecate" type="workflow" states="inprogress"
- confirm="Do you want to deprecate this catalog ?"/>
+ icon="gtk-execute" confirm="Do you want to deprecate this catalog ?"/>
</group>
</form>
</field>
@@ -633,12 +633,12 @@
<group colspan="4" col="3">
<field name="state" />
<group col="6" groups="training.group_session_manager">
- <button name="signal_open" string="Open" type="workflow" states="draft" confirm="Do you want to open this session ?"/>
- <button name="signal_open_confirm" string="Confirm" type="workflow" states="opened" confirm="Do you want to confirm this session ?" />
- <button name="signal_close_confirm" string="Close Subscriptions" type="workflow" states="opened_confirmed" confirm="Do you want to close the subscription for this session ?" />
- <button name="signal_inprogress" string="Start" type="workflow" states="closed_confirmed" confirm="Do you want to close this session for the subscription ?" />
- <button name="signal_close" string="Close" type="workflow" states="inprogress" confirm="Do you want to close this session ?" />
- <button name="signal_cancel" string="Cancel" type="workflow" states="draft,opened,opened_confirmed,closed_confirmed" confirm="Do you want to cancel this session ?"/>
+ <button name="signal_open" icon="gtk-ok" string="Open" type="workflow" states="draft" confirm="Do you want to open this session ?"/>
+ <button name="signal_open_confirm" icon="gtk-go-up" string="Confirm" type="workflow" states="opened" confirm="Do you want to confirm this session ?" />
+ <button name="signal_close_confirm" icon="gtk-close" string="Close Subscriptions" type="workflow" states="opened_confirmed" confirm="Do you want to close the subscription for this session ?" />
+ <button name="signal_inprogress" icon="gtk-ok" string="Start" type="workflow" states="closed_confirmed" confirm="Do you want to close this session for the subscription ?" />
+ <button name="signal_close" icon="gtk-close" string="Close" type="workflow" states="inprogress" confirm="Do you want to close this session ?" />
+ <button name="signal_cancel" icon="gtk-cancel" string="Cancel" type="workflow" states="draft,opened,opened_confirmed,closed_confirmed" confirm="Do you want to cancel this session ?"/>
</group>
</group>
</form>
@@ -777,9 +777,9 @@
<separator string="" colspan="4" />
<group colspan="4" col="5">
<field name="state" invisible="1" />
- <button string="Cancel" type="object" special="cancel" name="action_close" states="selection"/>
- <button string="Close" type="object" special="cancel" name="action_close" states="result" />
- <button string="Generate Reports" type="object" name="action_generate_zip" states="selection"/>
+ <button string="Cancel" icon="gtk-cancel" type="object" special="cancel" name="action_close" states="selection"/>
+ <button string="Close" icon="gtk-close" type="object" special="cancel" name="action_close" states="result" />
+ <button string="Generate Reports" icon="gtk-new" type="object" name="action_generate_zip" states="selection"/>
</group>
</form>
</field>
@@ -909,15 +909,15 @@
<group colspan="4" col="3">
<field name="state" />
<group col="5" groups="training.group_seance_manager">
- <button name="seance_confirm" string="Confirm" type="workflow" states="opened" confirm="Do you want to confirm this seance (procurements, ...) ?" />
- <button name="action_do_confirm" string="Re-generate Purchase" type="object" states="confirmed,inprogress" confirm="Are you sure you want to regenerate all purchases for this seance?" groups="training.group_seance_manager"/>
- <button name="signal_inprogress" string="Start" type="workflow" states="confirmed" confirm="Do you want to start this seance ?" />
- <button name="signal_close" string="Close" type="workflow" states="inprogress" confirm="Do you want to close this seance ?" />
- <button name="signal_cancel" string="Cancel" type="workflow" states="opened,confirmed" confirm="Do you want to cancel this seance ?" />
- <button name="signal_seance_done" string="Done" type="workflow" states="closed" />
+ <button name="seance_confirm" icon="gtk-go-up" string="Confirm" type="workflow" states="opened" confirm="Do you want to confirm this seance (procurements, ...) ?" />
+ <button name="action_do_confirm" icon="gtk-refresh" string="Re-generate Purchase" type="object" states="confirmed,inprogress" confirm="Are you sure you want to regenerate all purchases for this seance?" groups="training.group_seance_manager"/>
+ <button name="signal_inprogress" icon="gtk-ok" string="Start" type="workflow" states="confirmed" confirm="Do you want to start this seance ?" />
+ <button name="signal_close" icon="gtk-close" string="Close" type="workflow" states="inprogress" confirm="Do you want to close this seance ?" />
+ <button name="signal_cancel" icon="gtk-cancel" string="Cancel" type="workflow" states="opened,confirmed" confirm="Do you want to cancel this seance ?" />
+ <button name="signal_seance_done" icon="gtk-go-up" string="Done" type="workflow" states="closed" />
</group>
</group>
- <button name="%(seance_generate_zip_wizard_act)d" type="action" string="Generate Reports" colspan="4" groups="training.group_training"/>
+ <button name="%(seance_generate_zip_wizard_act)d" type="action" string="Generate Reports" colspan="4" groups="training.group_training" icon="gtk-execute"/>
</form>
</field>
</record>
@@ -1131,7 +1131,7 @@
<field name="paid" />
</group>
<group states="confirmed,done">
- <button name="action_create_invoice" string="Create Invoice" type="object" attrs="{'invisible': [('invoice_line_id', '!=', False)]}"/>
+ <button name="action_create_invoice" string="Create Invoice" icon="gtk-new" type="object" attrs="{'invisible': [('invoice_line_id', '!=', False)]}"/>
</group>
</group>
</group>
@@ -1160,9 +1160,9 @@
<group colspan="4" col="6">
<field name="state" />
<button string="Confirm Request" type="workflow" name="signal_confirm" states="draft"
- confirm="Do you want to confirm the request for this subscription ?" />
+ icon="gtk-go-up" confirm="Do you want to confirm the request for this subscription ?" />
<button string="Cancel" type="workflow" name="signal_cancel" states="draft"
- confirm="Do you want to cancel this subscription ?" />
+ icon="gtk-cancel" confirm="Do you want to cancel this subscription ?" />
</group>
</form>
</field>
@@ -1295,7 +1295,7 @@
<group states="end" colspan="4">
<label string="The operation has been done with success !" colspan="4" />
<separator string="" colspan="4" />
- <button name="action_done" string="Done" type="object" states="end" />
+ <button name="action_done" icon="gtk-ok" string="Done" type="object" states="end" />
</group>
<group col="7" colspan="4" attrs="{'invisible' : [('state', '=', 'end')]}">
@@ -1303,9 +1303,9 @@
<field name="state" invisible="1" />
<button name="action_cancel" string="Cancel" type="object" special="cancel" icon="gtk-cancel" states="init,replacement,postponement,cancellation"/>
<label string="" />
- <button name="action_cancellation" string="Cancellation" type="object" states="init" />
- <button name="action_replacement" string="Replacement" type="object" states="init" />
- <button name="action_postponement" string="Postponement" type="object" states="init" />
+ <button name="action_cancellation" string="Cancellation" type="object" states="init" icon="gtk-cancel"/>
+ <button name="action_replacement" string="Replacement" type="object" states="init" icon="gtk-refresh"/>
+ <button name="action_postponement" string="Postponement" type="object" states="init" icon="execute"/>
<label string="" />
<button name="action_apply" string="Apply" type="object" states="cancellation,replacement,postponement" icon="gtk-apply"/>
</group>
@@ -1355,7 +1355,7 @@
<field name="paid" />
</group>
<group states="confirmed,done" groups="training.group_training">
- <button name="action_create_invoice" string="Create Invoice" type="object"
+ <button name="action_create_invoice" string="Create Invoice" type="object" icon="gtk-new"
attrs="{'invisible': [('invoice_line_id', '!=', False)]}" />
</group>
</group>
@@ -1388,14 +1388,15 @@
<group col="9" colspan="4">
<field name="state" />
<button name="signal_confirm" string="Confirm" type="workflow" states="draft"
- confirm="Do you want to confirm this subscription line ?"/>
+ icon="gtk-go-up" confirm="Do you want to confirm this subscription line ?"/>
<button name="signal_cancel" string="Cancel" type="workflow" states="draft"
- confirm="Do you want to cancel this subscription line ?" />
+ icon="gtk-cancel" confirm="Do you want to cancel this subscription line ?" />
<button name="signal_invoice_and_send_emails" string="Cancel (Penalities)" type="workflow" states="confirmed"
- confirm="Do you want to cancel this subscription line ?" />
+ icon="gtk-cancel" confirm="Do you want to cancel this subscription line ?" />
<button name="%(training.subscription_cancellation_wizard_act)d"
string="Cancel (Free)"
type="action"
+ icon="gtk-cancel"
groups="training.group_subscription_manager"
states="confirmed"
context="{'default_state':'cancellation'}"
@@ -1403,18 +1404,20 @@
<button name="%(training.subscription_cancellation_wizard_act)d"
string="Replacement"
type="action"
+ icon="gtk-refresh"
states="confirmed"
groups="training.group_subscription_manager"
context="{'default_state':'replacement'}"
confirm="Do you want to do a replacement for this subscription line ?" />
<button name="%(training.subscription_cancellation_wizard_act)d"
string="Postponement"
+ icon="gtk-execute"
type="action"
states="confirmed"
groups="training.group_subscription_manager"
context="{'default_state':'postponement'}"
confirm="Do you want to postpone this subscription line ?" />
- <button name="signal_done" string="Done" type="workflow" states="confirmed" />
+ <button name="signal_done" string="Done" type="workflow" states="confirmed" icon="gtk-go-up"/>
</group>
</form>
</field>
@@ -1566,8 +1569,8 @@
<form string="Procurements Update">
<group colspan="4" col="2" states="confirm">
<label string="Are you sure you want to update procurements all opened seance in all future session?" colspan="2"/>
- <button string="Cancel" special="cancel" name="action_close"/>
- <button string="Confirm" type="object" name="action_confirm"/>
+ <button string="Cancel" special="cancel" name="action_close" icon="gtk-cancel"/>
+ <button string="Confirm" type="object" name="action_confirm" icon="gtk-go-up"/>
</group>
<group colspan="4" col="4" states="update" expand="1">
<field name="name"/>
@@ -1687,10 +1690,12 @@
</field>
<button name="action_load_procurements"
type="object"
+ icon="gtk-execute"
string="Load Procurements From Courses" colspan="4"
attrs="{'invisible' : [('state', '=', 'validated')]}"/>
<button name="%(training_offer_purchase_line_wizard_act)d"
type="action"
+ icon="gtk-execute"
string="Update Seance Procurments" colspan="4"/>
</page>
<page string="Pedagogical Suggestion">
@@ -1717,12 +1722,12 @@
<group col="5" colspan="4">
<field name="state" />
<button name="signal_validate" string="Validate" type="workflow" states="draft"
- confirm="Do you want to validate this offer ?"/>
+ icon="gtk-new" confirm="Do you want to validate this offer ?"/>
<button name="signal_deprecate" string="Deprecate" type="workflow" states="validated,draft"
- confirm="Do you want to deprecate this offer ?" />
+ icon="gtk-execute" confirm="Do you want to deprecate this offer ?" />
<button name="draft_cb" string="Draft" type="object" states="validated,deprecated"
confirm="Are you sure to reset to Draft (Check the sessions for this offer) ?"
- groups="training.group_offer_manager" />
+ groups="training.group_offer_manager" icon="gtk-new"/>
</group>
</form>
</field>
@@ -1823,7 +1828,7 @@
<menuitem id="training_config_mi" parent="training_mi" name="Configuration" sequence="1"/>
- <menuitem id="training_config_library_mi" parent="training_config_mi" name="Library" />
+ <menuitem id="training_config_library_mi" parent="training_config_mi" name="Library" sequence="1"/>
<menuitem id="training_config_library_categ_mi" parent="training_config_library_mi" name="Categorisation" sequence='10'/>
<menuitem id="course_theme_all_mi" parent="training_config_library_categ_mi" action="course_theme_all_act" sequence='10'/>
@@ -1999,8 +2004,8 @@
<field name="price" />
<field name="purchase_order_id" groups="training.group_training" />
<button type="object" name="action_create_purchase_order" string="Create Purchase Order"
- attrs="{'invisible' : [('purchase_order_id', '!=', False)]}" icon="gtk-new"
- groups="training.group_training"/>
+ attrs="{'invisible' : [('purchase_order_id', '!=', False)]}"
+ groups="training.group_training" icon="gtk-new"/>
<field name="amount_to_pay" groups="training.group_training" />
<field name="purchase_paid" groups="training.group_training" select="2"/>
</group>
@@ -2039,7 +2044,7 @@
states="draft,valid,requested,accepted"
groups="training.group_request_manager"
confirm="Do you want to cancel this request ?" />
- <button type="workflow" name="pshr_done" string="Done" states="accepted" groups="training.group_request_manager"/>
+ <button type="workflow" name="pshr_done" string="Done" icon="gtk-ok" states="accepted" groups="training.group_request_manager"/>
</group>
</form>
</field>
=== renamed file 'training_intra/__terp__.py' => 'training_intra/__openerp__.py'
=== modified file 'training_intra/report/detail_offer_intra.py'
--- training_intra/report/detail_offer_intra.py 2010-10-08 07:14:40 +0000
+++ training_intra/report/detail_offer_intra.py 2011-03-17 09:08:29 +0000
@@ -56,6 +56,8 @@
class report_sxw_offer_intra_detail(report_sxw.report_sxw):
def create_single_pdf(self, cr, uid, ids, data, report_xml, context=None):
+ if context is None:
+ context = {}
pool = pooler.get_pool(cr.dbname)
offer_pool = pool.get('training.offer')
sale_order_report = netsvc.LocalService('report.sale.order')
=== modified file 'training_intra/training_intra.py'
--- training_intra/training_intra.py 2011-02-25 12:33:02 +0000
+++ training_intra/training_intra.py 2011-03-17 09:08:29 +0000
@@ -21,10 +21,11 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
############################################################################################
-from osv import osv, fields
-import tools
-from tools import config
+
+from osv import osv
+from osv import fields
from tools.translate import _
+import decimal_precision as dp
class sale_order(osv.osv):
_inherit = 'sale.order'
@@ -41,11 +42,7 @@
_columns = {
'offer_partner_id' : fields.related('offer_id', 'partner_id', type='many2one', relation='res.partner', readonly=True, string='Partner', select=1),
'offer_sale_order_id' : fields.related('offer_id', 'sale_order_id', type='many2one', relation='sale.order', readonly=True, string='Sale Order', select=1),
- 'offer_sale_order_state' : fields.related('offer_id', 'sale_order_id',
- 'state',
- string="Sale Order's State",
- type='selection',
- readonly=True,
+ 'offer_sale_order_state' : fields.related('offer_id', 'sale_order_id', 'state', string="Sale Order's State", type='selection', readonly=True,
selection=[
('draft','Quotation'),
('waiting_date','Waiting Schedule'),
@@ -62,9 +59,7 @@
def on_change_offer(self, cr, uid, ids, offer_id, context=None):
if not offer_id:
return False
-
offer = self.pool.get('training.offer').browse(cr, uid, offer_id, context=context)
-
return {
'value' : {
'kind' : offer.kind,
@@ -83,7 +78,6 @@
def _is_intra_search(self, cr, uid, obj, name, args, context=None):
if not len(args):
return []
-
cr.execute("""
SELECT DISTINCT(tssr.seance_id)
FROM training_session_seance_rel tssr,
@@ -101,26 +95,15 @@
def _is_intra_compute(self, cr, uid, ids, fields, args, context=None):
res = dict.fromkeys(ids, 0)
-
for obj in self.browse(cr, uid, ids, context=context):
res[obj.id] = all(session.kind == 'intra' for session in obj.session_ids)
-
return res
_columns = {
- 'is_intra' : fields.function(_is_intra_compute,
- method=True,
- fnct_search=_is_intra_search,
- type='boolean',
- string='Is Intra'),
-
+ 'is_intra' : fields.function(_is_intra_compute, method=True, fnct_search=_is_intra_search, type='boolean', string='Is Intra'),
'partner_id' : fields.related('session_ids', 'offer_id', 'partner_id', type='many2one', relation='res.partner', readonly=True, string='Partner', select=1),
'sale_order_id' : fields.related('session_ids', 'offer_id', 'sale_order_id', type='many2one', relation='sale.order', readonly=True, string='Sale Order'),
- 'sale_order_state' : fields.related('session_ids', 'offer_id', 'sale_order_id',
- 'state',
- string="Sale Order's State",
- type='selection',
- readonly=True,
+ 'sale_order_state' : fields.related('session_ids', 'offer_id', 'sale_order_id', 'state', string="Sale Order's State", type='selection', readonly=True,
selection=[
('draft','Quotation'),
('waiting_date','Waiting Schedule'),
@@ -131,7 +114,6 @@
('done','Done'),
('cancel','Cancel'),
],
- select=1
),
}
@@ -141,6 +123,10 @@
_inherit = 'training.seance.purchase_line'
def _get_analytic_account_id(self, cr, uid, ids, context=None):
+ if not ids:
+ return False
+ if context is None:
+ context = {}
po_line = self.browse(cr, uid, ids[0], context=context)
if po_line.seance_id.is_intra:
offer_record = po_line.seance_id.session_ids[0].offer_id
@@ -157,38 +143,29 @@
_name = 'training.intra.budget.tpl'
def _amount_all(self, cr, uid, ids, fieldnames, args, context=None):
+ if context is None:
+ context = {}
res = {}
-
for obj in self.browse(cr, uid, ids, context=context):
values = {'costs' : 0.0, 'revenues' : 0.0, 'balance' : 0.0}
-
for line in obj.line_ids:
if line.type == 'cost':
values['costs'] += line.price
else:
values['revenues'] += line.price
-
values['balance'] = values['revenues'] - values['costs']
-
res[obj.id] = values
-
return res
_columns = {
'name' : fields.char('Name', size=64, required=True),
'line_ids' : fields.one2many('training.intra.budget.tpl.line', 'template_id', 'Budget Intra Template Lines'),
- 'costs' : fields.function(_amount_all, method=True, multi="compute", string="Costs",
- type="float",
- store=True,
- readonly=True,
- digits=(16, int(config['price_accuracy']))
- ),
+ 'costs' : fields.function(_amount_all, method=True, multi="compute", string="Costs", type="float", store=True,
+ readonly=True, digits_compute=dp.get_precision('Account')),
'revenues' : fields.function(_amount_all, method=True, multi="compute", string="Revenues", type="float", store=True, readonly=True,
- digits=(16, int(config['price_accuracy']))
- ),
+ digits_compute=dp.get_precision('Account')),
'balance' : fields.function(_amount_all, method=True, multi="compute", string="Balance", type="float", store=True, readonly=True,
- digits=(16, int(config['price_accuracy']))
- ),
+ digits_compute=dp.get_precision('Account')),
}
training_intra_budget_tpl()
@@ -198,10 +175,8 @@
def _price_compute(self, cr, uid, ids, fieldnames, args, context=None):
res = dict.fromkeys(ids, 0.0)
-
for obj in self.browse(cr, uid, ids, context=context):
res[obj.id] = obj.product_qty * obj.unit_price
-
return res
_columns = {
@@ -210,13 +185,9 @@
'product_id' : fields.many2one('product.product', 'Product', required=True),
'product_qty' : fields.float('Quantity', required=True),
'product_uom' : fields.many2one('product.uom', 'Product UoM', required=True),
- 'unit_price' : fields.float('Unit Price', required=True, digits=(16, int(config['price_accuracy']))),
- 'price' : fields.function(_price_compute,
- method=True,
- store=True,
- string='Subtotal',
- digits=(16, int(config['price_accuracy'])),
- type='float'),
+ 'unit_price' : fields.float('Unit Price', required=True, digits_compute=dp.get_precision('Account')),
+ 'price' : fields.function(_price_compute, method=True, store=True, string='Subtotal',
+ digits_compute=dp.get_precision('Account'), type='float'),
'type' : fields.selection([('cost', 'Cost'),('revenue', 'Revenue')], 'Type', required=True),
}
@@ -333,39 +304,22 @@
return res
_columns = {
- 'intra_session_started': fields.function(
- _is_intra_started,
- fnct_search=_is_intra_started_search,
- type='boolean',
- string='Is Intra Session Started',
- method=True,
- readonly=True),
- 'costs' : fields.function(_amount_all,
- method=True,
- multi="compute",
- string="Costs",
- digits=(16, int(config['price_accuracy'])),
- type="float",
+ 'intra_session_started': fields.function(_is_intra_started, fnct_search=_is_intra_started_search, type='boolean',
+ string='Is Intra Session Started', method=True, readonly=True),
+ 'costs' : fields.function(_amount_all, method=True, multi="compute", string="Costs", digits_compute=dp.get_precision('Account'),
+ type="float",readonly=True
#store={
# 'training.intra.budget.line' : (_get_offer, None, 10),
#},
- readonly=True),
- 'revenues' : fields.function(_amount_all,
- method=True,
- multi="compute",
- string="Revenues",
- digits=(16, int(config['price_accuracy'])),
- type="float",
+ ),
+ 'revenues' : fields.function(_amount_all, method=True, multi="compute", string="Revenues",
+ digits_compute=dp.get_precision('Account'), type="float",
#store={
# 'training.intra.budget.line' : (_get_offer, None, 10),
#},
readonly=True),
- 'balance' : fields.function(_amount_all,
- method=True,
- multi="compute",
- string="Balance",
- digits=(16, int(config['price_accuracy'])),
- type="float",
+ 'balance' : fields.function(_amount_all, method=True, multi="compute", string="Balance",
+ digits_compute=dp.get_precision('Account'), type="float",
#store={
# 'training.intra.budget.line' : (_get_offer, None, 10),
#},
@@ -375,16 +329,10 @@
'address_id' : fields.many2one('res.partner.address', 'Address'),
'job_id' : fields.many2one('res.partner.job', 'Contact'),
'job_email' : fields.char('Email', size=64),
-
'analytic_account_id': fields.many2one('account.analytic.account', 'Analytic Account'),
-
'sale_order_id' : fields.many2one('sale.order', 'Sale Order', readonly=True),
'sale_order_create_date' : fields.related('sale_order_id', 'create_date', type='datetime', readonly=True, string="Sale Order's Create Date"),
- 'sale_order_state' : fields.related('sale_order_id',
- 'state',
- string="Sale Order's State",
- type='selection',
- readonly=True,
+ 'sale_order_state' : fields.related('sale_order_id', 'state', string="Sale Order's State", type='selection', readonly=True,
selection=[
('draft','Quotation'),
('waiting_date','Waiting Schedule'),
@@ -395,38 +343,28 @@
('done','Done'),
('cancel','Cancel'),
],
- select=1
),
-
'budget_intra_template_id' : fields.many2one('training.intra.budget.tpl', 'Budget Intra Template'),
'budget_intra_line_ids' : fields.one2many('training.intra.budget.line', 'offer_id', 'Budget Intra Lines'),
'attachment_id' : fields.many2one('ir.attachment', 'Support of Course', domain="[('res_model', '=', 'training.course'),('type', '=', 'course_material')]"),
- 'attachment_price' : fields.related('attachment_id', 'price', type='float',
- digits=(16, int(config['price_accuracy'])),
- string="Support's Price", readonly=True),
+ 'attachment_price' : fields.related('attachment_id', 'price', type='float', string="Support's Price", readonly=True,
+ digits_compute=dp.get_precision('Account')),
'note_intra' : fields.text('Note'), # note for internal usage
'remark_intra' : fields.text('Remark(s)'), # node for client usage
'coordinator' : fields.many2one('res.users', 'Coordinator'),
-
'number_of_sessions' : fields.integer('Number of Sessions'),
'number_of_participants' : fields.integer('Number of Participants', help='The number of participants of all sessions'),
'max_participants_seance' : fields.integer('Maximum of Participants per Seance'),
'approved_by' : fields.many2one('res.users', 'Approved By'),
'lecturer_id' : fields.many2one('res.partner.job', 'Lecturer'),
'location_id' : fields.many2one('training.location', 'Location'),
-
'state' : fields.selection([('draft', 'Draft'),
('validated', 'Validated'),
('deprecated', 'Deprecated'),
('refused', 'Refused'),
('done', 'Done'),
],
- 'State',
- required=True,
- readonly=True,
- select=1,
- help="The status of the course",
- ),
+ 'State', required=True, readonly=True, help="The status of the course"),
}
_defaults = {
@@ -435,10 +373,12 @@
'number_of_participants' : lambda *a: 12,
}
-
def action_add_costs(self, cr, uid, ids, context=None):
+ if not ids:
+ return False
+ if context is None:
+ context = {}
this = self.browse(cr, uid, ids[0], context=context)
-
proxy = self.pool.get('training.intra.budget.line')
for course in this.course_ids:
for proc_line in course.course_id.purchase_line_ids:
@@ -465,7 +405,6 @@
'course_id' : course.course_id.id,
}
proxy.create(cr, uid, values, context=context)
-
return True
def action_compute_values(self, cr, uid, ids, context=None):
@@ -475,13 +414,11 @@
email = ''
if job_id:
email = self.pool.get('res.partner.job').browse(cr, uid, job_id, context=context).email or ''
-
return {'value' : {'job_email' : email}}
def on_change_partner(self, cr, uid, ids, partner_id, context=None):
if not partner_id:
return {'value' : {'address_id' : 0}}
-
partner = self.pool.get('res.partner').browse(cr, uid, partner_id, context=context)
if partner.address:
return {'value' : {'address_id' : partner.address[0].id}}
@@ -491,16 +428,12 @@
def on_change_budget_intra_template(self, cr, uid, ids, tpl_id, context=None):
if not tpl_id:
return False
-
if not ids:
return False
-
his = self.browse(cr, uid, ids[0], context=context)
-
tpl_line_proxy = self.pool.get('training.intra.budget.tpl.line')
line_proxy = self.pool.get('training.intra.budget.line')
line_ids = tpl_line_proxy.search(cr, uid, [('template_id', '=', tpl_id)], context=context)
-
new_line_ids = []
for line in tpl_line_proxy.browse(cr, uid, line_ids, context=context):
values = {
@@ -512,7 +445,6 @@
'type' : line.type,
}
new_line_ids.append(line_proxy.create(cr, uid, values, context=context))
-
return {
'value' : {
'budget_intra_line_ids': new_line_ids
@@ -520,7 +452,15 @@
}
def action_create_quotation(self, cr, uid, ids, context=None):
-
+ if not ids:
+ return False
+ if context is None:
+ context = {}
+ proxy_adist = self.pool.get('account.analytic.plan.instance')
+ proxy_adistline = self.pool.get('account.analytic.plan.instance.line')
+ proxy = self.pool.get('sale.order')
+ proxy_line = self.pool.get('sale.order.line')
+ journal_proxy = self.pool.get('account.journal')
this = self.browse(cr, uid, ids[0], context=context)
if not this.partner_id:
@@ -533,10 +473,6 @@
if not len(this.course_ids):
raise osv.except_osv(_('Warning'),
_('The list of courses is empty !'))
-
- proxy = self.pool.get('sale.order')
- proxy_line = self.pool.get('sale.order.line')
-
values = {
'partner_id' : this.partner_id.id,
'pricelist_id' : this.partner_id.property_product_pricelist.id,
@@ -559,10 +495,6 @@
raise osv.except_osv(_('Error'),
_("The following course has not a valid duration \"%s\" (%d)") % (course_rel.course_id.name, course_rel.course_id.id))
total_duration += course_rel.course_id.duration
- proxy_adist = self.pool.get('account.analytic.plan.instance')
- proxy_adistline = self.pool.get('account.analytic.plan.instance.line')
-
- journal_proxy = self.pool.get('account.journal')
journal_sales_srch = journal_proxy.search(cr, uid, [('type','=','sale'),('refund_journal','=',False)])
journal_sales = journal_proxy.browse(cr, uid, journal_sales_srch)[0]
@@ -648,7 +580,6 @@
def _price_compute(self, cr, uid, ids, fieldnames, args, context=None):
res = dict.fromkeys(ids, 0.0)
-
for obj in self.browse(cr, uid, ids, context=context):
res[obj.id] = obj.product_qty * obj.unit_price * (obj.number_of_seances or 1.0)
@@ -656,21 +587,12 @@
_columns = {
'offer_id' : fields.many2one('training.offer', 'Offer', select=1),
-
'description' : fields.char('Description', size=128, required=True),
'product_id' : fields.many2one('product.product', 'Product', select=1),
'product_qty' : fields.float('Quantity', required=True),
'product_uom' : fields.many2one('product.uom', 'Product UoM', required=True),
- 'unit_price' : fields.float('Unit Price', required=True,
- digits=(16, int(config['price_accuracy'])),
- ),
- 'price' : fields.function(_price_compute,
- method=True,
- string='Price',
- store=True,
- select=2,
- digits=(16, int(config['price_accuracy'])),
- type='float'),
+ 'unit_price' : fields.float('Unit Price', required=True, digits_compute=dp.get_precision('Account')),
+ 'price' : fields.function(_price_compute, method=True, string='Price', store=True, digits_compute=dp.get_precision('Account'), type='float'),
'number_of_seances' : fields.integer('Recurrence', required=True),
'type' : fields.selection([('cost', 'Cost'),('revenue', 'Revenue')], 'Type', required=True, select=1),
'course_id' : fields.many2one('training.course', 'Course', select=1),
=== modified file 'training_intra/training_intra_view.xml'
--- training_intra/training_intra_view.xml 2011-02-23 12:44:45 +0000
+++ training_intra/training_intra_view.xml 2011-03-17 09:08:29 +0000
@@ -56,7 +56,23 @@
</field>
</record>
- <record model="ir.ui.view" id="budget_intra_tpl_form">
+ <record model="ir.ui.view" id="budget_intra_tpl_line_search">
+ <field name="name">training.intra.budget.tpl.line.search</field>
+ <field name="model">training.intra.budget.tpl.line</field>
+ <field name="type">search</field>
+ <field name="arch" type="xml">
+ <search string="Search Training Intra Budget">
+ <field name="product_id"/>
+ <field name="type"/>
+ <newline/>
+ <group expand="0" string="Group By..." colspan="4">
+ <filter string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'type'}"/>
+ </group>
+ </search>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="view_budget_intra_tpl_form">
<field name="name">training.intra.budget.tpl.form</field>
<field name="model">training.intra.budget.tpl</field>
<field name="type">form</field>
@@ -73,11 +89,39 @@
</field>
</record>
+ <record model="ir.ui.view" id="view_budget_intra_tpl_tree">
+ <field name="name">training.intra.budget.tpl.tree</field>
+ <field name="model">training.intra.budget.tpl</field>
+ <field name="type">tree</field>
+ <field name="arch" type="xml">
+ <tree string="Budget Template">
+ <field name="name"/>
+ <field name="costs"/>
+ <field name="revenues"/>
+ <field name="balance"/>
+ </tree>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="view_budget_intra_tpl_search">
+ <field name="name">training.intra.budget.tpl.search</field>
+ <field name="model">training.intra.budget.tpl</field>
+ <field name="type">search</field>
+ <field name="arch" type="xml">
+ <search string="Budget Template">
+ <field name="name"/>
+ <field name="revenues"/>
+ <field name="balance"/>
+ </search>
+ </field>
+ </record>
+
<record model="ir.actions.act_window" id="budget_intra_tpl_all_act">
<field name="name">Budget Templates</field>
<field name="res_model">training.intra.budget.tpl</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
+ <field name="search_view_id" ref="view_budget_intra_tpl_search"/>
</record>
<menuitem parent="training.training_config_mi" id="budget_intra_tpl_all_mi" action="budget_intra_tpl_all_act" />
@@ -177,7 +221,7 @@
</field>
</record>
- <act_window
+ <act_window
name="Sale Order"
src_model="training.offer"
res_model="sale.order"
@@ -186,26 +230,26 @@
id="sale_order_offer_rel"
domain="[('id', '=', sale_order_id)]" />
- <act_window id="training_intra_sale_order_invoice_link"
- name="Invoices"
- src_model="sale.order"
- res_model="account.invoice"
- view_mode="tree,form"
- groups="base.group_user"
- domain="[('id','in',(invoice_ids and invoice_ids[0][2] or []))]"/>
-
- <record id="training_intra_so_link_view1" model="ir.actions.act_window.view">
- <field name="sequence" eval="1"/>
- <field name="view_mode">tree</field>
- <field name="act_window_id" ref="training_intra_sale_order_invoice_link"/>
- </record>
-
- <record id="training_intra_so_link_view2" model="ir.actions.act_window.view">
- <field name="sequence" eval="2"/>
- <field name="view_mode">form</field>
- <field name="view_id" ref="account.invoice_form"/>
- <field name="act_window_id" ref="training_intra_sale_order_invoice_link"/>
- </record>
+ <act_window id="training_intra_sale_order_invoice_link"
+ name="Invoices"
+ src_model="sale.order"
+ res_model="account.invoice"
+ view_mode="tree,form"
+ groups="base.group_user"
+ domain="[('id','in',(invoice_ids and invoice_ids[0][2] or []))]"/>
+
+ <record id="training_intra_so_link_view1" model="ir.actions.act_window.view">
+ <field name="sequence" eval="1"/>
+ <field name="view_mode">tree</field>
+ <field name="act_window_id" ref="training_intra_sale_order_invoice_link"/>
+ </record>
+
+ <record id="training_intra_so_link_view2" model="ir.actions.act_window.view">
+ <field name="sequence" eval="2"/>
+ <field name="view_mode">form</field>
+ <field name="view_id" ref="account.invoice_form"/>
+ <field name="act_window_id" ref="training_intra_sale_order_invoice_link"/>
+ </record>
<record model="ir.ui.view" id="budget_intra_line_tree">
<field name="name">training.intra.budget.line.tree</field>
@@ -215,7 +259,7 @@
<tree string="Budget Lines" editable="bottom">
<field name="offer_id" invisible="1" />
<field name="number_of_seances" />
- <field name="course_id" context="{'offer_id' : offer_id}" />
+ <field name="course_id" context="{'offer_id' : offer_id}" />
<field name="type" on_change="on_change_product(type, product_id)" />
<field name="product_id" on_change="on_change_product(type, product_id)" />
<field name="description" />
@@ -242,13 +286,29 @@
<field name="type" on_change="on_change_product(type, product_id)" />
<field name="unit_price" />
<field name="number_of_seances" />
- <field name="course_id" context="{'offer_id' : offer_id}" />
+ <field name="course_id" context="{'offer_id' : offer_id}" />
<field name="offer_id" invisible="1" />
</form>
</field>
</record>
-
+ <record model="ir.ui.view" id="budget_intra_line_search">
+ <field name="name">training.intra.budget.line.search</field>
+ <field name="model">training.intra.budget.line</field>
+ <field name="type">search</field>
+ <field name="arch" type="xml">
+ <search string="Budget Lines">
+ <field name="offer_id"/>
+ <field name="course_id"/>
+ <field name="type"/>
+ <field name="product_id"/>
+ <newline/>
+ <group expand="0" string="Group By..." colspan="4">
+ <filter string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'type'}"/>
+ </group>
+ </search>
+ </field>
+ </record>
<record model="ir.ui.view" id="course_form">
<field name="name">training.course.form.intra</field>
@@ -271,71 +331,62 @@
<field name="priority">20</field>
<field name="arch" type="xml">
<tree string="Offers">
- <field name="name" />
- <field name="type_id" />
- <field name="partner_id" select="1" />
- <field name="responsible" select="1" />
+ <field name="name"/>
+ <field name="kind"/>
+ <field name="type_id"/>
+ <field name="partner_id" select="1"/>
+ <field name="responsible" select="1"/>
<field name="create_date" select="1"/>
- <field name="is_standalone" />
- <field name="state" />
- <field name="costs"/>
- <field name="revenues"/>
- <field name="sale_order_id" />
- <field name="sale_order_create_date" />
+ <field name="is_standalone"/>
+ <field name="state"/>
+ <field name="costs"/>
+ <field name="revenues"/>
+ <field name="sale_order_id"/>
+ <field name="sale_order_create_date"/>
<field name="sale_order_state" select="1"/>
</tree>
</field>
</record>
+ <record model="ir.ui.view" id="view_training_intra_offer_search">
+ <field name="name">training.offer.search</field>
+ <field name="model">training.offer</field>
+ <field name="type">search</field>
+ <field name="arch" type="xml">
+ <search string="Search Training Offer">
+ <group col='10' colspan='4'>
+ <filter icon="terp-document-new" string="Draft" domain="[('state','=', 'draft')]"/>
+ <filter icon="terp-accessories-archiver" string="Validated" domain="[('state','=', 'validated')]"/>
+ <filter icon="terp-dialog-close" string="Deprecated" domain="[('state','=', 'deprecated')]"/>
+ <filter icon="gtk-go-up" string="Done" domain="[('state','=', 'done')]"/>
+ <filter icon="gtk-refresh" string="Refused" domain="[('state','=', 'refused')]"/>
+ <separator orientation="vertical"/>
+ <field name="name"/>
+ <field name="type_id"/>
+ <field name="kind"/>
+ </group>
+ <newline/>
+ <group expand="0" string="Group By..." colspan="4" col="20">
+ <filter string="Category" icon="terp-personal" domain="[]" context="{'group_by':'categorie_id'}"/>
+ <filter string="kind" icon="terp-report" domain="[]" context="{'group_by':'kind'}"/>
+ <filter string="Type" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'type_id'}"/>
+ <filter string="Product" icon="terp-stage" domain="[]" context="{'group_by':'product_id'}"/>
+ <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
+ </group>
+ </search>
+ </field>
+ </record>
+
<record model="ir.actions.act_window" id="training_offer_intra_act">
- <field name="name">Intra</field>
+ <field name="name">Intra Offers</field>
<field name="res_model">training.offer</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="training_offer_intra_tree" />
<field name="domain">[('kind', '=', 'intra')]</field>
- </record>
- <menuitem id="training_offer_intra_mi" parent="training.training_offer_mi" action="training_offer_intra_act" sequence="2"/>
-
- <record model="ir.actions.act_window" id="training_offer_validated_intra_act">
- <field name="name">Validated Intra Offers</field>
- <field name="res_model">training.offer</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- <field name="view_id" ref="training_offer_intra_tree" />
- <field name="domain">[('kind', '=', 'intra'),('state', '=', 'validated')]</field>
- </record>
- <menuitem id="training_offer_validated_intra_mi" parent="training_offer_intra_mi" action="training_offer_validated_intra_act" sequence="2"/>
-
- <record model="ir.actions.act_window" id="training_offer_draft_intra_act">
- <field name="name">Draft Intra Offers</field>
- <field name="res_model">training.offer</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- <field name="view_id" ref="training_offer_intra_tree" />
- <field name="domain">[('kind', '=', 'intra'),('state', '=', 'draft')]</field>
- </record>
- <menuitem id="training_offer_draft_intra_mi" parent="training_offer_intra_mi" action="training_offer_draft_intra_act" sequence="2"/>
-
- <record model="ir.actions.act_window" id="training_offer_deprecated_intra_act">
- <field name="name">Deprecated Intra Offers</field>
- <field name="res_model">training.offer</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- <field name="view_id" ref="training_offer_intra_tree" />
- <field name="domain">[('kind', '=', 'intra'),('state', '=', 'deprecated')]</field>
- </record>
- <menuitem id="training_offer_deprecated_intra_mi" parent="training_offer_intra_mi" action="training_offer_deprecated_intra_act" sequence="2"/>
-
- <record model="ir.actions.act_window" id="training_offer_intra_notdone_notcancelled_act">
- <field name="name">Not Done, Not Cancelled Intra Offers</field>
- <field name="res_model">training.offer</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- <field name="view_id" ref="training_offer_intra_tree"/>
- <field name="domain">[('kind', '=', 'intra'),('state', 'not in', ['cancelled','done'])]</field>
- </record>
- <menuitem id="training_offer_intra_notdone_notcancelled_mi" parent="training_offer_intra_mi" action="training_offer_intra_notdone_notcancelled_act"/>
+ <field name="search_view_id" ref="view_training_intra_offer_search"/>
+ </record>
+ <menuitem id="training_offer_intra_mi" parent="training.training_library_mi" action="training_offer_intra_act" sequence="20"/>
<!-- contact function 'intra' doesn't exists -> choose 'standard' lecturers... -->
<record model='ir.ui.view' id="training_session_form_inherit">
@@ -386,26 +437,6 @@
</field>
</record>
- <record model="ir.actions.act_window" id="intra_session_all_act">
- <field name="name">Intra Sessions</field>
- <field name="res_model">training.session</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- <field name="domain">[('kind', '=', 'intra')]</field>
- </record>
-
- <menuitem id="intra_session_all_mi" parent="training.training_planning_session_future_all_mi" action="intra_session_all_act" />
-
- <record model="ir.actions.act_window" id="intra_seance_all_act">
- <field name="name">Intra Seances</field>
- <field name="res_model">training.seance</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,form</field>
- <field name="domain">[('is_intra', '=', 1)]</field>
- </record>
-
- <menuitem id="intra_seance_all_mi" parent="training.training_planning_future_seances_mi" action="intra_seance_all_act"/>
-
<record model='ir.ui.view' id="training_seance_form_inherit">
<field name="name">training_intra.seance.form.inherit</field>
<field name="model">training.seance</field>
=== modified file 'training_room/__init__.py'
--- training_room/__init__.py 2011-02-25 12:33:02 +0000
+++ training_room/__init__.py 2011-03-17 09:08:29 +0000
@@ -1,7 +1,7 @@
# -*- encoding: utf-8 -*-
############################################################################################
#
-# OpenERP, Open Source Management Solution
+# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# Copyright (C) 2008-2009 AJM Technologies S.A. (<http://www.ajm.lu). All Rights Reserved
# Copyright (C) 2010-2011 Thamini S.Ã .R.L (<http://www.thamini.com>). All Rights Reserved
@@ -24,3 +24,5 @@
import training_room
import wizard
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== renamed file 'training_room/__terp__.py' => 'training_room/__openerp__.py'
--- training_room/__terp__.py 2011-02-25 12:33:02 +0000
+++ training_room/__openerp__.py 2011-03-17 09:08:29 +0000
@@ -1,7 +1,7 @@
# -*- encoding: utf-8 -*-
############################################################################################
#
-# OpenERP, Open Source Management Solution
+# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# Copyright (C) 2008-2009 AJM Technologies S.A. (<http://www.ajm.lu). All Rights Reserved
# Copyright (C) 2010-2011 Thamini S.Ã .R.L (<http://www.thamini.com>). All Rights Reserved
@@ -35,7 +35,7 @@
'demo_xml' : [ ],
'update_xml' : [
'training_room_view.xml',
- 'wizard/wizard_create_session_i_view.xml',
+ 'wizard/training_create_session_wizard_view.xml',
'security/ir.model.access.csv',
],
'active' : False,
=== modified file 'training_room/training_room.py'
--- training_room/training_room.py 2011-02-25 12:33:02 +0000
+++ training_room/training_room.py 2011-03-17 09:08:29 +0000
@@ -30,9 +30,8 @@
_inherit = 'res.partner'
_columns = {
- 'notify_location' : fields.many2one('res.partner.job',
- 'Notification for Location',
- domain="[('name', '=', active_id),('state', '=', 'current')]"),
+ 'notify_location' : fields.many2one('res.partner.job', 'Notification for Location',
+ domain="[('name', '=', active_id),('state', '=', 'current')]"),
}
res_partner()
@@ -54,10 +53,11 @@
}
def name_get(self, cr, uid, ids, context=None):
+ if context is None:
+ context = {}
res = []
for obj in self.browse(cr, uid, list(set(ids)), context=context):
res.append((obj.id, "%s (%s)" % (obj.name, obj.partner_id.name,)))
-
return res
def name_search(self, cr, uid, name, args=None, operator='ilike', context=None, limit=80):
@@ -118,7 +118,10 @@
def _default_get_location_id(self, cr, uid, context=None):
# FIXME: get default for a core_config option
cr.execute("SELECT min(id) from training_location")
- return cr.fetchone()
+ location = cr.fetchone()
+ if not location or (len(location) > 0 and not location[0]):
+ location = False
+ return location
_defaults = {
'reserved' : lambda *a: 0,
@@ -155,14 +158,16 @@
seance_ids = super(training_session, self)._create_seance(cr, uid, session, context=context)
seance_vals = {}
if session.location_id:
- seance_vals['location_id'] = session.location_id.id
- seance_vals['delivery_location_id'] = session.location_id.id # will be overwritten if a the "delivery location" is really filled up
+ seance_vals.update({
+ 'location_id' : session.location_id.id,
+ 'delivery_location_id' : session.location_id.id
+ }) # will be overwritten if a the "delivery location" is really filled up
if session.delivery_location_id:
- seance_vals['delivery_location_id'] = session.delivery_location_id.id
+ seance_vals.update({'delivery_location_id' : session.delivery_location_id.id})
if session.location_note:
- seance_vals['location_note'] = session.location_note
+ seance_vals.update({'location_note' : session.location_note})
if session.delivery_location_note:
- seance_vals['delivery_location_note'] = session.delivery_location_note
+ seance_vals.update({'delivery_location_note' : session.delivery_location_note})
if seance_vals:
self.pool.get('training.seance').write(cr, uid, seance_ids, seance_vals, context=context)
return seance_ids
@@ -187,3 +192,5 @@
'delivery_location_id': fields.related('seance_id', 'delivery_location_id', type='many2one', relation='training.location', string='Delivery Location', readonly=True),
}
purchase_order_line_seance_room()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== modified file 'training_room/training_room_view.xml'
--- training_room/training_room_view.xml 2011-01-05 11:41:40 +0000
+++ training_room/training_room_view.xml 2011-03-17 09:08:29 +0000
@@ -41,28 +41,31 @@
</field>
</record>
+ <record model="ir.ui.view" id="view_training_location_search">
+ <field name="name">training.location.search</field>
+ <field name="model">training.location</field>
+ <field name="type">search</field>
+ <field name="arch" type="xml">
+ <search string="Search Training Location">
+ <field name="name"/>
+ <field name="partner_id"/>
+ <field name="seats"/>
+ </search>
+ </field>
+ </record>
+
<record model="ir.actions.act_window" id="training_location_all_act">
<field name="name">Rooms</field>
<field name="res_model">training.location</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
- </record>
-
- <record model="ir.actions.act_window" id="training_location_new_act">
- <field name="name">New Room</field>
- <field name="res_model">training.location</field>
- <field name="view_type">form</field>
- <field name="view_mode">form</field>
- </record>
-
- <menuitem
- id="training_config_locations_mi"
- parent="training.training_config_mi"
- action="training_location_all_act" sequence='45'/>
- <menuitem
- id="training_config_locations_new_mi"
- parent="training_config_locations_mi"
- action="training_location_new_act" />
+ <field name="search_view_id" ref="view_training_location_search"/>
+ </record>
+
+ <menuitem
+ id="training_config_locations_mi"
+ parent="training.training_config_mi"
+ action="training_location_all_act" sequence='60'/>
<record model="ir.ui.view" id="training_seance_form">
<field name="name">training.seance.form</field>
=== modified file 'training_room/wizard/__init__.py'
--- training_room/wizard/__init__.py 2010-10-08 09:37:19 +0000
+++ training_room/wizard/__init__.py 2011-03-17 09:08:29 +0000
@@ -21,4 +21,6 @@
#
##############################################################################
-import wizard_create_session_i
+import training_create_session_wizard
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
=== renamed file 'training_room/wizard/wizard_create_session_i.py' => 'training_room/wizard/training_create_session_wizard.py'
--- training_room/wizard/wizard_create_session_i.py 2010-10-08 09:50:38 +0000
+++ training_room/wizard/training_create_session_wizard.py 2011-03-17 09:08:29 +0000
@@ -33,6 +33,8 @@
}
def _default_get_location(self, cr, uid, context=None, field='location_id'):
+ if context is None:
+ context= {}
session_pool = self.pool.get('training.session')
active_id = context and context.get('active_id') or None
vals = session_pool.on_change_offer(cr, uid, None, active_id)
@@ -50,6 +52,8 @@
}
def _get_new_session_data(self, cr, uid, wizard, context=None):
+ if context is None:
+ context = {}
resdict = super(training_session_create_wizard_room, self)._get_new_session_data(cr, uid, wizard, context=context)
if wizard.location_id:
resdict['location_id'] = wizard.location_id.id
=== renamed file 'training_room/wizard/wizard_create_session_i_view.xml' => 'training_room/wizard/training_create_session_wizard_view.xml'
Follow ups