[MERGE] trunk-portal_public_layout-abo (improve portal views, access rights and ir rules)
bzr revid: abo@openerp.com-20120731133508-n2xr4jf1jm4j51ep
This commit is contained in:
@@ -32,7 +32,7 @@ class account_cashbox_line(osv.osv):
|
||||
|
||||
_name = 'account.cashbox.line'
|
||||
_description = 'CashBox Line'
|
||||
_rec_name = 'number'
|
||||
_rec_name = 'pieces'
|
||||
|
||||
def _sub_total(self, cr, uid, ids, name, arg, context=None):
|
||||
|
||||
@@ -325,7 +325,7 @@ account_journal()
|
||||
|
||||
class account_journal_cashbox_line(osv.osv):
|
||||
_name = 'account.journal.cashbox.line'
|
||||
_rec_name = 'value'
|
||||
_rec_name = 'pieces'
|
||||
_columns = {
|
||||
'pieces': fields.float('Values', digits_compute=dp.get_precision('Account')),
|
||||
'journal_id' : fields.many2one('account.journal', 'Journal', required=True, select=1),
|
||||
|
||||
@@ -16,7 +16,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-07-30 04:55+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-07-31 04:58+0000\n"
|
||||
"X-Generator: Launchpad (build 15702)\n"
|
||||
|
||||
#. module: account
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
"author" : "OpenERP SA",
|
||||
"category": 'Accounting & Finance',
|
||||
"sequence": 10,
|
||||
"summary": "Accounts Moves, Journals, Chart of Accounts",
|
||||
"summary": "Financial and Analytic Accounting",
|
||||
"description": """
|
||||
Accounting Access Rights.
|
||||
=========================
|
||||
|
||||
@@ -1,22 +1,19 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<data>
|
||||
|
||||
#---------------------------------------------------------
|
||||
# Fiscal Year
|
||||
#---------------------------------------------------------
|
||||
|
||||
<record model="ir.ui.view" id="view_account_invoice_asset_form">
|
||||
<field name="name">account.invoice.line.form</field>
|
||||
<field name="model">account.invoice.line</field>
|
||||
<field name="inherit_id" ref="account.view_invoice_line_form"/>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<field name="account_id" position="after">
|
||||
<field name="asset_category_id"/>
|
||||
<!-- Fiscal Year -->
|
||||
<record model="ir.ui.view" id="view_account_invoice_asset_form">
|
||||
<field name="name">account.invoice.line.form</field>
|
||||
<field name="model">account.invoice.line</field>
|
||||
<field name="inherit_id" ref="account.view_invoice_line_form"/>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<field name="account_id" position="after">
|
||||
<field name="asset_category_id"/>
|
||||
</field>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -14,7 +14,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-07-30 04:55+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-07-31 04:58+0000\n"
|
||||
"X-Generator: Launchpad (build 15702)\n"
|
||||
|
||||
#. module: account_asset
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
"name" : "eInvoicing & Payments",
|
||||
"version" : "1.0",
|
||||
"author" : 'OpenERP SA',
|
||||
"summary": 'Supplier & Customer Invoices, Payments',
|
||||
"summary": 'Send Invoices and Track Payments',
|
||||
"description": """
|
||||
eInvoicing & Payments module manage all Voucher Entries such as "Reconciliation Entries", "Adjustment Entries", "Closing or Opening Entries" for Sales, Purchase, Bank, Cash, Expense, Contra.
|
||||
==============================================================================================================================================================================================
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
<field name="journal_id" widget="selection" context="{'journal_id': self, 'set_visible':False}" domain="[('type','in',('bank','cash'))]"/>
|
||||
<field name="period_id"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
|
||||
@@ -54,7 +54,7 @@
|
||||
<field name="journal_id" widget="selection" context="{'journal_id': self, 'set_visible':False}" domain="[('type','in',('bank','cash'))]"/>
|
||||
<field name="period_id"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Supplier" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
|
||||
@@ -72,7 +72,7 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Bill Payment" version="7.0">
|
||||
<group col="6">
|
||||
<field name="partner_id" required="1" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" string="Supplier" context="{'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1, 'invoice_currency': currency_id}" />
|
||||
<field name="partner_id" required="1" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" string="Supplier" context="{'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1, 'invoice_currency': currency_id}"/>
|
||||
<field name="amount" on_change="onchange_amount(amount, payment_rate, partner_id, journal_id, currency_id, type, date, payment_rate_currency_id, company_id, context)"/>
|
||||
<field name="journal_id"
|
||||
domain="[('type','in',['bank', 'cash'])]"
|
||||
@@ -94,8 +94,7 @@
|
||||
<tree string="Open Supplier Journal Entries" editable="bottom" colors="gray:amount==0">
|
||||
<field name="move_line_id" context="{'journal_id':parent.journal_id, 'partner_id':parent.partner_id}"
|
||||
on_change="onchange_move_line_id(move_line_id)"
|
||||
domain="[('account_id.type','=','payable'), ('reconcile_id','=', False), ('partner_id','=',parent.partner_id)]"
|
||||
/>
|
||||
domain="[('account_id.type','=','payable'), ('reconcile_id','=', False), ('partner_id','=',parent.partner_id)]"/>
|
||||
<field name="account_id" domain="[('type','=','payable')]"/>
|
||||
<field name="date_original" readonly="1"/>
|
||||
<field name="date_due" readonly="1"/>
|
||||
@@ -108,8 +107,7 @@
|
||||
<tree string="Open Customer Journal Entries" editable="bottom" colors="gray:amount==0">
|
||||
<field name="move_line_id" context="{'journal_id':parent.journal_id, 'partner_id':parent.partner_id}"
|
||||
on_change="onchange_move_line_id(move_line_id)"
|
||||
domain="[('account_id.type','=','payable'), ('reconcile_id','=', False), ('partner_id','=',parent.partner_id)]"
|
||||
/>
|
||||
domain="[('account_id.type','=','payable'), ('reconcile_id','=', False), ('partner_id','=',parent.partner_id)]"/>
|
||||
<field name="account_id" domain="[('type','=','payable')]"/>
|
||||
<field name="date_original" readonly="1"/>
|
||||
<field name="date_due" readonly="1"/>
|
||||
@@ -156,11 +154,11 @@
|
||||
<group>
|
||||
<group>
|
||||
<field name="partner_id" required="1" invisible="context.get('line_type', False)" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" context="{'invoice_currency':currency_id, 'default_customer': 0, 'search_default_supplier': 1, 'default_supplier': 1}" string="Supplier"/>
|
||||
<label for="amount" string="Amount"/>
|
||||
<div>
|
||||
<label for="amount" string="Amount"/>
|
||||
<div>
|
||||
<field name="amount" invisible="context.get('line_type', False)" on_change="onchange_amount(amount, payment_rate, partner_id, journal_id, currency_id, type, date, payment_rate_currency_id, company_id, context)" class="oe_inline"/>
|
||||
<field name="currency_id" class="oe_inline"/>
|
||||
</div>
|
||||
</div>
|
||||
<field name="journal_id"
|
||||
domain="[('type','in',['bank', 'cash'])]"
|
||||
invisible="context.get('line_type', False)"
|
||||
@@ -182,8 +180,7 @@
|
||||
<field name="move_line_id" context="{'journal_id':parent.journal_id, 'partner_id':parent.partner_id}"
|
||||
on_change="onchange_move_line_id(move_line_id)"
|
||||
domain="[('account_id.type','=','payable'), ('reconcile_id','=', False), ('partner_id','=',parent.partner_id)]"
|
||||
required="1"
|
||||
/>
|
||||
required="1"/>
|
||||
<field name="account_id" groups="base.group_no_one" domain="[('type','=','payable')]"/>
|
||||
<field name="date_original" readonly="1"/>
|
||||
<field name="date_due" readonly="1"/>
|
||||
@@ -198,8 +195,7 @@
|
||||
<field name="move_line_id" context="{'journal_id':parent.journal_id, 'partner_id':parent.partner_id}"
|
||||
on_change="onchange_move_line_id(move_line_id)"
|
||||
domain="[('account_id.type','=','payable'), ('reconcile_id','=', False), ('partner_id','=',parent.partner_id)]"
|
||||
required="1"
|
||||
/>
|
||||
required="1"/>
|
||||
<field name="account_id" groups="base.group_no_one" domain="[('type','=','payable')]"/>
|
||||
<field name="date_original" readonly="1"/>
|
||||
<field name="date_due" readonly="1"/>
|
||||
@@ -278,7 +274,7 @@
|
||||
<field name="view_id" eval="False"/>
|
||||
<field name="search_view_id" ref="view_voucher_filter_vendor_pay"/>
|
||||
<field name="target">current</field>
|
||||
<field name="help">Click on "Create" to register a supplier payment.
|
||||
<field name="help">Click on "Create" to register a supplier payment.
|
||||
<p>
|
||||
Track payments you do to your supplier and amounts you pay.</field>
|
||||
</record>
|
||||
@@ -316,14 +312,13 @@
|
||||
<group>
|
||||
<group>
|
||||
<field name="partner_id" domain="[('customer','=',True)]" required="1" invisible="context.get('line_type', False)" on_change="onchange_partner_id(partner_id, journal_id, amount, currency_id, type, date, context)" string="Customer" context="{'search_default_customer': 1}"/>
|
||||
<label for="amount"
|
||||
string="Paid Amount"/>
|
||||
<div>
|
||||
<label for="amount" string="Paid Amount"/>
|
||||
<div>
|
||||
<field name="amount" class="oe_inline"
|
||||
invisible="context.get('line_type', False)"
|
||||
on_change="onchange_amount(amount, payment_rate, partner_id, journal_id, currency_id, type, date, payment_rate_currency_id, company_id, context)"/>
|
||||
<field name="currency_id" class="oe_inline"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<field name="journal_id"
|
||||
domain="[('type','in',['bank', 'cash'])]"
|
||||
@@ -347,7 +342,7 @@
|
||||
</group>
|
||||
|
||||
<notebook>
|
||||
<page string="Payment Information">
|
||||
<page string="Payment Information" groups="base.group_user">
|
||||
<field name="line_cr_ids" context="{'journal_id':journal_id, 'type':type, 'partner_id':partner_id}" on_change="onchange_line_ids(line_dr_ids, line_cr_ids, amount, currency_id, context)">
|
||||
<tree string="Invoices and outstanding transactions" editable="bottom" colors="gray:amount==0">
|
||||
<field name="move_line_id" context="{'journal_id':parent.journal_id, 'partner_id':parent.partner_id}"
|
||||
@@ -369,8 +364,7 @@
|
||||
<field name="move_line_id" context="{'journal_id':parent.journal_id, 'partner_id':parent.partner_id}"
|
||||
on_change="onchange_move_line_id(move_line_id)"
|
||||
domain="[('account_id.type','in',('receivable','payable')), ('reconcile_id','=', False), ('partner_id','=',parent.partner_id)]"
|
||||
required="1"
|
||||
/>
|
||||
required="1"/>
|
||||
<field name="account_id" groups="base.group_no_one" domain="[('type','=','receivable')]"/>
|
||||
<field name="date_original" readonly="1"/>
|
||||
<field name="date_due" readonly="1"/>
|
||||
@@ -409,21 +403,21 @@
|
||||
<field name="audit"/>
|
||||
</group>
|
||||
<field name="move_ids" readonly="1">
|
||||
<tree string="Journal Items">
|
||||
<field name="move_id"/>
|
||||
<field name="ref"/>
|
||||
<field name="date"/>
|
||||
<field name="statement_id"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="account_id"/>
|
||||
<field name="name"/>
|
||||
<field name="debit"/>
|
||||
<field name="credit"/>
|
||||
<field name="state"/>
|
||||
<field name="reconcile_id"/>
|
||||
<field name="amount_currency"/>
|
||||
<field name="currency_id"/>
|
||||
</tree>
|
||||
<tree string="Journal Items">
|
||||
<field name="move_id"/>
|
||||
<field name="ref"/>
|
||||
<field name="date"/>
|
||||
<field name="statement_id"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="account_id"/>
|
||||
<field name="name"/>
|
||||
<field name="debit"/>
|
||||
<field name="credit"/>
|
||||
<field name="state"/>
|
||||
<field name="reconcile_id"/>
|
||||
<field name="amount_currency"/>
|
||||
<field name="currency_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
@@ -464,5 +458,6 @@
|
||||
|
||||
<menuitem action="action_vendor_receipt" icon="STOCK_JUSTIFY_FILL" sequence="12"
|
||||
id="menu_action_vendor_receipt" parent="account.menu_finance_receivables"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
<!-- Top menu item -->
|
||||
<menuitem name="Association"
|
||||
id="base.menu_association"
|
||||
groups="base.group_user"
|
||||
sequence="70"/>
|
||||
<menuitem name="Configuration" id="base.menu_event_config" parent="base.menu_association" sequence="30"/>
|
||||
<menuitem name="Association" id="base.menu_report_association" parent="base.menu_reporting" sequence="23"/>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
'version': '1.0',
|
||||
'category': 'Customer Relationship Management',
|
||||
"sequence": 2,
|
||||
"summary": "Agenda, Leads, Opportunities",
|
||||
"summary": "Leads, Opportunities, Agenda",
|
||||
'description': """
|
||||
The generic OpenERP Customer Relationship Management.
|
||||
=====================================================
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="view_delivery_carrier_form" model="ir.ui.view">
|
||||
<field name="name">delivery.carrier.form</field>
|
||||
<field name="model">delivery.carrier</field>
|
||||
@@ -90,7 +90,7 @@
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="action_delivery_carrier_form" model="ir.actions.act_window">
|
||||
<field name="name">Delivery Method</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
@@ -299,7 +299,7 @@
|
||||
<field name="model">stock.picking</field>
|
||||
<field name="inherit_id" ref="stock.view_picking_out_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="/form/header/button[@string='Create Invoice/Refund']" position="after">
|
||||
<xpath expr="/form/header//button[@string='Create Invoice/Refund']" position="after">
|
||||
<button name="%(report_shipping)d" string="Delivery Order" states="done" type="action" icon="gtk-print"/>
|
||||
</xpath>
|
||||
</field>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
'name': 'Events Organisation',
|
||||
'version': '0.1',
|
||||
'category': 'Tools',
|
||||
'summary': 'Invitations, Subscriptions',
|
||||
'summary': 'For Trainings, Conferences & Meetings',
|
||||
'description': """
|
||||
Organization and management of Events.
|
||||
======================================
|
||||
|
||||
+12
-11
@@ -23,6 +23,7 @@ import time
|
||||
from osv import fields, osv
|
||||
from tools.translate import _
|
||||
import decimal_precision as dp
|
||||
from openerp import SUPERUSER_ID
|
||||
|
||||
class event_type(osv.osv):
|
||||
""" Event Type """
|
||||
@@ -159,7 +160,7 @@ class event_event(osv.osv):
|
||||
elif field == 'register_prospect':
|
||||
number = reg_draft
|
||||
elif field == 'register_avail':
|
||||
#the number of ticket is unlimited if the event.register_max field is not set.
|
||||
#the number of ticket is unlimited if the event.register_max field is not set.
|
||||
#In that cas we arbitrary set it to 9999, it is used in the kanban view to special case the display of the 'subscribe' button
|
||||
number = event.register_max - reg_open if event.register_max != 0 else 9999
|
||||
res[event.id][field] = number
|
||||
@@ -178,7 +179,7 @@ class event_event(osv.osv):
|
||||
if reg.state in ('open','done'):
|
||||
res[event.id]= True
|
||||
continue
|
||||
return res
|
||||
return res
|
||||
|
||||
_columns = {
|
||||
'name': fields.char('Name', size=64, required=True, translate=True, readonly=False, states={'done': [('readonly', True)]}),
|
||||
@@ -189,7 +190,7 @@ class event_event(osv.osv):
|
||||
'register_current': fields.function(_get_register, string='Confirmed Registrations', multi='register_numbers'),
|
||||
'register_avail': fields.function(_get_register, string='Available Registrations', multi='register_numbers',type='integer'),
|
||||
'register_prospect': fields.function(_get_register, string='Unconfirmed Registrations', multi='register_numbers'),
|
||||
'register_attended': fields.function(_get_register, string='# of Participations', multi='register_numbers'),
|
||||
'register_attended': fields.function(_get_register, string='# of Participations', multi='register_numbers'),
|
||||
'registration_ids': fields.one2many('event.registration', 'event_id', 'Registrations', readonly=False, states={'done': [('readonly', True)]}),
|
||||
'date_begin': fields.datetime('Start Date', required=True, readonly=True, states={'draft': [('readonly', False)]}),
|
||||
'date_end': fields.datetime('End Date', required=True, readonly=True, states={'draft': [('readonly', False)]}),
|
||||
@@ -227,18 +228,18 @@ class event_event(osv.osv):
|
||||
self.check_registration_limits_before(cr, uid, ids, num_of_seats, context=context)
|
||||
user = user_pool.browse(cr, uid, uid, context=context)
|
||||
curr_reg_ids = register_pool.search(cr, uid, [('user_id', '=', user.id), ('event_id', '=' , ids[0])])
|
||||
#the subscription is done with UID = 1 because in case we share the kanban view, we want anyone to be able to subscribe
|
||||
#the subscription is done with SUPERUSER_ID because in case we share the kanban view, we want anyone to be able to subscribe
|
||||
if not curr_reg_ids:
|
||||
curr_reg_ids = [register_pool.create(cr, 1, {'event_id': ids[0] ,'email': user.user_email, 'name':user.name, 'user_id': user.id, 'nb_register': num_of_seats})]
|
||||
curr_reg_ids = [register_pool.create(cr, SUPERUSER_ID, {'event_id': ids[0] ,'email': user.user_email, 'name':user.name, 'user_id': user.id, 'nb_register': num_of_seats})]
|
||||
else:
|
||||
register_pool.write(cr, uid, curr_reg_ids, {'nb_register': num_of_seats}, context=context)
|
||||
return register_pool.confirm_registration(cr, 1, curr_reg_ids, context=context)
|
||||
return register_pool.confirm_registration(cr, SUPERUSER_ID, curr_reg_ids, context=context)
|
||||
|
||||
def unsubscribe_to_event(self, cr, uid, ids, context=None):
|
||||
register_pool = self.pool.get('event.registration')
|
||||
#the unsubscription is done with UID = 1 because in case we share the kanban view, we want anyone to be able to unsubscribe
|
||||
curr_reg_ids = register_pool.search(cr, 1, [('user_id', '=', uid), ('event_id', '=', ids[0])])
|
||||
return register_pool.button_reg_cancel(cr, 1, curr_reg_ids, context=context)
|
||||
#the unsubscription is done with SUPERUSER_ID because in case we share the kanban view, we want anyone to be able to unsubscribe
|
||||
curr_reg_ids = register_pool.search(cr, SUPERUSER_ID, [('user_id', '=', uid), ('event_id', '=', ids[0])])
|
||||
return register_pool.button_reg_cancel(cr, SUPERUSER_ID, curr_reg_ids, context=context)
|
||||
|
||||
def _check_closing_date(self, cr, uid, ids, context=None):
|
||||
for event in self.browse(cr, uid, ids, context=context):
|
||||
@@ -260,7 +261,7 @@ class event_event(osv.osv):
|
||||
'register_max': type_info.default_registration_max,
|
||||
}
|
||||
return {'value': dic}
|
||||
|
||||
|
||||
# ----------------------------------------
|
||||
# OpenChatter methods and notifications
|
||||
# ----------------------------------------
|
||||
@@ -415,7 +416,7 @@ class event_registration(osv.osv):
|
||||
return {}
|
||||
event_obj = self.pool.get('event.event')
|
||||
data_event = event_obj.browse(cr, uid, event_id, context=context)
|
||||
return {'value':
|
||||
return {'value':
|
||||
{'event_begin_date': data_event.date_begin,
|
||||
'event_end_date': data_event.date_end,
|
||||
'company_id': data_event.company_id and data_event.company_id.id or False,
|
||||
|
||||
+25
-22
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<act_window
|
||||
id="act_event_list_register_event"
|
||||
name="Registration"
|
||||
@@ -13,6 +14,7 @@
|
||||
<!-- Top menu item -->
|
||||
<menuitem name="Events"
|
||||
id="event_main_menu"
|
||||
groups="base.group_user"
|
||||
sequence="80"/>
|
||||
<menuitem name="Events Organisation" id="base.menu_event_main" parent="event_main_menu"/>
|
||||
|
||||
@@ -102,10 +104,12 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Events" version="7.0">
|
||||
<header>
|
||||
<button string="Confirm Event" name="button_confirm" states="draft" type="object" class="oe_highlight"/>
|
||||
<button string="Event Ended" name="button_done" states="confirm" type="object" class="oe_highlight"/>
|
||||
<button string="Set To Draft" name="button_draft" states="cancel,done" type="object" />
|
||||
<button string="Cancel Event" name="button_cancel" states="draft,confirm" type="object"/>
|
||||
<span groups="base.user_group">
|
||||
<button string="Confirm Event" name="button_confirm" states="draft" type="object" class="oe_highlight"/>
|
||||
<button string="Event Ended" name="button_done" states="confirm" type="object" class="oe_highlight"/>
|
||||
<button string="Set To Draft" name="button_draft" states="cancel,done" type="object" />
|
||||
<button string="Cancel Event" name="button_cancel" states="draft,confirm" type="object"/>
|
||||
</span>
|
||||
<field name="state" widget="statusbar" statusbar_visible="draft,confirm,done"/>
|
||||
</header>
|
||||
<sheet>
|
||||
@@ -126,20 +130,20 @@
|
||||
<field name="address_id" widget="many2one_address_google_map" widget_option="{'placeholder':'.oe_google_map'}"/>
|
||||
<field name="street" placeholder="Street..."/>
|
||||
<div>
|
||||
<field name="zip" class="oe_inline" placeholder="Zip"/>
|
||||
<field name="city" class="oe_inline" placeholder="City"/>
|
||||
<field name="zip" class="oe_inline" placeholder="Zip"/>
|
||||
<field name="city" class="oe_inline" placeholder="City"/>
|
||||
</div>
|
||||
</div>
|
||||
</group>
|
||||
<group>
|
||||
<field name="type" on_change="onchange_event_type(type,context)"/>
|
||||
<field name="register_min"/>
|
||||
<field name="register_max"/>
|
||||
<label for="register_current" string="Current Registrations"/>
|
||||
<div>
|
||||
Confirmed: <field name="register_current" class="oe_inline"/>, Unconfirmed: <field name="register_prospect" class="oe_inline"/>
|
||||
</div>
|
||||
</group>
|
||||
<field name="type" on_change="onchange_event_type(type,context)"/>
|
||||
<field name="register_min"/>
|
||||
<field name="register_max"/>
|
||||
<label for="register_current" string="Current Registrations" groups="base.group_user"/>
|
||||
<div groups="base.group_user">
|
||||
Confirmed: <field name="register_current" class="oe_inline"/>, Unconfirmed: <field name="register_prospect" class="oe_inline"/>
|
||||
</div>
|
||||
</group>
|
||||
</group>
|
||||
</div>
|
||||
<!-- <div class="oe_right" style="height: 200px"></div> -->
|
||||
@@ -474,8 +478,8 @@
|
||||
<div>
|
||||
<field name="email" class="oe_inline"/>
|
||||
<button class="oe_inline oe_right" string="Send Email"
|
||||
name="%(mail.action_email_compose_message_wizard)d"
|
||||
icon="terp-mail-message-new" context= '{"default_email_to":email}' type="action"/>
|
||||
name="%(mail.action_email_compose_message_wizard)d"
|
||||
icon="terp-mail-message-new" context= '{"default_email_to":email}' type="action"/>
|
||||
</div>
|
||||
</group>
|
||||
<group>
|
||||
@@ -541,9 +545,9 @@
|
||||
<filter icon="terp-check" string="New" name="draft" domain="[('state','=','draft')]" help="Registrations in unconfirmed state"/>
|
||||
<filter icon="terp-camera_test" string="Confirmed" domain="[('state','=','open')]" help="Confirmed registrations"/>
|
||||
<filter icon="terp-personal"
|
||||
string="My Registrations"
|
||||
help="My Registrations"
|
||||
domain="[('user_id','=',uid)]"/>
|
||||
string="My Registrations"
|
||||
help="My Registrations"
|
||||
domain="[('user_id','=',uid)]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="event_id" widget="selection"/>
|
||||
<field name="user_id"/>
|
||||
@@ -571,12 +575,11 @@
|
||||
<field name="search_view_id" ref="view_registration_search"/>
|
||||
</record>view_
|
||||
|
||||
<menuitem
|
||||
name="Registrations"
|
||||
<menuitem name="Registrations"
|
||||
id="menu_action_registration" parent="base.menu_event_main"
|
||||
action="action_registration" groups="event.group_event_manager,event.group_event_user"/>
|
||||
|
||||
|
||||
<menuitem name="Reporting" id="base.menu_report_association" parent="event_main_menu" sequence="20"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -1,45 +1,46 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data noupdate="0">
|
||||
<data>
|
||||
|
||||
<record model="ir.module.category" id="module_category_event_management">
|
||||
<record model="ir.module.category" id="module_category_event_management">
|
||||
<field name="name">Event</field>
|
||||
<field name="description">Helps you manage your Events.</field>
|
||||
<field name="sequence">3</field>
|
||||
</record>
|
||||
|
||||
<record id="group_event_user" model="res.groups">
|
||||
<field name="name">User</field>
|
||||
<field name="category_id" ref="module_category_event_management"/>
|
||||
</record>
|
||||
<record id="group_event_user" model="res.groups">
|
||||
<field name="name">User</field>
|
||||
<field name="category_id" ref="module_category_event_management"/>
|
||||
</record>
|
||||
|
||||
<record id="group_event_manager" model="res.groups">
|
||||
<field name="name">Manager</field>
|
||||
<field name="category_id" ref="module_category_event_management"/>
|
||||
<field name="implied_ids" eval="[(4, ref('group_event_user'))]"/>
|
||||
<field name="users" eval="[(4, ref('base.user_root'))]"/>
|
||||
</record>
|
||||
<record id="group_event_manager" model="res.groups">
|
||||
<field name="name">Manager</field>
|
||||
<field name="category_id" ref="module_category_event_management"/>
|
||||
<field name="implied_ids" eval="[(4, ref('group_event_user'))]"/>
|
||||
<field name="users" eval="[(4, ref('base.user_root'))]"/>
|
||||
</record>
|
||||
|
||||
<!-- Multi - Company Rules -->
|
||||
<!-- Multi - Company Rules -->
|
||||
<record model="ir.rule" id="event_event_comp_rule">
|
||||
<field name="name">Event multi-company</field>
|
||||
<field name="model_id" ref="model_event_event"/>
|
||||
<field name="global" eval="True"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="event_event_comp_rule">
|
||||
<field name="name">Event multi-company</field>
|
||||
<field name="model_id" ref="model_event_event"/>
|
||||
<field name="global" eval="True"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
||||
</record>
|
||||
<record model="ir.rule" id="event_registration_comp_rule">
|
||||
<field name="name">Event Registration multi-company</field>
|
||||
<field name="model_id" ref="model_event_registration"/>
|
||||
<field name="global" eval="True"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
||||
</record>
|
||||
<record model="ir.rule" id="event_registration_comp_rule">
|
||||
<field name="name">Event Registration multi-company</field>
|
||||
<field name="model_id" ref="model_event_registration"/>
|
||||
<field name="global" eval="True"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.rule" id="report_event_registration_comp_rule">
|
||||
<field name="name">Report Event Registration multi-company</field>
|
||||
<field name="model_id" ref="model_report_event_registration"/>
|
||||
<field name="global" eval="True"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
||||
</record>-->
|
||||
</data>
|
||||
<record model="ir.rule" id="report_event_registration_comp_rule">
|
||||
<field name="name">Report Event Registration multi-company</field>
|
||||
<field name="model_id" ref="model_report_event_registration"/>
|
||||
<field name="global" eval="True"/>
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
"category": "Human Resources",
|
||||
"sequence": 12,
|
||||
"website": "http://www.openerp.com",
|
||||
"summary": "Hierarchy, Jobs, Departments",
|
||||
"summary": "All Infos on Employees",
|
||||
"description": """
|
||||
Module for Human Resource Management.
|
||||
=====================================
|
||||
|
||||
@@ -2,11 +2,7 @@
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<!--
|
||||
======================
|
||||
department
|
||||
======================
|
||||
-->
|
||||
<!-- Department -->
|
||||
<record id="view_department_form" model="ir.ui.view">
|
||||
<field name="name">hr.department.form</field>
|
||||
<field name="model">hr.department</field>
|
||||
@@ -37,7 +33,7 @@
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_department_filter" model="ir.ui.view">
|
||||
<record id="view_department_filter" model="ir.ui.view">
|
||||
<field name="name">Departments</field>
|
||||
<field name="model">hr.department</field>
|
||||
<field name="type">search</field>
|
||||
@@ -48,7 +44,7 @@
|
||||
<field name="manager_id" />
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
</record>
|
||||
|
||||
<record id="open_module_tree_department" model="ir.actions.act_window">
|
||||
<field name="name">Departments</field>
|
||||
@@ -60,5 +56,5 @@
|
||||
|
||||
<menuitem action="open_module_tree_department" id="menu_hr_department_tree" parent="hr.menu_hr_configuration" sequence="5"/>
|
||||
|
||||
</data>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
+12
-20
@@ -11,7 +11,7 @@
|
||||
<menuitem id="menu_hr_configuration" name="Configuration" parent="hr.menu_hr_root" groups="base.group_hr_manager" sequence="50"/>
|
||||
<menuitem id="menu_hr_management" name="Human Resources" parent="hr.menu_hr_configuration" groups="base.group_no_one" sequence="25"/>
|
||||
<menuitem id="menu_hr_reporting_timesheet" name="Reports"
|
||||
parent="menu_hr_reporting" sequence="6" />
|
||||
parent="menu_hr_reporting" sequence="6"/>
|
||||
|
||||
<!--Employee form view -->
|
||||
<record id="view_employee_form" model="ir.ui.view">
|
||||
@@ -40,9 +40,9 @@
|
||||
<!-- Put here related buttons -->
|
||||
</div>
|
||||
<group colspan="4" col="4">
|
||||
<field name="work_email" widget="email" />
|
||||
<field name="work_email" widget="email"/>
|
||||
<field name="work_phone"/>
|
||||
<field name="address_id" on_change="onchange_address_id(address_id)" />
|
||||
<field name="address_id" on_change="onchange_address_id(address_id)"/>
|
||||
<field name="mobile_phone"/>
|
||||
</group>
|
||||
<notebook>
|
||||
@@ -50,7 +50,7 @@
|
||||
<group>
|
||||
<group>
|
||||
<field name="user_id" on_change="onchange_user(user_id)"/>
|
||||
<field name="parent_id" />
|
||||
<field name="parent_id"/>
|
||||
<field name="coach_id"/>
|
||||
</group>
|
||||
<group>
|
||||
@@ -142,7 +142,9 @@
|
||||
<a type="edit"><img t-att-src="kanban_image('hr.employee', 'photo', record.id.value)" class="oe_employee_picture"/></a>
|
||||
</div>
|
||||
<div class="oe_employee_details">
|
||||
<h4><a type="edit"><field name="name"/> (<field name="login"/>)</a></h4>
|
||||
<h4>
|
||||
<a type="edit"><field name="name"/><t t-if="record.login.raw_value"> (<field name="login"/>)</t></a>
|
||||
</h4>
|
||||
<ul>
|
||||
<li id="last_login">
|
||||
<span t-if="record.last_login.raw_value && record.last_login.raw_value.is().today()" class="oe_kanban_button" style="font-size: 100%%">
|
||||
@@ -225,12 +227,7 @@
|
||||
<field name="res_id" ref="hr.menu_open_view_employee_list_my"/>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
=======================
|
||||
Employee architecture
|
||||
=======================
|
||||
-->
|
||||
|
||||
<!-- Employee architecture -->
|
||||
<record id="view_partner_tree2" model="ir.ui.view">
|
||||
<field name="name">hr.employee.tree</field>
|
||||
<field name="model">hr.employee</field>
|
||||
@@ -269,12 +266,7 @@
|
||||
<field eval="True" name="replace"/>
|
||||
</ir_set>
|
||||
|
||||
<!--
|
||||
============
|
||||
Employee Category
|
||||
============
|
||||
-->
|
||||
|
||||
<!-- Employee Category -->
|
||||
<record id="view_employee_category_form" model="ir.ui.view">
|
||||
<field name="name">hr.employee.category.form</field>
|
||||
<field name="model">hr.employee.category</field>
|
||||
@@ -373,8 +365,8 @@
|
||||
</h1>
|
||||
<group>
|
||||
<group>
|
||||
<field name="no_of_employee"/>
|
||||
<field name="expected_employees"/>
|
||||
<field name="no_of_employee" groups="base.group_user"/>
|
||||
<field name="expected_employees" groups="base.group_user"/>
|
||||
<field name="no_of_recruitment" on_change="on_change_expected_employee(no_of_recruitment,no_of_employee)"/>
|
||||
</group>
|
||||
<group>
|
||||
@@ -427,7 +419,7 @@
|
||||
help="In Recruitment"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="department_id" widget="selection"/>
|
||||
<newline />
|
||||
<newline/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Department" icon="terp-personal+" domain="[]" context="{'group_by':'department_id'}"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
"author": "OpenERP SA",
|
||||
"category": "Human Resources",
|
||||
"website": "http://www.openerp.com",
|
||||
"summary": "Top-Down and Bottom-Up Evaluation",
|
||||
"summary": "Periodical Evaluations, Surveys",
|
||||
"images": ["images/hr_evaluation_analysis.jpeg","images/hr_evaluation.jpeg"],
|
||||
"depends": ["hr","base_calendar","survey"],
|
||||
"description": """
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
"author": "OpenERP SA",
|
||||
"category": "Human Resources",
|
||||
"sequence": 28,
|
||||
"summary": "Allocation and Leave Requests, Reporting by Department",
|
||||
"summary": "Holidays, Allocation and Leave Requests",
|
||||
"website": "http://www.openerp.com",
|
||||
"description": """
|
||||
This module allows you to manage leaves and leave's requests.
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -24,7 +24,7 @@
|
||||
'version': '1.0',
|
||||
'category': 'Human Resources',
|
||||
"sequence": 24,
|
||||
"summary": "Job Descriptions, Recruitment Process",
|
||||
"summary": "Recruitment Process, Job Descriptions",
|
||||
'description': """
|
||||
Manages job positions and the recruitment process.
|
||||
==================================================
|
||||
|
||||
@@ -1,23 +1,21 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<menuitem
|
||||
id="menu_hr_recruitment_recruitment"
|
||||
name="Recruitment"
|
||||
parent="hr.menu_hr_configuration"
|
||||
sequence="40" />
|
||||
|
||||
<act_window
|
||||
id="act_hr_applicant_to_meeting"
|
||||
name="Meetings"
|
||||
res_model="crm.meeting"
|
||||
src_model="hr.applicant"
|
||||
view_mode="tree,form,calendar,graph"
|
||||
view_type="form"/>
|
||||
<menuitem name="Recruitment"
|
||||
id="menu_hr_recruitment_recruitment"
|
||||
parent="hr.menu_hr_configuration"
|
||||
sequence="40"/>
|
||||
|
||||
# ------------------------------------------------------
|
||||
# Stage
|
||||
# ------------------------------------------------------
|
||||
<act_window
|
||||
id="act_hr_applicant_to_meeting"
|
||||
name="Meetings"
|
||||
res_model="crm.meeting"
|
||||
src_model="hr.applicant"
|
||||
view_mode="tree,form,calendar,graph"
|
||||
view_type="form"/>
|
||||
|
||||
<!-- Stage -->
|
||||
<record id="hr_job_stage_act" model="ir.actions.act_window">
|
||||
<field name="name">Recruitment / Applicants Stages</field>
|
||||
<field name="res_model">hr.recruitment.stage</field>
|
||||
@@ -28,10 +26,7 @@
|
||||
</record>
|
||||
|
||||
|
||||
# ------------------------------------------------------
|
||||
# Jobs
|
||||
# ------------------------------------------------------
|
||||
|
||||
<!-- Jobs -->
|
||||
<!-- Applicant Read/Unread actions -->
|
||||
<record id="actions_server_applicant_unread" model="ir.actions.server">
|
||||
<field name="name">Mark unread</field>
|
||||
@@ -44,9 +39,9 @@
|
||||
<record id="action_applicant_unread" model="ir.values">
|
||||
<field name="name">action_project_unread</field>
|
||||
<field name="action_id" ref="actions_server_applicant_unread"/>
|
||||
<field name="value" eval="'ir.actions.server,' + str(ref('actions_server_applicant_unread'))" />
|
||||
<field name="value" eval="'ir.actions.server,' + str(ref('actions_server_applicant_unread'))"/>
|
||||
<field name="key">action</field>
|
||||
<field name="model_id" ref="model_hr_applicant" />
|
||||
<field name="model_id" ref="model_hr_applicant"/>
|
||||
<field name="model">hr.applicant</field>
|
||||
<field name="key2">client_action_multi</field>
|
||||
</record>
|
||||
@@ -62,9 +57,9 @@
|
||||
<record id="action_applicant_read" model="ir.values">
|
||||
<field name="name">action_project_read</field>
|
||||
<field name="action_id" ref="actions_server_applicant_read"/>
|
||||
<field name="value" eval="'ir.actions.server,' + str(ref('actions_server_applicant_read'))" />
|
||||
<field name="value" eval="'ir.actions.server,' + str(ref('actions_server_applicant_read'))"/>
|
||||
<field name="key">action</field>
|
||||
<field name="model_id" ref="model_hr_applicant" />
|
||||
<field name="model_id" ref="model_hr_applicant"/>
|
||||
<field name="model">hr.applicant</field>
|
||||
<field name="key2">client_action_multi</field>
|
||||
</record>
|
||||
@@ -175,12 +170,12 @@
|
||||
<group string="Contract">
|
||||
<label for="salary_expected"/>
|
||||
<div>
|
||||
<field name="salary_expected" class="oe_inline"/>,
|
||||
<field name="salary_expected" class="oe_inline"/>,
|
||||
<field name="salary_expected_extra" class="oe_inline" placeholder="Extra advantages..."/>
|
||||
</div>
|
||||
<label for="salary_proposed"/>
|
||||
<div>
|
||||
<field name="salary_proposed" class="oe_inline"/>,
|
||||
<field name="salary_proposed" class="oe_inline"/>,
|
||||
<field name="salary_proposed_extra" class="oe_inline" placeholder="Extra advantages..."/>
|
||||
</div>
|
||||
</group>
|
||||
@@ -222,10 +217,10 @@
|
||||
<filter icon="terp-document-new" string="New" name="filter_new"/>
|
||||
<field name="partner_name" filter_domain="['|','|',('name','ilike',self),('partner_name','ilike',self),('email_from','ilike',self)]" string="Subject / Applicant"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-document-new" string="New"
|
||||
<filter icon="terp-document-new" string="New"
|
||||
domain="[('state','=','draft')]"
|
||||
help="All Initial Jobs"/>
|
||||
<filter icon="terp-camera_test" string="In Progress"
|
||||
<filter icon="terp-camera_test" string="In Progress"
|
||||
domain="[('state','=','open')]"
|
||||
help="Open Jobs"/>
|
||||
<filter icon="terp-gtk-media-pause" string="Pending"
|
||||
@@ -260,7 +255,6 @@
|
||||
</record>
|
||||
|
||||
<!-- CRM Lead Calendar View -->
|
||||
|
||||
<record model="ir.ui.view" id="hr_applicant_calendar_view">
|
||||
<field name="name">Hr Applicants Calendar</field>
|
||||
<field name="model">hr.applicant</field>
|
||||
@@ -269,15 +263,14 @@
|
||||
<field name="arch" type="xml">
|
||||
<calendar string="Applicants"
|
||||
date_start="date_action" color="user_id">
|
||||
<field name="name" />
|
||||
<field name="partner_name" />
|
||||
<field name="name"/>
|
||||
<field name="partner_name"/>
|
||||
<field name="title_action"/>
|
||||
</calendar>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- hr Applicant Kanban View -->
|
||||
|
||||
<!-- Hr Applicant Kanban View -->
|
||||
<record model="ir.ui.view" id="hr_kanban_view_applicant">
|
||||
<field name="name">Hr Applicants kanban</field>
|
||||
<field name="model">hr.applicant</field>
|
||||
@@ -346,10 +339,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
# ------------------------------------------------------
|
||||
# HR Job
|
||||
# ------------------------------------------------------
|
||||
|
||||
<!-- HR Job -->
|
||||
<record id="hr_job_survey" model="ir.ui.view">
|
||||
<field name="name">hr.job.form1</field>
|
||||
<field name="model">hr.job</field>
|
||||
@@ -357,20 +347,19 @@
|
||||
<field name="inherit_id" ref="hr.view_hr_job_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="no_of_recruitment" version="7.0" position="after">
|
||||
<label for="survey_id" />
|
||||
<div>
|
||||
<field name="survey_id" class="oe_inline"/>
|
||||
<button class="oe_inline"
|
||||
string="Interview" icon="gtk-print"
|
||||
name="action_print_survey" type="object"
|
||||
attrs="{'invisible':[('survey_id','=',False)]}"/>
|
||||
</div>
|
||||
<label for="survey_id" groups="base.group_user"/>
|
||||
<div groups="base.group_user">
|
||||
<field name="survey_id" class="oe_inline"/>
|
||||
<button class="oe_inline"
|
||||
string="Interview" icon="gtk-print"
|
||||
name="action_print_survey" type="object"
|
||||
attrs="{'invisible':[('survey_id','=',False)]}"/>
|
||||
</div>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Stage Tree View -->
|
||||
|
||||
<!-- Stage Tree View -->
|
||||
<record model="ir.ui.view" id="hr_recruitment_stage_tree">
|
||||
<field name="name">hr.recruitment.stage.tree</field>
|
||||
<field name="model">hr.recruitment.stage</field>
|
||||
@@ -385,8 +374,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Stage Form View -->
|
||||
|
||||
<!-- Stage Form View -->
|
||||
<record model="ir.ui.view" id="hr_recruitment_stage_form">
|
||||
<field name="name">hr.recruitment.stage.form</field>
|
||||
<field name="model">hr.recruitment.stage</field>
|
||||
@@ -405,8 +393,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Stage Action -->
|
||||
|
||||
<!-- Stage Action -->
|
||||
<record id="hr_recruitment_stage_act" model="ir.actions.act_window">
|
||||
<field name="name">Stages</field>
|
||||
<field name="res_model">hr.recruitment.stage</field>
|
||||
@@ -422,8 +409,7 @@
|
||||
action="hr_recruitment_stage_act"
|
||||
sequence="1" groups="base.group_no_one"/>
|
||||
|
||||
<!-- Degree Tree View -->
|
||||
|
||||
<!-- Degree Tree View -->
|
||||
<record model="ir.ui.view" id="hr_recruitment_degree_tree">
|
||||
<field name="name">hr.recruitment.degree.tree</field>
|
||||
<field name="model">hr.recruitment.degree</field>
|
||||
@@ -436,8 +422,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Degree Form View -->
|
||||
|
||||
<!-- Degree Form View -->
|
||||
<record model="ir.ui.view" id="hr_recruitment_degree_form">
|
||||
<field name="name">hr.recruitment.degree.form</field>
|
||||
<field name="model">hr.recruitment.degree</field>
|
||||
@@ -452,8 +437,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Degree Action -->
|
||||
|
||||
<!-- Degree Action -->
|
||||
<record id="hr_recruitment_degree_action" model="ir.actions.act_window">
|
||||
<field name="name">Degree</field>
|
||||
<field name="res_model">hr.recruitment.degree</field>
|
||||
@@ -468,8 +452,7 @@
|
||||
action="hr_recruitment_degree_action"
|
||||
sequence="5" groups="base.group_no_one"/>
|
||||
|
||||
<!-- Source Tree View -->
|
||||
|
||||
<!-- Source Tree View -->
|
||||
<record model="ir.ui.view" id="hr_recruitment_source_tree">
|
||||
<field name="name">hr.recruitment.source.tree</field>
|
||||
<field name="model">hr.recruitment.source</field>
|
||||
@@ -496,11 +479,12 @@
|
||||
<field name="view_type">form</field>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
id="menu_hr_recruitment_source"
|
||||
parent="menu_hr_recruitment_recruitment"
|
||||
action="hr_recruitment_source_action"
|
||||
sequence="10" groups="base.group_no_one"/>
|
||||
<menuitem
|
||||
id="menu_hr_recruitment_source"
|
||||
parent="menu_hr_recruitment_recruitment"
|
||||
action="hr_recruitment_source_action"
|
||||
groups="base.group_no_one"
|
||||
sequence="10"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -126,6 +126,25 @@ class account_analytic_line(osv.osv):
|
||||
'to_invoice': fields.many2one('hr_timesheet_invoice.factor', 'Type of Invoicing', help="It allows to set the discount while making invoice"),
|
||||
}
|
||||
|
||||
def _default_journal(self, cr, uid, context=None):
|
||||
proxy = self.pool.get('hr.employee')
|
||||
record_ids = proxy.search(cr, uid, [('user_id', '=', uid)], context=context)
|
||||
employee = proxy.browse(cr, uid, record_ids[0], context=context)
|
||||
return employee.journal_id and employee.journal_id.id or False
|
||||
|
||||
def _default_general_account(self, cr, uid, context=None):
|
||||
proxy = self.pool.get('hr.employee')
|
||||
record_ids = proxy.search(cr, uid, [('user_id', '=', uid)], context=context)
|
||||
employee = proxy.browse(cr, uid, record_ids[0], context=context)
|
||||
if employee.product_id and employee.product_id.property_account_income:
|
||||
return employee.product_id.property_account_income.id
|
||||
return False
|
||||
|
||||
_defaults = {
|
||||
'journal_id' : _default_journal,
|
||||
'general_account_id' : _default_general_account,
|
||||
}
|
||||
|
||||
def write(self, cr, uid, ids, vals, context=None):
|
||||
self._check_inv(cr, uid, ids, vals)
|
||||
return super(account_analytic_line,self).write(cr, uid, ids, vals,
|
||||
|
||||
@@ -21,11 +21,11 @@
|
||||
|
||||
|
||||
{
|
||||
'name': 'Timesheets Validation',
|
||||
'name': 'Timesheets',
|
||||
'version': '1.0',
|
||||
'category': 'Human Resources',
|
||||
"sequence": 16,
|
||||
"summary": "Attendances, Activities, Timing",
|
||||
"summary": "Timesheets, Attendances, Activities",
|
||||
'description': """
|
||||
This module helps you to easily encode and validate timesheet and attendances within the same view.
|
||||
===================================================================================================
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
'version': '1.0',
|
||||
'category':'Social Network',
|
||||
"sequence": 2,
|
||||
"summary": "Discussions, Feeds, Alerts",
|
||||
"summary": "Discussions, Mailing Lists, News",
|
||||
'description': """
|
||||
A bussiness oriented Social Networking with a fully-integrated email
|
||||
and message management.
|
||||
|
||||
@@ -29,10 +29,10 @@
|
||||
<field name="model">mail.group</field>
|
||||
<field name="res_id" ref="group_all_company"/>
|
||||
<field name="content_subtype">html</field>
|
||||
<field name="body_html"><![CDATA[Lorem ipsum dolor <b>sit amet</b>, consectetur <em>adipiscing elit</em>. Pellentesque et quam sapien, in sagittis tellus.
|
||||
Praesent vel massa sed massa consequat egestas in tristique orci. Praesent iaculis libero et neque vehicula iaculis. Vivamus placerat tincidunt orci ac ornare. Proin ut dolor fringilla velit ultricies consequat. Maecenas sit amet ipsum non leo interdum imperdiet. Donec sapien mi, varius a consequat id, consectetur sit amet nulla.
|
||||
<field name="body_html"><![CDATA[Lorem ipsum dolor <b>sit amet</b>, consectetur <em>adipiscing elit</em>. Pellentesque et quam sapien, in sagittis tellus.
|
||||
Praesent vel massa sed massa consequat egestas in tristique orci. Praesent iaculis libero et neque vehicula iaculis. Vivamus placerat tincidunt orci ac ornare. Proin ut dolor fringilla velit ultricies consequat. Maecenas sit amet ipsum non leo interdum imperdiet. Donec sapien mi, varius a consequat id, consectetur sit amet nulla.
|
||||
|
||||
Fusce tempus elit volutpat mi auctor adipiscing. Nam congue luctus suscipit. Duis vestibulum dapibus enim vitae dignissim. Sed tellus libero, venenatis ut mollis ut, luctus quis dui. Sed rhoncus pulvinar orci in consectetur.
|
||||
Fusce tempus elit volutpat mi auctor adipiscing. Nam congue luctus suscipit. Duis vestibulum dapibus enim vitae dignissim. Sed tellus libero, venenatis ut mollis ut, luctus quis dui. Sed rhoncus pulvinar orci in consectetur.
|
||||
|
||||
Nulla turpis leo, rhoncus ut egestas sit amet, consectetur vitae urna. Mauris in dolor in sapien tempus vehicula.]]></field>
|
||||
<field name="type">comment</field>
|
||||
@@ -54,11 +54,11 @@ Nulla turpis leo, rhoncus ut egestas sit amet, consectetur vitae urna. Mauris in
|
||||
<field name="model">mail.group</field>
|
||||
<field name="res_id" ref="group_all_company"/>
|
||||
<field name="content_subtype">html</field>
|
||||
<field name="body_html"><![CDATA[Agreed !
|
||||
<field name="body_html"><![CDATA[Agreed !
|
||||
Would it be possible to learn more about the author ? (second comment)]]></field>
|
||||
<field name="parent_id" ref="message_blogpost0"/>
|
||||
<field name="type">comment</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
</record>
|
||||
|
||||
<record id="message_blogpost0_comment2_attachment0" model="ir.attachment">
|
||||
@@ -76,10 +76,10 @@ Would it be possible to learn more about the author ? (second comment)]]></fiel
|
||||
<field name="model">mail.group</field>
|
||||
<field name="res_id" ref="group_all_company"/>
|
||||
<field name="content_subtype">html</field>
|
||||
<field name="body_html"><![CDATA[Sure: Curabitur tempor bibendum diam, et euismod ante rutrum vel.
|
||||
<field name="body_html"><![CDATA[Sure: Curabitur tempor bibendum diam, et euismod ante rutrum vel.
|
||||
|
||||
In quis purus neque. Integer sodales dolor eu elit fringilla blandit. Maecenas lacus nisi, facilisis sit amet viverra eu, tristique vel augue.
|
||||
Donec viverra congue dui eu blandit. In lacinia molestie nulla, ut sagittis risus feugiat eu.
|
||||
In quis purus neque. Integer sodales dolor eu elit fringilla blandit. Maecenas lacus nisi, facilisis sit amet viverra eu, tristique vel augue.
|
||||
Donec viverra congue dui eu blandit. In lacinia molestie nulla, ut sagittis risus feugiat eu.
|
||||
|
||||
Check the file in attachment for more information ! (third comment)]]></field>
|
||||
<field name="parent_id" ref="message_blogpost0"/>
|
||||
|
||||
@@ -9,7 +9,8 @@
|
||||
sequence="10"/>
|
||||
|
||||
<!-- left-side menu: Feeds !-->
|
||||
<menuitem id="mail_feeds" name="Feeds" parent="mail_feeds_main"/>
|
||||
<menuitem id="mail_feeds" name="Feeds" parent="mail_feeds_main" groups="base.group_user" sequence="10"/>
|
||||
|
||||
<record id="mail_wallfeeds" model="ir.ui.menu">
|
||||
<field name="name">News Feed</field>
|
||||
<field name="sequence" eval="10"/>
|
||||
|
||||
@@ -4,19 +4,14 @@
|
||||
|
||||
<menuitem name="Configuration" id="menu_marketing_configuration" parent="base.marketing_menu" sequence="1"/>
|
||||
|
||||
<!--
|
||||
======================
|
||||
Marketing Campaign
|
||||
======================
|
||||
-->
|
||||
<!-- Marketing Campaign -->
|
||||
<act_window name="All Segments"
|
||||
res_model="marketing.campaign.segment"
|
||||
src_model="marketing.campaign"
|
||||
view_type="form"
|
||||
view_mode="tree,form"
|
||||
id="act_marketing_campaing_segment_opened"
|
||||
context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"
|
||||
/>
|
||||
context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"/>
|
||||
|
||||
<!-- Campaign Followups -->
|
||||
<act_window
|
||||
@@ -24,7 +19,7 @@
|
||||
id="act_marketing_campaing_followup"
|
||||
name="Campaign Follow-up" res_model="marketing.campaign.workitem"
|
||||
src_model="marketing.campaign" view_mode="tree,form"
|
||||
view_type="form" />
|
||||
view_type="form"/>
|
||||
|
||||
<record model="ir.ui.view" id="view_marketing_campaign_form">
|
||||
<field name="name">marketing.campaign.form</field>
|
||||
@@ -43,10 +38,10 @@
|
||||
<div class="oe_right oe_button_box" name="button_box">
|
||||
<button type="action"
|
||||
name="%(act_marketing_campaing_followup)d"
|
||||
string="Follow-Up" />
|
||||
string="Follow-Up"/>
|
||||
<button type="action"
|
||||
name="%(act_marketing_campaing_segment_opened)d"
|
||||
string="Segments" />
|
||||
string="Segments"/>
|
||||
</div>
|
||||
<div class="oe_title">
|
||||
<label for="name" class="oe_edit_only"/>
|
||||
@@ -61,10 +56,10 @@
|
||||
<field name="object_id"/>
|
||||
<field name="partner_field_id"/>
|
||||
<field name="unique_field_id"/>
|
||||
</group>
|
||||
</group>
|
||||
</group>
|
||||
<separator string="Activities"/>
|
||||
<field name="activity_ids" context="{'default_object_id': object_id, 'default_campaign_id': active_id}" />
|
||||
<field name="activity_ids" context="{'default_object_id': object_id, 'default_campaign_id': active_id}"/>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
@@ -146,14 +141,9 @@
|
||||
</record>
|
||||
|
||||
<menuitem name="Campaigns" id="menu_marketing_campaign" parent="base.marketing_menu"/>
|
||||
<menuitem id="menu_marketing_campaign_form" parent="menu_marketing_campaign" action="action_marketing_campaign_form" sequence="30" />
|
||||
|
||||
<!--
|
||||
======================
|
||||
Marketing Segments
|
||||
======================
|
||||
-->
|
||||
<menuitem id="menu_marketing_campaign_form" parent="menu_marketing_campaign" action="action_marketing_campaign_form" sequence="30"/>
|
||||
|
||||
<!-- Marketing Segments -->
|
||||
<record model="ir.ui.view" id="view_marketing_campaign_segment_form">
|
||||
<field name="name">marketing.campaign.segment.form</field>
|
||||
<field name="model">marketing.campaign.segment</field>
|
||||
@@ -202,7 +192,7 @@
|
||||
<field name="campaign_id"/>
|
||||
<field name="date_run"/>
|
||||
<field name="sync_last_date"/>
|
||||
<field name="state" />
|
||||
<field name="state"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -248,16 +238,12 @@
|
||||
<field name="context">{'group_by': []}</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_marketing_campaign_segment_form" parent="menu_marketing_campaign" action="action_marketing_campaign_segment_form" sequence="20" />
|
||||
<menuitem id="menu_marketing_campaign_segment_form" parent="menu_marketing_campaign" action="action_marketing_campaign_segment_form" sequence="20"/>
|
||||
|
||||
<!--
|
||||
======================
|
||||
Marketing Activities
|
||||
======================
|
||||
|
||||
these views are not intended to be used outside the campaign context.
|
||||
Marketing Activities
|
||||
These views are not intended to be used outside the campaign context.
|
||||
-->
|
||||
|
||||
<record model="ir.ui.view" id="view_marketing_campaign_activity_form">
|
||||
<field name="name">marketing.campaign.activity.form</field>
|
||||
<field name="model">marketing.campaign.activity</field>
|
||||
@@ -285,7 +271,7 @@
|
||||
<group>
|
||||
<field name="type"/>
|
||||
<field name="email_template_id" attrs="{'required':[('type','=','email')], 'invisible':[('type','!=','email')]}"
|
||||
context="{'default_model_id':object_id}" />
|
||||
context="{'default_model_id':object_id}"/>
|
||||
<field name="server_action_id" attrs="{'required':[('type','=','action')],'invisible':[('type','!=','action')]}" domain="[('model_id','=',object_id)]"/>
|
||||
<field name="report_id" attrs="{'required':[('type','=','report')],'invisible':[('type','!=','report')]}" context="{'object_id':object_id}"/>
|
||||
<field name="report_directory_id" attrs="{'required':[('type','=','report')],'invisible':[('type','!=','report')]}"/>
|
||||
@@ -344,12 +330,7 @@
|
||||
</record>
|
||||
|
||||
|
||||
<!--
|
||||
======================
|
||||
Marketing Workitems
|
||||
======================
|
||||
-->
|
||||
|
||||
<!-- Marketing Workitems -->
|
||||
<record model="ir.ui.view" id="view_marketing_campaign_workitem_tree">
|
||||
<field name="name">marketing.campaign.workitem.tree</field>
|
||||
<field name="model">marketing.campaign.workitem</field>
|
||||
@@ -358,10 +339,10 @@
|
||||
<tree colors="red:state == 'exception';black:state == 'todo';gray:state == 'cancelled'" string="Marketing Campaign Activities">
|
||||
<field name="campaign_id"/>
|
||||
<field name="segment_id"/>
|
||||
<field name="activity_id" />
|
||||
<field name="activity_id"/>
|
||||
<field name="object_id" invisible="1"/>
|
||||
<field name="res_id" invisible="1"/>
|
||||
<field name="res_name" />
|
||||
<field name="res_name"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="date"/>
|
||||
<field name="state"/>
|
||||
@@ -464,8 +445,7 @@
|
||||
view_type="form"
|
||||
view_mode="tree,form"
|
||||
id="act_marketing_campaing_segment_opened"
|
||||
context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"
|
||||
/>
|
||||
context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"/>
|
||||
|
||||
<!-- Campaign Follow-ups -->
|
||||
<act_window
|
||||
@@ -473,7 +453,7 @@
|
||||
id="act_marketing_campaing_followup"
|
||||
name="Campaign Follow-up" res_model="marketing.campaign.workitem"
|
||||
src_model="marketing.campaign" view_mode="tree,form"
|
||||
view_type="form" />
|
||||
view_type="form"/>
|
||||
|
||||
<!-- Campaign Statistics -->
|
||||
<act_window
|
||||
@@ -481,7 +461,7 @@
|
||||
id="act_marketing_campaing_stat"
|
||||
name="Campaign Statistics" res_model="campaign.analysis"
|
||||
src_model="marketing.campaign" view_mode="tree,form"
|
||||
view_type="form" />
|
||||
view_type="form"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -1,16 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<!-- ==================Marketing Campaigns================== -->
|
||||
|
||||
|
||||
<!-- Marketing Campaigns -->
|
||||
<record id="wkf_marketing_campaign" model="workflow">
|
||||
<field name="name">marketing.campaign.basic</field>
|
||||
<field name="osv">marketing.campaign</field>
|
||||
<field name="on_create">True</field>
|
||||
</record>
|
||||
|
||||
<!-- Activity -->
|
||||
<!-- Activity -->
|
||||
<record id="act_marketing_campaign_draft" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf_marketing_campaign"/>
|
||||
<field name="flow_start">True</field>
|
||||
@@ -32,7 +31,7 @@
|
||||
<field name="kind">function</field>
|
||||
<field name="action">state_done_set()</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="act_marketing_campaign_cancel" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf_marketing_campaign"/>
|
||||
<field name="name">cancel</field>
|
||||
@@ -41,19 +40,19 @@
|
||||
<field name="action">state_cancel_set()</field>
|
||||
</record>
|
||||
|
||||
<!-- Transition -->
|
||||
<!-- Transition -->
|
||||
<record id="trans_marketing_campaign_draft_running" model="workflow.transition">
|
||||
<field name="act_from" ref="act_marketing_campaign_draft"/>
|
||||
<field name="act_to" ref="act_marketing_campaign_running"/>
|
||||
<field name="signal">state_running_set</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="trans_campaign_running_done" model="workflow.transition">
|
||||
<field name="act_from" ref="act_marketing_campaign_running"/>
|
||||
<field name="act_to" ref="act_marketing_campaign_done"/>
|
||||
<field name="signal">state_done_set</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="trans_campaign_running_cancel" model="workflow.transition">
|
||||
<field name="act_from" ref="act_marketing_campaign_running"/>
|
||||
<field name="act_to" ref="act_marketing_campaign_cancel"/>
|
||||
@@ -72,15 +71,14 @@
|
||||
<field name="signal">state_draft_set</field>
|
||||
</record>
|
||||
|
||||
<!-- ==================Marketing Campaign Segment================== -->
|
||||
|
||||
<!-- Marketing Campaign Segment -->
|
||||
<record id="wkf_marketing_campaign_segment" model="workflow">
|
||||
<field name="name">marketing.campaign.segment.basic</field>
|
||||
<field name="osv">marketing.campaign.segment</field>
|
||||
<field name="on_create">True</field>
|
||||
</record>
|
||||
|
||||
<!-- Activity -->
|
||||
<!-- Activity -->
|
||||
<record id="act_marketing_campaign_segment_draft" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf_marketing_campaign_segment"/>
|
||||
<field name="flow_start">True</field>
|
||||
@@ -102,7 +100,7 @@
|
||||
<field name="kind">function</field>
|
||||
<field name="action">state_done_set()</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="act_marketing_campaign_segment_cancel" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf_marketing_campaign_segment"/>
|
||||
<field name="name">cancel</field>
|
||||
@@ -111,19 +109,19 @@
|
||||
<field name="flow_stop" eval="False"/>
|
||||
</record>
|
||||
|
||||
<!-- Transition -->
|
||||
<!-- Transition -->
|
||||
<record id="trans_marketing_campaign_segment_draft_running" model="workflow.transition">
|
||||
<field name="act_from" ref="act_marketing_campaign_segment_draft"/>
|
||||
<field name="act_to" ref="act_marketing_campaign_segment_running"/>
|
||||
<field name="signal">state_running_set</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="trans_campaign_segment_running_done" model="workflow.transition">
|
||||
<field name="act_from" ref="act_marketing_campaign_segment_running"/>
|
||||
<field name="act_to" ref="act_marketing_campaign_segment_done"/>
|
||||
<field name="signal">state_done_set</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="trans_campaign_segment_running_cancel" model="workflow.transition">
|
||||
<field name="act_from" ref="act_marketing_campaign_segment_running"/>
|
||||
<field name="act_to" ref="act_marketing_campaign_segment_cancel"/>
|
||||
@@ -141,5 +139,6 @@
|
||||
<field name="act_to" ref="act_marketing_campaign_segment_draft"/>
|
||||
<field name="signal">state_draft_set</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -146,7 +146,7 @@ class membership_line(osv.osv):
|
||||
'date_to': fields.date('To', readonly=True),
|
||||
'date_cancel': fields.date('Cancel date'),
|
||||
'date': fields.date('Join Date', help="Date on which member has joined the membership"),
|
||||
'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Sale Price'), required=True, help='Amount for the membership'),
|
||||
'member_price': fields.float('Member Price', digits_compute= dp.get_precision('Sale Price'), required=True, help='Amount for the membership'),
|
||||
'account_invoice_line': fields.many2one('account.invoice.line', 'Account Invoice line', readonly=True),
|
||||
'account_invoice_id': fields.related('account_invoice_line', 'invoice_id', type='many2one', relation='account.invoice', string='Invoice', readonly=True),
|
||||
'state': fields.function(_state,
|
||||
|
||||
@@ -19,9 +19,9 @@
|
||||
<field name="categ_id" widget="selection" operator="child_of"/>
|
||||
<newline/>
|
||||
<group expand='0' string='Group by...'>
|
||||
<filter string='Category' icon="terp-stock_symbol-selection" domain="[]" context="{'group_by' : 'categ_id'}" />
|
||||
<filter string='Category' icon="terp-stock_symbol-selection" domain="[]" context="{'group_by' : 'categ_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string='Date From' icon="terp-go-month" domain="[]" context="{'group_by' : 'membership_date_from'}" />
|
||||
<filter string='Date From' icon="terp-go-month" domain="[]" context="{'group_by' : 'membership_date_from'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
@@ -177,7 +177,7 @@
|
||||
<filter icon="terp-personal" name="all_non_members" domain="[('membership_state', 'in', ['none','canceled','old','waiting'])]" string="All non Members" help="None/Canceled/Old/Waiting"/>
|
||||
<filter icon="terp-personal" name="all_members" domain="[('membership_state', 'in', ['invoiced','paid','free'])]" string="All Members" help="Invoiced/Paid/Free"/>
|
||||
<group expand="0" string="Group By..." colspan="10" col="8">
|
||||
<filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by' : 'user_id'}" />
|
||||
<filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by' : 'user_id'}"/>
|
||||
<filter string="Associate Member" name = "associate" icon="terp-partner" domain="[]" context="{'group_by':'associate_member'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string=" Membership State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'membership_state'}"/>
|
||||
@@ -288,7 +288,7 @@
|
||||
<field name="inherit_id" ref="product.product_normal_form_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="list_price" position="after">
|
||||
<field name="member_price"/>
|
||||
<field name="member_price" groups="base.group_user"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
"website" : "http://www.openerp.com",
|
||||
"category" : "Manufacturing",
|
||||
"sequence": 18,
|
||||
"summary": "Manufacturing, Production, Bill of Materials",
|
||||
"summary": "Manufacturing Orders, Bill of Materials, Routing",
|
||||
"images" : ["images/bill_of_materials.jpeg", "images/manufacturing_order.jpeg", "images/planning_manufacturing_order.jpeg", "images/production_analysis.jpeg", "images/production_dashboard.jpeg","images/routings.jpeg","images/work_centers.jpeg"],
|
||||
"depends" : ["procurement", "stock", "resource", "purchase", "product","process"],
|
||||
"description": """
|
||||
|
||||
@@ -686,8 +686,8 @@
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Consumed Products">
|
||||
<group>
|
||||
<group groups="stock.group_locations">
|
||||
<group groups="stock.group_locations">
|
||||
<group>
|
||||
<field name="bom_id" domain="[('product_id','=',product_id)]" context="{'default_product_id': product_id}" on_change="bom_id_change(bom_id)"/>
|
||||
</group>
|
||||
<group>
|
||||
|
||||
@@ -1,112 +1,106 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
# -----------------------------------------------------------
|
||||
# Activities
|
||||
# -----------------------------------------------------------
|
||||
|
||||
<!-- Activities -->
|
||||
<record model="workflow" id="wkf_prod_workcenter">
|
||||
<field name="name">mrp.production.workcenter.line.basic</field>
|
||||
<field name="osv">mrp.production.workcenter.line</field>
|
||||
<field name="on_create">True</field>
|
||||
</record>
|
||||
|
||||
<record model="workflow.activity" id="prod_act_wc_draft">
|
||||
<field name="wkf_id" ref="wkf_prod_workcenter"/>
|
||||
<field name="flow_start">True</field>
|
||||
<field name="name">draft</field>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">action_draft()</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="prod_act_wc_start">
|
||||
<field name="wkf_id" ref="wkf_prod_workcenter"/>
|
||||
<field name="name">startworking</field>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">action_start_working()</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="prod_act_wc_cancel">
|
||||
<field name="wkf_id" ref="wkf_prod_workcenter"/>
|
||||
<field name="name">cancel</field>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">action_cancel()</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="prod_act_wc_pause">
|
||||
<field name="wkf_id" ref="wkf_prod_workcenter"/>
|
||||
<field name="name">pause</field>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">action_pause()</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="prod_act_wc_resume">
|
||||
<field name="wkf_id" ref="wkf_prod_workcenter"/>
|
||||
<field name="name">resume</field>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">action_resume()</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="prod_act_wc_done">
|
||||
<field name="wkf_id" ref="wkf_prod_workcenter"/>
|
||||
<field name="name">done</field>
|
||||
<field name="kind">function</field>
|
||||
<field name="flow_stop">True</field>
|
||||
<field name="action">action_done()</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="prod_act_wc_draft">
|
||||
<field name="wkf_id" ref="wkf_prod_workcenter"/>
|
||||
<field name="flow_start">True</field>
|
||||
<field name="name">draft</field>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">action_draft()</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="prod_act_wc_start">
|
||||
<field name="wkf_id" ref="wkf_prod_workcenter"/>
|
||||
<field name="name">startworking</field>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">action_start_working()</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="prod_act_wc_cancel">
|
||||
<field name="wkf_id" ref="wkf_prod_workcenter"/>
|
||||
<field name="name">cancel</field>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">action_cancel()</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="prod_act_wc_pause">
|
||||
<field name="wkf_id" ref="wkf_prod_workcenter"/>
|
||||
<field name="name">pause</field>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">action_pause()</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="prod_act_wc_resume">
|
||||
<field name="wkf_id" ref="wkf_prod_workcenter"/>
|
||||
<field name="name">resume</field>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">action_resume()</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="prod_act_wc_done">
|
||||
<field name="wkf_id" ref="wkf_prod_workcenter"/>
|
||||
<field name="name">done</field>
|
||||
<field name="kind">function</field>
|
||||
<field name="flow_stop">True</field>
|
||||
<field name="action">action_done()</field>
|
||||
</record>
|
||||
|
||||
# -----------------------------------------------------------
|
||||
# Transition
|
||||
# -----------------------------------------------------------
|
||||
<!-- Transition -->
|
||||
<record model="workflow.transition" id="prod_trans_wc_draft_start">
|
||||
<field name="act_from" ref="prod_act_wc_draft"/>
|
||||
<field name="act_to" ref="prod_act_wc_start"/>
|
||||
<field name="signal">button_start_working</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="prod_trans_wc_start_done">
|
||||
<field name="act_from" ref="prod_act_wc_start"/>
|
||||
<field name="act_to" ref="prod_act_wc_done"/>
|
||||
<field name="signal">button_done</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="prod_trans_wc_draft_cancel">
|
||||
<field name="act_from" ref="prod_act_wc_draft"/>
|
||||
<field name="act_to" ref="prod_act_wc_cancel"/>
|
||||
<field name="signal">button_cancel</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="prod_trans_wc_cancel_draft">
|
||||
<field name="act_from" ref="prod_act_wc_cancel"/>
|
||||
<field name="act_to" ref="prod_act_wc_draft"/>
|
||||
<field name="signal">button_draft</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="prod_trans_wc_start_cancel">
|
||||
<field name="act_from" ref="prod_act_wc_start"/>
|
||||
<field name="act_to" ref="prod_act_wc_cancel"/>
|
||||
<field name="signal">button_cancel</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="prod_trans_wc_start_pause">
|
||||
<field name="act_from" ref="prod_act_wc_start"/>
|
||||
<field name="act_to" ref="prod_act_wc_pause"/>
|
||||
<field name="signal">button_pause</field>
|
||||
</record>
|
||||
|
||||
<record model="workflow.transition" id="prod_trans_wc_draft_start">
|
||||
<field name="act_from" ref="prod_act_wc_draft"/>
|
||||
<field name="act_to" ref="prod_act_wc_start"/>
|
||||
<field name="signal">button_start_working</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="prod_trans_wc_start_done">
|
||||
<field name="act_from" ref="prod_act_wc_start"/>
|
||||
<field name="act_to" ref="prod_act_wc_done"/>
|
||||
<field name="signal">button_done</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="prod_trans_wc_draft_cancel">
|
||||
<field name="act_from" ref="prod_act_wc_draft"/>
|
||||
<field name="act_to" ref="prod_act_wc_cancel"/>
|
||||
<field name="signal">button_cancel</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="prod_trans_wc_cancel_draft">
|
||||
<field name="act_from" ref="prod_act_wc_cancel"/>
|
||||
<field name="act_to" ref="prod_act_wc_draft"/>
|
||||
<field name="signal">button_draft</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="prod_trans_wc_start_cancel">
|
||||
<field name="act_from" ref="prod_act_wc_start"/>
|
||||
<field name="act_to" ref="prod_act_wc_cancel"/>
|
||||
<field name="signal">button_cancel</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="prod_trans_wc_start_pause">
|
||||
<field name="act_from" ref="prod_act_wc_start"/>
|
||||
<field name="act_to" ref="prod_act_wc_pause"/>
|
||||
<field name="signal">button_pause</field>
|
||||
</record>
|
||||
|
||||
<record model="workflow.transition" id="prod_trans_wc_pause_resume">
|
||||
<field name="act_from" ref="prod_act_wc_pause"/>
|
||||
<field name="act_to" ref="prod_act_wc_resume"/>
|
||||
<field name="signal">button_resume</field>
|
||||
</record>
|
||||
|
||||
<record model="workflow.transition" id="prod_trans_wc_resume_pause">
|
||||
<field name="act_from" ref="prod_act_wc_resume"/>
|
||||
<field name="act_to" ref="prod_act_wc_pause"/>
|
||||
<field name="signal">button_pause</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="prod_trans_wc_resume_cancel">
|
||||
<field name="act_from" ref="prod_act_wc_resume"/>
|
||||
<field name="act_to" ref="prod_act_wc_cancel"/>
|
||||
<field name="signal">button_cancel</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="prod_trans_wc_resume_done">
|
||||
<field name="act_from" ref="prod_act_wc_resume"/>
|
||||
<field name="act_to" ref="prod_act_wc_done"/>
|
||||
<field name="signal">button_done</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="prod_trans_wc_pause_resume">
|
||||
<field name="act_from" ref="prod_act_wc_pause"/>
|
||||
<field name="act_to" ref="prod_act_wc_resume"/>
|
||||
<field name="signal">button_resume</field>
|
||||
</record>
|
||||
|
||||
<record model="workflow.transition" id="prod_trans_wc_resume_pause">
|
||||
<field name="act_from" ref="prod_act_wc_resume"/>
|
||||
<field name="act_to" ref="prod_act_wc_pause"/>
|
||||
<field name="signal">button_pause</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="prod_trans_wc_resume_cancel">
|
||||
<field name="act_from" ref="prod_act_wc_resume"/>
|
||||
<field name="act_to" ref="prod_act_wc_cancel"/>
|
||||
<field name="signal">button_cancel</field>
|
||||
</record>
|
||||
<record model="workflow.transition" id="prod_trans_wc_resume_done">
|
||||
<field name="act_from" ref="prod_act_wc_resume"/>
|
||||
<field name="act_to" ref="prod_act_wc_done"/>
|
||||
<field name="signal">button_done</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
'version': '1.0.1',
|
||||
'category': 'Point Of Sale',
|
||||
"sequence": 6,
|
||||
"summary": "Touchscreen to Manage your Shop",
|
||||
"summary": "Touchscreen Interface for Shops",
|
||||
'description': """
|
||||
This module provides a quick and easy sale process.
|
||||
===================================================
|
||||
|
||||
@@ -22,18 +22,20 @@
|
||||
{
|
||||
'name' : "Portal",
|
||||
'version' : "1.0",
|
||||
'depends' : ["base", "share"],
|
||||
'depends' : ["base", "share", "anonymous"],
|
||||
'author' : "OpenERP SA",
|
||||
'category': 'Portal',
|
||||
'description': """
|
||||
This module defines 'portals' to customize the access to your OpenERP database for external users.
|
||||
==================================================================================================
|
||||
Customize access to your OpenERP database to external users by creating portals.
|
||||
|
||||
A portal defines customized user menu and access rights for a group of users
|
||||
(the ones associated to that portal). It also associates user groups to the
|
||||
portal users (adding a group in the portal automatically adds it to the portal
|
||||
users). That feature is very handy when used in combination with the
|
||||
module 'share'.
|
||||
A portal defines a specific user menu and access rights for its members. This
|
||||
menu can ben seen by portal members, anonymous users and any other user that
|
||||
have the access to technical features (e.g. the administrator).
|
||||
Also, each portal member is linked to a specific partner.
|
||||
|
||||
The module also associates user groups to the portal users (adding a group in
|
||||
the portal automatically adds it to the portal users, etc). That feature is
|
||||
very handy when used in combination with the module 'share'.
|
||||
""",
|
||||
'website': 'http://www.openerp.com',
|
||||
'data': [
|
||||
|
||||
+15
-15
@@ -32,7 +32,7 @@ class portal(osv.osv):
|
||||
_name = 'res.portal'
|
||||
_description = 'Portal'
|
||||
_inherits = {'res.groups': 'group_id'}
|
||||
|
||||
|
||||
_columns = {
|
||||
'group_id': fields.many2one('res.groups', required=True, ondelete='cascade',
|
||||
string='Group',
|
||||
@@ -53,40 +53,40 @@ class portal(osv.osv):
|
||||
string='Widgets',
|
||||
help='Widgets assigned to portal users'),
|
||||
}
|
||||
|
||||
|
||||
def copy(self, cr, uid, id, values, context=None):
|
||||
""" override copy(): menu_action_id must be different """
|
||||
values['menu_action_id'] = None
|
||||
return super(portal, self).copy(cr, uid, id, values, context)
|
||||
|
||||
|
||||
def create(self, cr, uid, values, context=None):
|
||||
""" extend create() to assign the portal menu to users """
|
||||
if context is None:
|
||||
context = {}
|
||||
|
||||
|
||||
# create portal (admin should not be included)
|
||||
context['noadmin'] = True
|
||||
portal_id = super(portal, self).create(cr, uid, values, context)
|
||||
|
||||
|
||||
# assign menu action and widgets to users
|
||||
if values.get('users') or values.get('menu_action_id'):
|
||||
self._assign_menu(cr, uid, [portal_id], context)
|
||||
if values.get('users') or values.get('widget_ids'):
|
||||
self._assign_widgets(cr, uid, [portal_id], context)
|
||||
|
||||
|
||||
return portal_id
|
||||
|
||||
|
||||
def write(self, cr, uid, ids, values, context=None):
|
||||
""" extend write() to reflect changes on users """
|
||||
# first apply portal changes
|
||||
super(portal, self).write(cr, uid, ids, values, context)
|
||||
|
||||
|
||||
# assign menu action and widgets to users
|
||||
if values.get('users') or values.get('menu_action_id'):
|
||||
self._assign_menu(cr, uid, ids, context)
|
||||
if values.get('users') or values.get('widget_ids'):
|
||||
self._assign_widgets(cr, uid, ids, context)
|
||||
|
||||
|
||||
# if parent_menu_id has changed, apply the change on menu_action_id
|
||||
if 'parent_menu_id' in values:
|
||||
act_window_obj = self.pool.get('ir.actions.act_window')
|
||||
@@ -95,7 +95,7 @@ class portal(osv.osv):
|
||||
if action_ids:
|
||||
action_values = {'domain': [('parent_id', '=', values['parent_menu_id'])]}
|
||||
act_window_obj.write(cr, uid, action_ids, action_values, context)
|
||||
|
||||
|
||||
return True
|
||||
|
||||
def _assign_menu(self, cr, uid, ids, context=None):
|
||||
@@ -131,26 +131,26 @@ portal()
|
||||
|
||||
class portal_override_menu(osv.osv):
|
||||
"""
|
||||
extend res.portal with a boolean field 'Override Users Menu', that
|
||||
Extend res.portal with a boolean field 'Override Users Menu', that
|
||||
triggers the creation or removal of menu_action_id
|
||||
"""
|
||||
_name = 'res.portal'
|
||||
_inherit = 'res.portal'
|
||||
|
||||
|
||||
def _get_override_menu(self, cr, uid, ids, field_name, arg, context=None):
|
||||
assert field_name == 'override_menu'
|
||||
result = {}
|
||||
for p in self.browse(cr, uid, ids, context):
|
||||
result[p.id] = bool(p.menu_action_id)
|
||||
return result
|
||||
|
||||
|
||||
def _set_override_menu(self, cr, uid, id, field_name, field_value, arg, context=None):
|
||||
assert field_name == 'override_menu'
|
||||
if field_value:
|
||||
self.create_menu_action(cr, uid, id, context)
|
||||
else:
|
||||
self.write(cr, uid, [id], {'menu_action_id': False}, context)
|
||||
|
||||
|
||||
def create_menu_action(self, cr, uid, id, context=None):
|
||||
""" create, if necessary, a menu action that opens the menu items below
|
||||
parent_menu_id """
|
||||
@@ -169,7 +169,7 @@ class portal_override_menu(osv.osv):
|
||||
}
|
||||
action_id = actions_obj.create(cr, uid, action_values, context)
|
||||
self.write(cr, uid, [id], {'menu_action_id': action_id}, context)
|
||||
|
||||
|
||||
_columns = {
|
||||
'override_menu': fields.function(
|
||||
_get_override_menu, fnct_inv=_set_override_menu,
|
||||
|
||||
@@ -1,13 +1,42 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<data>
|
||||
|
||||
<record id="portal" model="res.portal">
|
||||
<field name="name">Portal</field>
|
||||
<field name="group_id" ref="group_portal_member"/>
|
||||
<field name="override_menu" eval="True"/>
|
||||
<field name="parent_menu_id" ref="portal_members_root_menu"/>
|
||||
<field name="override_menu" eval="False"/>
|
||||
</record>
|
||||
|
||||
<!-- Mail group for the company's news -->
|
||||
<record id="company_news_feed" model="mail.group">
|
||||
<field name="name">Company's news feed</field>
|
||||
</record>
|
||||
|
||||
<record id="action_news" model="ir.actions.act_window">
|
||||
<field name="name">News</field>
|
||||
<field name="res_model">mail.group</field>
|
||||
<field name="res_id" ref="company_news_feed"/>
|
||||
<field name="view_mode">form</field>
|
||||
</record>
|
||||
|
||||
<!-- Top menu item -->
|
||||
<menuitem name="Portal"
|
||||
id="portal_menu"
|
||||
groups="base.group_no_one,portal.group_portal_member,anonymous.group_anonymous"
|
||||
sequence="20"/>
|
||||
|
||||
<menuitem name="Our company" id="portal_company" parent="portal_menu" sequence="10"/>
|
||||
<menuitem name="News" id="portal_company_news" parent="portal_company" sequence="10" action="action_news"/>
|
||||
|
||||
<!--
|
||||
Create menu items that we'll leave empty for now - they'll be
|
||||
filled up by other portal modules.
|
||||
-->
|
||||
<menuitem name="Orders" id="portal_orders" parent="portal_menu" sequence="20"/>
|
||||
<menuitem name="Invoices and Payments" id="portal_invoices_payements" parent="portal_menu" sequence="30"/>
|
||||
<menuitem name="Projects" id="portal_projects" parent="portal_menu" sequence="40"/>
|
||||
<menuitem name="After Sale Services" id="portal_after_sales" parent="portal_menu" sequence="50"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -2,21 +2,6 @@
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<!-- menu Administration/Portals/Portals -->
|
||||
<record id="portal_list_action" model="ir.actions.act_window">
|
||||
<field name="name">Portals</field>
|
||||
<field name="res_model">res.portal</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<!-- a context is necessary to get the right portal form view -->
|
||||
<field name="context">{'form_view_ref': 'portal.portal_form_view'}</field>
|
||||
<field name="help">
|
||||
A portal helps defining specific views and rules for a group of users (the
|
||||
portal group). A portal menu, widgets and specific groups may be assigned to
|
||||
the portal's users.
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- portal tree view -->
|
||||
<record id="portal_list_view" model="ir.ui.view">
|
||||
<field name="name">Portal List</field>
|
||||
@@ -28,7 +13,6 @@ the portal's users.
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- portal form view -->
|
||||
<record id="portal_form_view" model="ir.ui.view">
|
||||
<field name="name">Portal Form</field>
|
||||
@@ -63,42 +47,23 @@ the portal's users.
|
||||
</page>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="company_news_feed" model="mail.group">
|
||||
<field name="name">Company's news feed</field>
|
||||
<!-- action Administration/Portals/Portals -->
|
||||
<record id="portal_list_action" model="ir.actions.act_window">
|
||||
<field name="name">Portals</field>
|
||||
<field name="res_model">res.portal</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<!-- a context is necessary to get the right portal form view -->
|
||||
<field name="context">{'form_view_ref': 'portal.portal_form_view'}</field>
|
||||
<field name="help">
|
||||
A portal helps defining specific views and rules for a group of users (the
|
||||
portal group). A portal menu, widgets and specific groups may be assigned to
|
||||
the portal's users.
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_news" model="ir.actions.act_window">
|
||||
<field name="name">News</field>
|
||||
<field name="res_model">mail.group</field>
|
||||
<field name="res_id" ref="company_news_feed"/>
|
||||
<field name="view_mode">form</field>
|
||||
</record>
|
||||
|
||||
|
||||
<!-- module's menu -->
|
||||
<!-- menu Administration/Portals -->
|
||||
<menuitem name="Portals Settings" id="portal_menu_settings" parent="base.menu_administration"
|
||||
groups="group_portal_manager"/>
|
||||
|
||||
<!-- menu Administration/Portals/Portals -->
|
||||
<menuitem name="Portals Settings" id="portal_menu_settings" parent="base.menu_administration" groups="group_portal_manager"/>
|
||||
<menuitem name="Portals" id="portal_list_menu" parent="portal_menu_settings" action="portal_list_action"/>
|
||||
|
||||
<!-- root menu for portal members (chrooted in this menu) -->
|
||||
<menuitem name="Portal Members Root Menu" id="portal_members_root_menu" parent="portal_menu_settings"/>
|
||||
<menuitem name="Portal Member's Menu" id="menu_portal" parent="portal_members_root_menu"/>
|
||||
<menuitem name="Our company" id="portal_company"
|
||||
parent="menu_portal" sequence="10"/>
|
||||
<menuitem name="News" id="portal_company_news"
|
||||
parent="portal_company" sequence="10" action="action_news"/>
|
||||
|
||||
<menuitem name="Orders" id="portal_orders"
|
||||
parent="menu_portal" sequence="20"/>
|
||||
<menuitem name="Invoices and Payments" id="portal_invoices_payements"
|
||||
parent="menu_portal" sequence="30"/>
|
||||
<menuitem name="Projects" id="portal_projects"
|
||||
parent="menu_portal" sequence="40"/>
|
||||
<menuitem name="After Sale Services" id="portal_after_sales"
|
||||
parent="menu_portal" sequence="50"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -30,7 +30,5 @@ class res_users(osv.osv):
|
||||
string='Related Partner'),
|
||||
}
|
||||
|
||||
res_users()
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<!-- add partner field in user form -->
|
||||
<record id="view_users_form" model="ir.ui.view">
|
||||
<field name="name">res.portal.users.form</field>
|
||||
@@ -13,5 +14,6 @@
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<data noupdate="1">
|
||||
|
||||
<!-- Don't use any implied_ids here; this group behavior is particular -->
|
||||
<!-- Don't use any implied_ids here; this group's behavior is particular -->
|
||||
<record id="group_portal_member" model="res.groups">
|
||||
<field name="name">Portal Member</field>
|
||||
<field name="comment">Portal members can access information provided by the portal menu and the others module it's linked with. Also, portal members are chrooted in a specific menu.</field>
|
||||
<field name="comment">Portal members can access information through the portal menu. Also, they are chrooted in this specific menu.</field>
|
||||
</record>
|
||||
|
||||
<record id="module_category_portal" model="ir.module.category">
|
||||
|
||||
@@ -26,15 +26,15 @@
|
||||
'category': 'Tools',
|
||||
'complexity': "easy",
|
||||
'description': """
|
||||
This module adds claim menu and features to your portal if claim and portal are
|
||||
This module adds claim menu and features to your portal if claim and portal are
|
||||
installed.
|
||||
""",
|
||||
'author': 'OpenERP SA',
|
||||
'depends': ['crm_claim','portal'],
|
||||
'data': [
|
||||
'security/portal_security.xml',
|
||||
'portal_claim_view.xml',
|
||||
"security/ir.model.access.csv",
|
||||
'security/ir.model.access.csv',
|
||||
'security/portal_security.xml',
|
||||
],
|
||||
'installable': True,
|
||||
'auto_install':True,
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<data noupdate="1">
|
||||
|
||||
<record id="portal_stock_picking_user_rule" model="ir.rule">
|
||||
<field name="name">Personal Claims</field>
|
||||
<field name="name">Portal Personal Claims</field>
|
||||
<field ref="crm_claim.model_crm_claim" name="model_id"/>
|
||||
<field name="domain_force">[('partner_id','child_of',user.partner_id.id)]</field>
|
||||
<field name="groups" eval="[(4, ref('portal.group_portal_member'))]"/>
|
||||
|
||||
@@ -26,18 +26,20 @@
|
||||
'category': 'Tools',
|
||||
'complexity': "easy",
|
||||
'description': """
|
||||
This module adds crm menu and features (contact form) to your portal if crm and
|
||||
portal are installed.
|
||||
This module adds a contact page (with a contact form creating a lead when
|
||||
submitted) to your portal if crm and portal are installed.
|
||||
""",
|
||||
'author': 'OpenERP SA',
|
||||
'depends': ['crm','portal'],
|
||||
'data': [
|
||||
'security/ir.model.access.csv',
|
||||
'wizard/contact_view.xml',
|
||||
],
|
||||
'installable': True,
|
||||
'auto_install':True,
|
||||
'installable': True
|
||||
, 'auto_install':True,
|
||||
'category':'Hidden',
|
||||
'css': [
|
||||
'static/src/css/portal_crm.css',
|
||||
],
|
||||
|
||||
}
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
|
||||
|
@@ -0,0 +1,42 @@
|
||||
/* Root container */
|
||||
.openerp .oe_portal_crm_contact {
|
||||
width: 800px;
|
||||
margin: auto;
|
||||
padding: 8px 0 0 0;
|
||||
}
|
||||
|
||||
/* Contact form section */
|
||||
.openerp .oe_portal_crm_contact .oe_portal_crm_contact_form {
|
||||
margin-right: 10px;
|
||||
}
|
||||
.openerp .oe_portal_crm_contact .oe_portal_crm_contact_form input[type="text"] {
|
||||
width: 40%;
|
||||
}
|
||||
|
||||
/* Offices list section */
|
||||
.openerp .oe_portal_crm_contact .oe_portal_crm_office {
|
||||
background: #DDD;
|
||||
-moz-border-radius: 4px;
|
||||
-webkit-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
-moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
||||
-webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
||||
-o-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
||||
-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.4);
|
||||
}
|
||||
.openerp .oe_portal_crm_contact .oe_portal_crm_office * {
|
||||
background: transparent !important;
|
||||
}
|
||||
.openerp .oe_portal_crm_contact .oe_portal_crm_office .oe_fold_column.oe_kanban_record {
|
||||
float: none;
|
||||
display: block;
|
||||
width: 100%;
|
||||
margin-bottom: 5px;
|
||||
padding: 5px;
|
||||
}
|
||||
.openerp .oe_portal_crm_contact .oe_portal_crm_office li:last-child {
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
.openerp .oe_portal_crm_contact .oe_portal_crm_office ul:last-child li:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
@@ -1,33 +1,90 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2011 OpenERP S.A (<http://www.openerp.com>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# 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 Affero General Public License for more details.
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from openerp.osv import osv, fields
|
||||
from openerp import SUPERUSER_ID
|
||||
|
||||
class crm_contact_us(osv.TransientModel):
|
||||
""" Create new leads through the "contact us" form """
|
||||
_name = 'portal_crm.crm_contact_us'
|
||||
_description = 'Contact form for the portal'
|
||||
_inherit = 'crm.lead'
|
||||
_columns = {
|
||||
'company_ids' : fields.many2many('res.company', string='Companies', readonly=True),
|
||||
}
|
||||
|
||||
def _get_companies(self, cr, uid, context=None):
|
||||
"""
|
||||
Fetch companies in order to display them in the wizard view
|
||||
|
||||
@return a list of ids of the companies
|
||||
"""
|
||||
r = self.pool.get('res.company').search(cr, uid, [], context=context)
|
||||
return r
|
||||
|
||||
def _get_current_user_email(self, cr, uid, context=None):
|
||||
"""
|
||||
If the user is logged in (i.e. not anonymous), get the user's email to
|
||||
pre-fill the email_from field.
|
||||
|
||||
@return current user's email if the user isn't "anonymous", None otherwise
|
||||
"""
|
||||
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
|
||||
|
||||
if (user.login != 'anonymous'):
|
||||
return user.user_email
|
||||
else:
|
||||
return None
|
||||
|
||||
_defaults = {
|
||||
'email_from' : _get_current_user_email,
|
||||
'company_ids' : _get_companies,
|
||||
}
|
||||
|
||||
def create(self, cr, uid, values, context=None):
|
||||
"""
|
||||
Since they potentially sensitive, we don't want any user to be able to
|
||||
read datas generated through this module. That's why we'll write those
|
||||
information in the crm.lead table and leave blank entries in the
|
||||
portal_crm.crm_contact_us table. This is why the create() method is
|
||||
overridden.
|
||||
"""
|
||||
Since they potentially sensitive, we don't want any user to be able to
|
||||
read datas generated through this module. That's why we'll write those
|
||||
information in the crm.lead table and leave blank entries in the
|
||||
portal_crm.crm_contact_us table. This is why the create() method is
|
||||
overwritten.
|
||||
"""
|
||||
crm_lead = self.pool.get('crm.lead')
|
||||
|
||||
"""
|
||||
Because of the complex inheritance of the crm.lead model and the other
|
||||
models implied (like mail.thread, among others, that performs a read
|
||||
when its create() method is called (in method message_get_subscribers()),
|
||||
it is quite complicated to set proper rights for this object.
|
||||
Therefore, user #1 will perform the creation until a better workaround
|
||||
is figured out.
|
||||
"""
|
||||
crm_lead.create(cr, 1, dict(values,user_id=False), context)
|
||||
|
||||
""" Create an empty record in the portal_crm.crm_contact_us table """
|
||||
return super(crm_contact_us, self).create(cr, uid, {})
|
||||
"""
|
||||
Because of the complex inheritance of the crm.lead model and the other
|
||||
models implied (like mail.thread, among others, that performs a read
|
||||
when its create() method is called (in method message_get_subscribers()),
|
||||
it is quite complicated to set proper rights for this object.
|
||||
Therefore, user SUPERUSER_ID will perform the creation until a better
|
||||
workaround is figured out.
|
||||
"""
|
||||
values['contact_name'] = values['name']
|
||||
crm_lead.create(cr, SUPERUSER_ID, dict(values,user_id=False), context)
|
||||
|
||||
"""
|
||||
Create an empty record in the portal_crm.crm_contact_us table.
|
||||
Since the 'name' field is mandatory, give an empty string to avoid an integrity error.
|
||||
"""
|
||||
return super(crm_contact_us, self).create(cr, uid, {'name': ' '})
|
||||
|
||||
def submit(self, cr, uid, ids, context=None):
|
||||
""" When the form is submitted, redirect the user to a "Thanks" message """
|
||||
@@ -36,5 +93,6 @@ class crm_contact_us(osv.TransientModel):
|
||||
'view_type': 'form',
|
||||
'res_model': self._name,
|
||||
'res_id': ids[0],
|
||||
'view_id': self.pool.get('ir.model.data').get_object_reference(cr, uid, 'portal_crm', 'wizard_contact_form_view_thanks')[1]
|
||||
'view_id': self.pool.get('ir.model.data').get_object_reference(cr, uid, 'portal_crm', 'wizard_contact_form_view_thanks')[1],
|
||||
'target': 'inline'
|
||||
}
|
||||
|
||||
@@ -8,16 +8,70 @@
|
||||
<field name="model">portal_crm.crm_contact_us</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Contact Us wizard view">
|
||||
<group col="2">
|
||||
<field name="contact_name" string="Name"/>
|
||||
<field name="name" string="Company"/>
|
||||
<field name="email_from"/>
|
||||
<field name="phone"/>
|
||||
<field name="description" string="Your question"/>
|
||||
<label string=""/>
|
||||
<button string="Submit" name="submit" type="object"/>
|
||||
</group>
|
||||
<form string="Contact wizard view" version="7.0">
|
||||
<div class="oe_portal_crm_contact">
|
||||
<h1>Contact us</h1>
|
||||
<table>
|
||||
<tr>
|
||||
<td width="70%%">
|
||||
<div class="oe_portal_crm_contact_form">
|
||||
<group>
|
||||
<field name="name"/>
|
||||
<field name="partner_name"/>
|
||||
<field name="email_from"/>
|
||||
<field name="phone"/>
|
||||
<field name="description"/>
|
||||
<button string="Submit" name="submit" type="object"/>
|
||||
</group>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<div class="oe_portal_crm_office">
|
||||
<field name="company_ids" widget="many2many_kanban">
|
||||
<kanban>
|
||||
<field name="name"/>
|
||||
<field name="email"/>
|
||||
<field name="phone"/>
|
||||
<field name="street"/>
|
||||
<field name="street2"/>
|
||||
<field name="zip"/>
|
||||
<field name="city"/>
|
||||
<field name="country_id"/>
|
||||
<field name="state_id"/>
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<h4><field name="name"/></h4>
|
||||
<ul class="oe_portal_crm_address">
|
||||
<li t-if="record.street"><field name="street"/></li>
|
||||
<li t-if="record.street2"><field name="street2"/></li>
|
||||
<li t-if="record.zip"><field name="zip"/></li>
|
||||
<li t-if="record.city"><field name="city"/></li>
|
||||
<li t-if="record.country_id"><field name="country_id"/></li>
|
||||
</ul>
|
||||
<ul class="oe_portal_crm_contact_info">
|
||||
<li t-if="record.phone"><field name="phone"/></li>
|
||||
<li t-if="record.email.raw_value">
|
||||
<a title="Mail" t-att-href="'mailto:'+record.email.value">
|
||||
<field name="email"/>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</field>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<div class="oe_portal_crm_team">
|
||||
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
@@ -31,9 +85,9 @@
|
||||
<field name="priority">99</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Thank you">
|
||||
<!--
|
||||
make sure there is at least one field in the view,
|
||||
otherwise the orm will try to select all the model's
|
||||
<!--
|
||||
make sure there is at least one field in the view,
|
||||
otherwise the orm will try to select all the model's
|
||||
records and this will result in a permission denied error
|
||||
-->
|
||||
<field name="name" invisible="1"/>
|
||||
@@ -44,9 +98,10 @@
|
||||
|
||||
<!-- wizard action -->
|
||||
<record id="action_wizard_contact_us" model="ir.actions.act_window">
|
||||
<field name="name">Contact Us</field>
|
||||
<field name="name">Contact</field>
|
||||
<field name="res_model">portal_crm.crm_contact_us</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">inline</field>
|
||||
</record>
|
||||
|
||||
<!-- attach it to the portal menu -->
|
||||
|
||||
@@ -19,3 +19,4 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import event
|
||||
|
||||
@@ -26,12 +26,13 @@
|
||||
'category': 'Tools',
|
||||
'complexity': "easy",
|
||||
'description': """
|
||||
This module adds event menu and features to your portal if event and portal are
|
||||
This module adds event menu and features to your portal if event and portal are
|
||||
installed.
|
||||
""",
|
||||
'author': 'OpenERP SA',
|
||||
'depends': ['event','portal'],
|
||||
'data': [
|
||||
'event_view.xml',
|
||||
'security/portal_security.xml',
|
||||
'portal_event_view.xml',
|
||||
'security/ir.model.access.csv',
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# 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 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 Affero General Public License for more details.
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import osv, fields
|
||||
|
||||
class event_event(osv.osv):
|
||||
_description = 'Portal event'
|
||||
_inherit = 'event.event'
|
||||
|
||||
"""
|
||||
``visibility``: defines if the event appears on the portal's event page
|
||||
- 'public' means the event will appear for everyone (anonymous)
|
||||
- 'private' means the event won't appear
|
||||
"""
|
||||
_columns = {
|
||||
'visibility': fields.selection([('public', 'Public'),('private', 'Private')],
|
||||
string='Visibility', help='Event\'s visibility in the portal\'s contact page'),
|
||||
}
|
||||
_defaults = {
|
||||
'visibility': 'private',
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<!-- add visibility field to the event form view -->
|
||||
<record id="view_employee_form" model="ir.ui.view">
|
||||
<field name="name">portal.event.form</field>
|
||||
<field name="model">event.event</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="event.view_event_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//page[last()]" position="after">
|
||||
<page string="Portal Settings">
|
||||
<group>
|
||||
<field name="visibility"/>
|
||||
</group>
|
||||
</page>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -2,7 +2,7 @@
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<menuitem name="Events" id="portal_company_events" parent="portal.portal_company"
|
||||
<menuitem name="Events" id="portal_company_events" parent="portal.portal_company"
|
||||
action="event.action_event_view" sequence="40"/>
|
||||
|
||||
</data>
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<data noupdate="1">
|
||||
|
||||
<record id="portal_event_rule" model="ir.rule">
|
||||
<field name="name">Personal Events</field>
|
||||
<field name="name">Portal Visible Events</field>
|
||||
<field ref="event.model_event_event" name="model_id"/>
|
||||
<field name="domain_force">[]</field>
|
||||
<field name="domain_force">[('visibility', '=', 'public')]</field>
|
||||
<field name="groups" eval="[(4, ref('portal.group_portal_member'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="portal_registration_rule" model="ir.rule">
|
||||
<field name="name">Personal Registrations</field>
|
||||
<field name="name">Portal Personal Registrations</field>
|
||||
<field ref="event.model_event_registration" name="model_id"/>
|
||||
<field name="domain_force">[('partner_id','child_of',user.partner_id.id)]</field>
|
||||
<field name="groups" eval="[(4, ref('portal.group_portal_member'))]"/>
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# 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 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 Affero General Public License for more details.
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import hr_employee
|
||||
@@ -0,0 +1,46 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# 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 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 Affero General Public License for more details.
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
|
||||
{
|
||||
'name': 'Portal HR employees',
|
||||
'version': '0.1',
|
||||
'category': 'Tools',
|
||||
'complexity': "easy",
|
||||
'description': """
|
||||
This module adds a list of employees to your portal's contact page if hr and
|
||||
portal_crm (which creates the contact page) are installed.
|
||||
""",
|
||||
'author': 'OpenERP SA',
|
||||
'depends': ['hr','portal_crm'],
|
||||
'data': [
|
||||
'hr_employee_view.xml',
|
||||
'security/ir.model.access.csv',
|
||||
],
|
||||
'installable': True,
|
||||
'auto_install':True,
|
||||
'category':'Hidden',
|
||||
'css': [
|
||||
'static/src/css/portal_hr_employees.css',
|
||||
],
|
||||
|
||||
}
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -0,0 +1,57 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2011 OpenERP S.A (<http://www.openerp.com>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# 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 Affero General Public License for more details.
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import osv, fields
|
||||
|
||||
class crm_contact_us(osv.TransientModel):
|
||||
""" Add employees list to the portal's contact page """
|
||||
_description = 'Contact form for the portal'
|
||||
_inherit = 'portal_crm.crm_contact_us'
|
||||
_columns = {
|
||||
'employee_ids' : fields.many2many('hr.employee', string='Employees', readonly=True),
|
||||
}
|
||||
|
||||
""" Little trick to display employees in our wizard view """
|
||||
def _get_employee(self, cr, uid, context=None):
|
||||
""" Employees flagged as 'private' won't appear on the contact page """
|
||||
r = self.pool.get('hr.employee').search(cr, uid, [('visibility', '!=', 'private')], context=context)
|
||||
return r
|
||||
|
||||
_defaults = {
|
||||
'employee_ids' : _get_employee,
|
||||
}
|
||||
|
||||
class hr_employee(osv.osv):
|
||||
_description = 'Portal employee'
|
||||
_inherit = 'hr.employee'
|
||||
|
||||
"""
|
||||
``visibility``: defines if the employee appears on the portal's contact page
|
||||
- 'public' means the employee will appear for everyone (anonymous)
|
||||
- 'private' means the employee won't appear
|
||||
"""
|
||||
_columns = {
|
||||
'visibility': fields.selection([('public', 'Public'),('private', 'Private')],
|
||||
string='Visibility', help='Employee\'s visibility in the portal\'s contact page'),
|
||||
}
|
||||
_defaults = {
|
||||
'visibility': 'private',
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<!-- add visibility field to the employee form view -->
|
||||
<record id="view_employee_form" model="ir.ui.view">
|
||||
<field name="name">portal_hr_employees.employee.form</field>
|
||||
<field name="model">hr.employee</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="hr.view_employee_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//page[last()]" position="after">
|
||||
<page string="Portal Settings">
|
||||
<group>
|
||||
<field name="visibility"/>
|
||||
</group>
|
||||
</page>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- a kanban view of the employees to the portal's contact page -->
|
||||
<record id="wizard_contact_form_view_employees_list" model="ir.ui.view">
|
||||
<field name="name">portal_hr_employees.employees_list</field>
|
||||
<field name="model">portal_crm.crm_contact_us</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="portal_crm.wizard_contact_form_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//div[@class='oe_portal_crm_team']" position="inside">
|
||||
<h1>Meet the team</h1>
|
||||
<field name="employee_ids" widget="many2many_kanban">
|
||||
<kanban>
|
||||
<field name="visibility"/>
|
||||
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div class="oe_employee_vignette">
|
||||
<div class="oe_employee_image">
|
||||
<img t-att-src="kanban_image('hr.employee', 'photo', record.id.value)" class="oe_employee_picture"/>
|
||||
</div>
|
||||
<div class="oe_employee_details">
|
||||
<h4>
|
||||
<a type="edit"><field name="name"/><t t-if="record.login.raw_value"> (<field name="login"/>)</t></a>
|
||||
</h4>
|
||||
<ul>
|
||||
<li t-if="record.job_id.raw_value"><field name="job_id"/></li>
|
||||
<li t-if="record.work_phone.raw_value">Tel: <field name="work_phone"/></li>
|
||||
<li t-if="record.mobile_phone.raw_value">Mobile: <field name="mobile_phone"/></li>
|
||||
<li t-if="record.work_email.raw_value"><a t-attf-href="mailto:#{record.work_email.value}"><field name="work_email"/></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</field>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -0,0 +1,6 @@
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_hr_employee_user,hr.employee user,hr.model_hr_employee,portal.group_portal_member,1,0,0,0
|
||||
access_res_partner,res.partner,base.model_res_partner,portal.group_portal_member,1,0,0,0
|
||||
access_res_partner_address,res.partner_address,base.model_res_partner_address,portal.group_portal_member,1,0,0,0
|
||||
access_res_partner_category,res.partner_category,base.model_res_partner_category,portal.group_portal_member,1,0,0,0
|
||||
access_res_partner_title,res.partner_title,base.model_res_partner_title,portal.group_portal_member,1,0,0,0
|
||||
|
@@ -0,0 +1,14 @@
|
||||
/* Employees list section */
|
||||
.openerp .oe_portal_crm_contact .oe_kanban_groups {
|
||||
width: 100%;
|
||||
}
|
||||
.openerp .oe_portal_crm_contact .oe_portal_crm_team {
|
||||
padding: 8px 0 0 0;
|
||||
}
|
||||
.openerp .oe_portal_crm_contact .oe_portal_crm_team .oe_employee_details {
|
||||
width: 170px;
|
||||
}
|
||||
.openerp .oe_portal_crm_contact .oe_portal_crm_team .oe_employee_image {
|
||||
width: 65px;
|
||||
height: 65px;
|
||||
}
|
||||
@@ -21,13 +21,12 @@
|
||||
|
||||
|
||||
{
|
||||
'name': 'Portal Jobs',
|
||||
'name': 'Portal HR recruitment',
|
||||
'version': '0.1',
|
||||
'category': 'Tools',
|
||||
'complexity': "easy",
|
||||
'description': """
|
||||
This module adds applications menu and features to your portal if hr and portal
|
||||
are installed.
|
||||
This module adds a jobs page to your portal if hr and portal are installed.
|
||||
""",
|
||||
'author': 'OpenERP SA',
|
||||
'depends': ['hr','portal'],
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<menuitem name="Jobs" id="portal_company_jobs"
|
||||
parent="portal.portal_company" action="hr.action_hr_job"
|
||||
<menuitem name="Jobs" id="portal_company_jobs"
|
||||
parent="portal.portal_company" action="hr.action_hr_job"
|
||||
sequence="20"/>
|
||||
|
||||
</data>
|
||||
|
||||
@@ -21,12 +21,12 @@
|
||||
|
||||
|
||||
{
|
||||
'name': 'Portal Issue',
|
||||
'name': 'Portal Project',
|
||||
'version': '0.1',
|
||||
'category': 'Tools',
|
||||
'complexity': "easy",
|
||||
'description': """
|
||||
This module adds project menu and features (tasks) to your portal if project
|
||||
This module adds project menu and features (tasks) to your portal if project
|
||||
and portal are installed.
|
||||
""",
|
||||
'author': 'OpenERP SA',
|
||||
|
||||
@@ -2,3 +2,4 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_task,tasks,project.model_project_task,portal.group_portal_member,1,0,0,0
|
||||
access_task_type,task_type,project.model_project_task_type,portal.group_portal_member,1,0,0,0
|
||||
access_task_work,task_work,project.model_project_task_work,portal.group_portal_member,1,0,0,0
|
||||
access_project_category,project_category,project.model_project_category,portal.group_portal_member,1,0,0,0
|
||||
|
||||
|
@@ -3,7 +3,7 @@
|
||||
<data noupdate="1">
|
||||
|
||||
<record id="portal_task_rule" model="ir.rule">
|
||||
<field name="name">Personal Task</field>
|
||||
<field name="name">Portal Personal Task</field>
|
||||
<field ref="project.model_project_task" name="model_id"/>
|
||||
<field name="domain_force">[('partner_id','child_of',user.partner_id.id)]</field>
|
||||
<field name="groups" eval="[(4, ref('portal.group_portal_member'))]"/>
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
'category': 'Tools',
|
||||
'complexity': "easy",
|
||||
'description': """
|
||||
This module adds issue menu and features to your portal if project_issue and
|
||||
This module adds issue menu and features to your portal if project_issue and
|
||||
portal are installed.
|
||||
""",
|
||||
'author': 'OpenERP SA',
|
||||
@@ -39,5 +39,8 @@ portal are installed.
|
||||
'installable': True,
|
||||
'auto_install':True,
|
||||
'category':'Hidden',
|
||||
'css': [
|
||||
'static/src/css/portal_project_issue.css',
|
||||
],
|
||||
}
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -2,12 +2,71 @@
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="portal_project_issue_kanban_view" model="ir.ui.view">
|
||||
<field name="name">Project Issue Kanban</field>
|
||||
<field name="model">project.issue</field>
|
||||
<field name="type">kanban</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban version="7.0" class="oe_portal_project_issue">
|
||||
<field name="priority"/>
|
||||
<field name="user_email"/>
|
||||
<field name="user_id"/>
|
||||
<field name="date_deadline"/>
|
||||
<field name="create_date"/>
|
||||
<field name="categ_ids"/>
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div class="oe_kanban_card oe_kanban_global_click">
|
||||
<div class="oe_kanban_content">
|
||||
<div>
|
||||
<h1><a type="edit"><field name="name"/></a></h1>
|
||||
<field name="partner_id"/> <br/>
|
||||
<field name="version_id"/>
|
||||
</div>
|
||||
<div class="oe_kanban_footer_left">
|
||||
<div class="oe_left oe_tags">
|
||||
<t t-foreach="record.categ_ids.raw_value" t-as="categ_id">
|
||||
<span class="oe_tag" t-att-data-categ_id="categ_id"></span>
|
||||
</t>
|
||||
</div>
|
||||
<div class="oe_right">
|
||||
Creation: <field name="create_date"/>
|
||||
<span class="oe_kanban_highlight">
|
||||
<t t-set="priority" t-value="record.priority.raw_value || 5"/>
|
||||
<a type="object" name="set_priority" args="['3']" t-if="priority gt 3" title="Normal Priority">
|
||||
<img src="/web/static/src/img/icons/star-off.png" width="16" height="16"/>
|
||||
</a>
|
||||
<a type="object" name="set_priority" args="['5']" t-if="priority lte 3" title="Normal Priority">
|
||||
<img t-attf-src="/web/static/src/img/icons/star-#{priority lte 3 ? 'on' : 'off'}.png" width="16" height="16"/>
|
||||
</a>
|
||||
<a type="object" name="set_priority" args="['2']" title="High Priority">
|
||||
<img t-attf-src="/web/static/src/img/icons/star-#{priority lte 2 ? 'on' : 'off'}.png" width="16" height="16"/>
|
||||
</a>
|
||||
<a type="object" name="set_priority" args="['1']" title="Highest Priority">
|
||||
<img t-attf-src="/web/static/src/img/icons/star-#{priority == 1 ? 'on' : 'off'}.png" width="16" height="16"/>
|
||||
</a>
|
||||
</span>
|
||||
<t t-if="record.date_deadline.raw_value and record.date_deadline.raw_value lt (new Date())">
|
||||
<span t-attf-class="oe_kanban_status oe_kaban_status_red"> </span>
|
||||
</t>
|
||||
<img t-att-src="kanban_image('res.users', 'avatar', record.user_id.raw_value[0])" t-att-title="record.user_id.value" width="24" height="24" class="oe_kanban_avatar"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="oe_clear"></div>
|
||||
</div>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="project_issue_categ_act0" model="ir.actions.act_window">
|
||||
<field name="name">Issues</field>
|
||||
<field name="res_model">project.issue</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">kanban,tree,calendar</field>
|
||||
<field name="view_id" eval="False"/>
|
||||
<field name="view_mode">kanban,form</field>
|
||||
<field name="view_id" ref="portal_project_issue_kanban_view"/>
|
||||
<field name="domain" eval=""/>
|
||||
<field name="context">{"search_default_user_id":'', "search_default_draft":'', "search_default_todo":''}</field>
|
||||
<field name="search_view_id" ref="project_issue.view_project_issue_filter"/>
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_issues,project_issue,project_issue.model_project_issue,portal.group_portal_member,1,0,1,0
|
||||
access_issues,project_issue,project_issue.model_project_issue,portal.group_portal_member,1,0,0,0
|
||||
access_case_section,crm_case_section,crm.model_crm_case_section,portal.group_portal_member,1,0,0,0
|
||||
|
||||
|
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
|
||||
|
||||
<record id="portal_issue_rule" model="ir.rule">
|
||||
<field name="name">Personal Issues</field>
|
||||
<field name="name">Portal Personal Issues</field>
|
||||
<field ref="project_issue.model_project_issue" name="model_id"/>
|
||||
<field name="domain_force">[('partner_id','child_of',user.partner_id.id)]</field>
|
||||
<field name="groups" eval="[(4, ref('portal.group_portal_member'))]"/>
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
.oe_portal_project_issue {
|
||||
width: 960px;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.oe_portal_project_issue .oe_kanban_groups {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.oe_portal_project_issue .oe_fold_column.oe_kanban_record {
|
||||
float: none;
|
||||
display: block;
|
||||
width: 100%;
|
||||
border-width: 1px;
|
||||
border-radius: 4px;
|
||||
border-style: solid;
|
||||
border-bottom-color: #B9B9B9;
|
||||
border-left-color: #D8D8D8;
|
||||
border-right-color: #D8D8D8;
|
||||
border-top-color: #D8D8D8;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
.oe_portal_project_issue .oe_fold_column.oe_kanban_record .oe_kanban_content {
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.oe_portal_project_issue .oe_fold_column.oe_kanban_record h1 {
|
||||
margin: 0;
|
||||
font-size: 1.2em;
|
||||
font-weight: bold;
|
||||
}
|
||||
@@ -4,10 +4,10 @@
|
||||
|
||||
<record id="action_picking_tree" model="ir.actions.act_window">
|
||||
<field name="name">Delivery Orders</field>
|
||||
<field name="res_model">stock.picking</field>
|
||||
<field name="res_model">stock.picking.out</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="domain">[('type','=','out')]</field>
|
||||
<field name="context">{'default_type': 'out', 'contact_display': 'partner_address'}</field>
|
||||
<field name="search_view_id" ref="stock.view_picking_out_search"/>
|
||||
@@ -25,18 +25,18 @@
|
||||
<field name="help">You must define a Product for everything you buy or sell. Products can be raw materials, stockable products, consumables or services. The Product form contains detailed information about your products related to procurement logistics, sales price, product category, suppliers and so on.</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Quotations" id="portal_quotations" parent="portal.portal_orders"
|
||||
<menuitem name="Quotations" id="portal_quotations" parent="portal.portal_orders"
|
||||
action="sale.action_order_tree5" sequence="10"/>
|
||||
<menuitem name="Sales Orders" id="portal_sales_orders" parent="portal.portal_orders"
|
||||
<menuitem name="Sales Orders" id="portal_sales_orders" parent="portal.portal_orders"
|
||||
action="sale.action_order_form" sequence="20"/>
|
||||
<menuitem name="Delivery Orders" id="portal_delivery" parent="portal.portal_orders"
|
||||
<menuitem name="Delivery Orders" id="portal_delivery" parent="portal.portal_orders"
|
||||
action="action_picking_tree" sequence="30"/>
|
||||
<menuitem name="Products" id="portal_products" parent="portal.portal_orders"
|
||||
<menuitem name="Products" id="portal_products" parent="portal.portal_orders"
|
||||
action="product_normal_action" sequence="40"/>
|
||||
|
||||
<menuitem name="Invoice" id="portal_invoices" parent="portal.portal_invoices_payements"
|
||||
<menuitem name="Invoice" id="portal_invoices" parent="portal.portal_invoices_payements"
|
||||
action="account.action_invoice_tree1" sequence="10"/>
|
||||
<menuitem name="Refund/Payments" id="portal_payments" parent="portal.portal_invoices_payements"
|
||||
<menuitem name="Refund/Payments" id="portal_payments" parent="portal.portal_invoices_payements"
|
||||
action="account_voucher.action_vendor_receipt" sequence="20"/>
|
||||
|
||||
</data>
|
||||
|
||||
@@ -2,6 +2,7 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_sale_order,sale.order,sale.model_sale_order,portal.group_portal_member,1,0,0,0
|
||||
access_sale_order_line,sale.order.line,sale.model_sale_order_line,portal.group_portal_member,1,0,0,0
|
||||
access_stock_picking,stock.picking,stock.model_stock_picking,portal.group_portal_member,1,0,0,0
|
||||
access_stock_picking.out,stock.picking.out,stock.model_stock_picking_out,portal.group_portal_member,1,0,0,0
|
||||
access_stock_move,stock.move,stock.model_stock_move,portal.group_portal_member,1,0,0,0
|
||||
access_stock_warehouse_orderpoint,stock.warehouse.orderpoint,procurement.model_stock_warehouse_orderpoint,portal.group_portal_member,1,0,0,0
|
||||
access_account_invoice,account.invoice,account.model_account_invoice,portal.group_portal_member,1,0,0,0
|
||||
|
||||
|
@@ -1,39 +1,45 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<data noupdate="1">
|
||||
|
||||
<!-- Sale Portal Access Rules -->
|
||||
|
||||
<record id="portal_sale_order_user_rule" model="ir.rule">
|
||||
<field name="name">Personal Quotations/Sales Orders</field>
|
||||
<field name="name">Portal Personal Quotations/Sales Orders</field>
|
||||
<field ref="sale.model_sale_order" name="model_id"/>
|
||||
<field name="domain_force">[('partner_id','child_of',user.partner_id.id)]</field>
|
||||
<field name="groups" eval="[(4, ref('portal.group_portal_member'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="portal_stock_picking_user_rule" model="ir.rule">
|
||||
<field name="name">Personal Delivery Orders</field>
|
||||
<field name="name">Portal Personal Delivery Orders</field>
|
||||
<field ref="stock.model_stock_picking" name="model_id"/>
|
||||
<field name="domain_force">[('partner_id','child_of',[user.partner_id.id])]</field>
|
||||
<field name="groups" eval="[(4, ref('portal.group_portal_member'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="portal_stock_picking_user_rule" model="ir.rule">
|
||||
<field name="name">Portal Personal Delivery Orders Out</field>
|
||||
<field ref="stock.model_stock_picking_out" name="model_id"/>
|
||||
<field name="domain_force">[('partner_id','child_of',[user.partner_id.id])]</field>
|
||||
<field name="groups" eval="[(4, ref('portal.group_portal_member'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="portal_account_invoice_user_rule" model="ir.rule">
|
||||
<field name="name">Personal Account Invoices</field>
|
||||
<field name="name">Portal Personal Account Invoices</field>
|
||||
<field ref="account.model_account_invoice" name="model_id"/>
|
||||
<field name="domain_force">[('partner_id','child_of',user.partner_id.id)]</field>
|
||||
<field name="groups" eval="[(4, ref('portal.group_portal_member'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="portal_personal_payment" model="ir.rule">
|
||||
<field name="name">Personal Payments</field>
|
||||
<field name="name">Portal Personal Payments</field>
|
||||
<field ref="account_voucher.model_account_voucher" name="model_id"/>
|
||||
<field name="domain_force">[('partner_id','child_of',user.partner_id.id)]</field>
|
||||
<field name="groups" eval="[(4, ref('portal.group_portal_member'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="portal_personal_contact" model="ir.rule">
|
||||
<field name="name">Personal Contacts</field>
|
||||
<field name="name">Portal Personal Contacts</field>
|
||||
<field ref="base.model_res_partner" name="model_id"/>
|
||||
<field name="domain_force">[('id','child_of',user.partner_id.id)]</field>
|
||||
<field name="groups" eval="[(4, ref('portal.group_portal_member'))]"/>
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
|
||||
<div class="oe_title">
|
||||
<div class="oe_edit_only">
|
||||
<label for="name" string="Product Name"/>
|
||||
<label for="name" string="Product Name"/>
|
||||
</div>
|
||||
<h1>
|
||||
<field name="name"/>
|
||||
@@ -95,12 +95,12 @@
|
||||
</group>
|
||||
<group string="Procurement">
|
||||
<field name="type"/>
|
||||
<field name="procure_method"/>
|
||||
<field name="procure_method" groups="base.group_user"/>
|
||||
<field name="supply_method" groups="base.group_user"/>
|
||||
</group>
|
||||
<group string="Prices">
|
||||
<field name="list_price"/>
|
||||
<field name="cost_method"/>
|
||||
<field name="cost_method" groups="base.group_user"/>
|
||||
<field name="standard_price" attrs="{'readonly':[('cost_method','=','average')]}"/>
|
||||
<field name="price_margin" groups="product.group_product_variant"/>
|
||||
<field name="price_extra" groups="product.group_product_variant"/>
|
||||
|
||||
@@ -2,9 +2,7 @@
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
#---------------------------------------------------------
|
||||
# product price list
|
||||
#---------------------------------------------------------
|
||||
<!-- Product price list -->
|
||||
<record model="ir.ui.view" id="product_pricelist_view_tree">
|
||||
<field name="name">product.pricelist.tree</field>
|
||||
<field name="model">product.pricelist</field>
|
||||
@@ -26,5 +24,6 @@
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
</openerp>
|
||||
|
||||
+20
-11
@@ -220,7 +220,7 @@ class project(osv.osv):
|
||||
'followers': fields.function(_get_followers, method=True, fnct_search=_search_followers,
|
||||
type='many2many', relation='res.users', string='Followers'),
|
||||
}
|
||||
|
||||
|
||||
def dummy(self, cr, uid, ids, context):
|
||||
return True
|
||||
|
||||
@@ -566,7 +566,7 @@ class task(base_stage, osv.osv):
|
||||
# restore order of the search
|
||||
result.sort(lambda x,y: cmp(stage_ids.index(x[0]), stage_ids.index(y[0])))
|
||||
return result
|
||||
|
||||
|
||||
def _read_group_user_id(self, cr, uid, ids, domain, read_group_order=None, access_rights_uid=None, context=None):
|
||||
res_users = self.pool.get('res.users')
|
||||
project_id = self._resolve_project_id_from_context(cr, uid, context=context)
|
||||
@@ -700,6 +700,7 @@ class task(base_stage, osv.osv):
|
||||
When the case is over, the state is set to \'Done\'.\
|
||||
If the case needs to be reviewed then the state is \
|
||||
set to \'Pending\'.'),
|
||||
'categ_ids': fields.many2many('project.category', string='Categories'),
|
||||
'kanban_state': fields.selection([('normal', 'Normal'),('blocked', 'Blocked'),('done', 'Ready To Pull')], 'Kanban State',
|
||||
help="A task's kanban state indicates special situations affecting it:\n"
|
||||
" * Normal is the default situation\n"
|
||||
@@ -903,7 +904,7 @@ class task(base_stage, osv.osv):
|
||||
return True
|
||||
|
||||
def action_close(self, cr, uid, ids, context=None):
|
||||
""" This action closes the task
|
||||
""" This action closes the task
|
||||
"""
|
||||
task_id = len(ids) and ids[0] or False
|
||||
self._check_child_task(cr, uid, ids, context=context)
|
||||
@@ -913,7 +914,7 @@ class task(base_stage, osv.osv):
|
||||
def do_close(self, cr, uid, ids, context=None):
|
||||
""" Compatibility when changing to case_close. """
|
||||
return self.case_close(cr, uid, ids, context=context)
|
||||
|
||||
|
||||
def case_close(self, cr, uid, ids, context=None):
|
||||
""" Closes Task """
|
||||
if not isinstance(ids, list): ids = [ids]
|
||||
@@ -946,7 +947,7 @@ class task(base_stage, osv.osv):
|
||||
def do_cancel(self, cr, uid, ids, context=None):
|
||||
""" Compatibility when changing to case_cancel. """
|
||||
return self.case_cancel(cr, uid, ids, context=context)
|
||||
|
||||
|
||||
def case_cancel(self, cr, uid, ids, context=None):
|
||||
tasks = self.browse(cr, uid, ids, context=context)
|
||||
self._check_child_task(cr, uid, ids, context=context)
|
||||
@@ -958,7 +959,7 @@ class task(base_stage, osv.osv):
|
||||
def do_open(self, cr, uid, ids, context=None):
|
||||
""" Compatibility when changing to case_open. """
|
||||
return self.case_open(cr, uid, ids, context=context)
|
||||
|
||||
|
||||
def case_open(self, cr, uid, ids, context=None):
|
||||
if not isinstance(ids,list): ids = [ids]
|
||||
self.case_set(cr, uid, ids, 'open', {'date_start': fields.datetime.now()}, context=context)
|
||||
@@ -968,7 +969,7 @@ class task(base_stage, osv.osv):
|
||||
def do_draft(self, cr, uid, ids, context=None):
|
||||
""" Compatibility when changing to case_draft. """
|
||||
return self.case_draft(cr, uid, ids, context=context)
|
||||
|
||||
|
||||
def case_draft(self, cr, uid, ids, context=None):
|
||||
self.case_set(cr, uid, ids, 'draft', {}, context=context)
|
||||
self.case_draft_send_note(cr, uid, ids, context=context)
|
||||
@@ -977,11 +978,11 @@ class task(base_stage, osv.osv):
|
||||
def do_pending(self, cr, uid, ids, context=None):
|
||||
""" Compatibility when changing to case_pending. """
|
||||
return self.case_pending(cr, uid, ids, context=context)
|
||||
|
||||
|
||||
def case_pending(self, cr, uid, ids, context=None):
|
||||
self.case_set(cr, uid, ids, 'pending', {}, context=context)
|
||||
return self.case_pending_send_note(cr, uid, ids, context=context)
|
||||
|
||||
|
||||
def _delegate_task_attachments(self, cr, uid, task_id, delegated_task_id, context=None):
|
||||
attachment = self.pool.get('ir.attachment')
|
||||
attachment_ids = attachment.search(cr, uid, [('res_model', '=', self._name), ('res_id', '=', task_id)], context=context)
|
||||
@@ -1083,7 +1084,7 @@ class task(base_stage, osv.osv):
|
||||
new_stage = vals.get('stage_id')
|
||||
vals_reset_kstate = dict(vals, kanban_state='normal')
|
||||
for t in self.browse(cr, uid, ids, context=context):
|
||||
#TO FIX:Kanban view doesn't raise warning
|
||||
#TO FIX:Kanban view doesn't raise warning
|
||||
#stages = [stage.id for stage in t.project_id.type_ids]
|
||||
#if new_stage not in stages:
|
||||
#raise osv.except_osv(_('Warning !'), _('Stage is not defined in the project.'))
|
||||
@@ -1130,7 +1131,7 @@ class task(base_stage, osv.osv):
|
||||
|
||||
result += "\n"
|
||||
return result
|
||||
|
||||
|
||||
# ---------------------------------------------------
|
||||
# OpenChatter methods and notifications
|
||||
# ---------------------------------------------------
|
||||
@@ -1367,3 +1368,11 @@ class project_task_history_cumulative(osv.osv):
|
||||
)
|
||||
""")
|
||||
|
||||
|
||||
class project_category(osv.osv):
|
||||
""" Category of project's task (or issue) """
|
||||
_name = "project.category"
|
||||
_description = "Category of project's task, issue, ..."
|
||||
_columns = {
|
||||
'name': fields.char('Name', size=64, required=True, translate=True),
|
||||
}
|
||||
|
||||
@@ -2,50 +2,50 @@
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
|
||||
<!-- Users -->
|
||||
<!-- Users -->
|
||||
<record id="base.user_demo" model="res.users">
|
||||
<field eval="[(4, ref('base.group_sale_salesman')),(4, ref('group_project_user'))]" name="groups_id"/>
|
||||
<field name="groups_id" eval="[(4, ref('base.group_sale_salesman')),(4, ref('group_project_user'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="base.user_niv" model="res.users">
|
||||
<field name="name">Nicolas</field>
|
||||
<field eval="[(6, 0, [ref('base.group_user'), ref('project.group_project_manager')])]" name="groups_id"/>
|
||||
<field name="groups_id" eval="[(6, 0, [ref('base.group_user'), ref('project.group_project_manager')])]"/>
|
||||
<field name="login">niv</field>
|
||||
<field name="password">niv</field>
|
||||
</record>
|
||||
<record id="base.user_al" model="res.users">
|
||||
<field name="name">Antony</field>
|
||||
<field eval="[(6, 0, [ref('base.group_user'), ref('project.group_project_manager')])]" name="groups_id"/>
|
||||
<field name="groups_id" eval="[(6, 0, [ref('base.group_user'), ref('project.group_project_manager')])]"/>
|
||||
<field name="login">al</field>
|
||||
<field name="password">al</field>
|
||||
</record>
|
||||
<record id="base.user_qdp" model="res.users">
|
||||
<field name="name">Quentin</field>
|
||||
<field eval="[(6, 0, [ref('base.group_user'), ref('project.group_project_user')])]" name="groups_id"/>
|
||||
<field name="groups_id" eval="[(6, 0, [ref('base.group_user'), ref('project.group_project_user')])]"/>
|
||||
<field name="login">qdp</field>
|
||||
<field name="password">qdp</field>
|
||||
</record>
|
||||
<record id="base.user_fpi" model="res.users">
|
||||
<field name="name">Francois</field>
|
||||
<field eval="[(6, 0, [ref('base.group_user'), ref('project.group_project_user')])]" name="groups_id"/>
|
||||
<field name="groups_id" eval="[(6, 0, [ref('base.group_user'), ref('project.group_project_user')])]"/>
|
||||
<field name="login">fpi</field>
|
||||
<field name="password">fpi</field>
|
||||
</record>
|
||||
<record id="base.user_jth" model="res.users">
|
||||
<field name="name">Julien</field>
|
||||
<field eval="[(6, 0, [ref('base.group_user'), ref('project.group_project_user')])]" name="groups_id"/>
|
||||
<field name="groups_id" eval="[(6, 0, [ref('base.group_user'), ref('project.group_project_user')])]"/>
|
||||
<field name="login">jth</field>
|
||||
<field name="password">jth</field>
|
||||
</record>
|
||||
<record id="base.user_mit" model="res.users">
|
||||
<field name="name">Minh</field>
|
||||
<field eval="[(6, 0, [ref('base.group_user'), ref('project.group_project_user')])]" name="groups_id"/>
|
||||
<field name="groups_id" eval="[(6, 0, [ref('base.group_user'), ref('project.group_project_user')])]"/>
|
||||
<field name="login">mit</field>
|
||||
<field name="password">mit</field>
|
||||
</record>
|
||||
<record id="base.user_vad" model="res.users">
|
||||
<field name="name">Valérie</field>
|
||||
<field eval="[(6, 0, [ref('base.group_user')])]" name="groups_id"/>
|
||||
<field name="groups_id" eval="[(6, 0, [ref('base.group_user')])]"/>
|
||||
<field name="login">vad</field>
|
||||
<field name="password">vad</field>
|
||||
</record>
|
||||
@@ -56,68 +56,83 @@
|
||||
<field name="state">open</field>
|
||||
<field name="type">normal</field>
|
||||
<field name="description">Integrate a Sale and Warehouse Management.</field>
|
||||
<field eval="[(6, 0, [
|
||||
<field name="members" eval="[(6, 0, [
|
||||
ref('base.user_niv'),
|
||||
ref('base.user_al'),
|
||||
ref('base.user_qdp'),
|
||||
ref('base.user_fpi'),
|
||||
ref('base.user_jth'),
|
||||
ref('base.user_mit'),
|
||||
ref('base.user_vad')])]" name="members"/>
|
||||
ref('base.user_vad')])]"/>
|
||||
<field name="user_id" ref="base.user_al"/>
|
||||
<field name="name">Integrate a Sale and Warehouse Management.</field>
|
||||
</record>
|
||||
|
||||
<!-- Tasks -->
|
||||
<!-- Categories -->
|
||||
<record id="project_category_01" model="project.category">
|
||||
<field name="name">Partner's suggestion</field>
|
||||
</record>
|
||||
<record id="project_category_02" model="project.category">
|
||||
<field name="name">Feature request</field>
|
||||
</record>
|
||||
<record id="project_category_03" model="project.category">
|
||||
<field name="name">Experiment</field>
|
||||
</record>
|
||||
<record id="project_category_04" model="project.category">
|
||||
<field name="name">Usability</field>
|
||||
</record>
|
||||
|
||||
<!-- Tasks -->
|
||||
<record id="project_task_1" model="project.task">
|
||||
<field eval="100.0" name="planned_hours"/>
|
||||
<field eval="100.0" name="remaining_hours"/>
|
||||
<field name="planned_hours" eval="100.0"/>
|
||||
<field name="remaining_hours" eval="100.0"/>
|
||||
<field name="user_id" ref="base.user_niv"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Prepare Requirements Document</field>
|
||||
<field name="stage_id" ref="project_tt_specification"/>
|
||||
<field name="color">3</field>
|
||||
<field name="categ_ids" eval="[(6, 0, [
|
||||
ref('project.project_category_02')])]"/>
|
||||
</record>
|
||||
|
||||
<record id="project_task_2" model="project.task">
|
||||
<field eval="80.0" name="planned_hours"/>
|
||||
<field eval="80.0" name="remaining_hours"/>
|
||||
<field name="planned_hours" eval="80.0"/>
|
||||
<field name="remaining_hours" eval="80.0"/>
|
||||
<field name="user_id" ref="base.user_niv"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Make SRS</field>
|
||||
<field name="stage_id" ref="project_tt_specification"/>
|
||||
</record>
|
||||
|
||||
<record id="project_task_3" model="project.task">
|
||||
<field eval="40.0" name="planned_hours"/>
|
||||
<field eval="40.0" name="remaining_hours"/>
|
||||
<field name="planned_hours" eval="40.0"/>
|
||||
<field name="remaining_hours" eval="40.0"/>
|
||||
<field name="user_id" ref="base.user_al"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Design Use Cases</field>
|
||||
<field name="date_deadline" eval="time.strftime('%Y-%m-24')"/>
|
||||
<field name="stage_id" ref="project_tt_specification"/>
|
||||
<field name="color">4</field>
|
||||
<field name="categ_ids" eval="[(6, 0, [
|
||||
ref('project_category_02'),
|
||||
ref('project_category_04')])]"/>
|
||||
</record>
|
||||
|
||||
<record id="project_task_4" model="project.task">
|
||||
<field eval="25.0" name="planned_hours"/>
|
||||
<field eval="25.0" name="remaining_hours"/>
|
||||
<field name="planned_hours" eval="25.0"/>
|
||||
<field name="remaining_hours" eval="25.0"/>
|
||||
<field name="user_id" ref="base.user_al"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Budget Planning</field>
|
||||
<field name="description">Use the account_budget module</field>
|
||||
<field name="date_deadline" eval="time.strftime('%Y-%m-19')"/>
|
||||
<field name="color">3</field>
|
||||
<field name="color">5</field>
|
||||
<field name="stage_id" ref="project_tt_specification"/>
|
||||
</record>
|
||||
|
||||
<record id="project_task_5" model="project.task">
|
||||
<field eval="25.0" name="planned_hours"/>
|
||||
<field eval="25.0" name="remaining_hours"/>
|
||||
<field name="planned_hours" eval="25.0"/>
|
||||
<field name="remaining_hours" eval="25.0"/>
|
||||
<field name="user_id" ref="base.user_al"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
@@ -127,51 +142,48 @@
|
||||
<field name="date_deadline" eval="time.strftime('%Y-%m-%d')"/>
|
||||
<field name="stage_id" ref="project_tt_specification"/>
|
||||
</record>
|
||||
|
||||
<record id="project_task_6" model="project.task">
|
||||
<field eval="20.0" name="planned_hours"/>
|
||||
<field eval="20.0" name="remaining_hours"/>
|
||||
<field name="planned_hours" eval="20.0"/>
|
||||
<field name="remaining_hours" eval="20.0"/>
|
||||
<field name="user_id" ref="base.user_al"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Risk Management Planning</field>
|
||||
<field name="stage_id" ref="project_tt_specification"/>
|
||||
</record>
|
||||
|
||||
<record id="project_task_7" model="project.task">
|
||||
<field eval="30.0" name="planned_hours"/>
|
||||
<field eval="30.0" name="remaining_hours"/>
|
||||
<field name="planned_hours" eval="30.0"/>
|
||||
<field name="remaining_hours" eval="30.0"/>
|
||||
<field name="user_id" ref="base.user_al"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Create Project Schedules</field>
|
||||
<field name="stage_id" ref="project_tt_specification"/>
|
||||
</record>
|
||||
|
||||
<record id="project_task_8" model="project.task">
|
||||
<field eval="10.0" name="planned_hours"/>
|
||||
<field eval="10.0" name="remaining_hours"/>
|
||||
<field name="planned_hours" eval="10.0"/>
|
||||
<field name="remaining_hours" eval="10.0"/>
|
||||
<field name="user_id" ref="base.user_al"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Dataflow Design</field>
|
||||
<field name="priority">0</field>
|
||||
<field name="stage_id" ref="project_tt_specification"/>
|
||||
<field name="categ_ids" eval="[(6, 0, [
|
||||
ref('project.project_category_01')])]"/>
|
||||
</record>
|
||||
|
||||
<record id="project_task_9" model="project.task">
|
||||
<field eval="50.0" name="planned_hours"/>
|
||||
<field eval="50.0" name="remaining_hours"/>
|
||||
<field name="planned_hours" eval="50.0"/>
|
||||
<field name="remaining_hours" eval="50.0"/>
|
||||
<field name="user_id" ref="base.user_al"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">User Interface Design</field>
|
||||
<field name="stage_id" ref="project_tt_specification"/>
|
||||
</record>
|
||||
|
||||
<record id="project_task_10" model="project.task">
|
||||
<field eval="40.0" name="planned_hours"/>
|
||||
<field eval="40.0" name="remaining_hours"/>
|
||||
<field name="planned_hours" eval="40.0"/>
|
||||
<field name="remaining_hours" eval="40.0"/>
|
||||
<field name="user_id" ref="base.user_fpi"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
@@ -179,56 +191,55 @@
|
||||
<field name="kanban_state">blocked</field>
|
||||
<field name="stage_id" ref="project_tt_development"/>
|
||||
</record>
|
||||
|
||||
<record id="project_task_11" model="project.task">
|
||||
<field eval="90.0" name="planned_hours"/>
|
||||
<field eval="90.0" name="remaining_hours"/>
|
||||
<field name="planned_hours" eval="90.0"/>
|
||||
<field name="remaining_hours" eval="90.0"/>
|
||||
<field name="user_id" ref="base.user_fpi"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Develop module in Warehouse</field>
|
||||
<field name="stage_id" ref="project_tt_merge"/>
|
||||
</record>
|
||||
|
||||
<function model="project.task" name="do_close" eval="[ref('project_task_11')], {'install_mode': True}"/>
|
||||
|
||||
|
||||
<record id="project_task_12" model="project.task">
|
||||
<field eval="20.0" name="planned_hours"/>
|
||||
<field eval="20.0" name="remaining_hours"/>
|
||||
<field name="planned_hours" eval="20.0"/>
|
||||
<field name="remaining_hours" eval="20.0"/>
|
||||
<field name="user_id" ref="base.user_fpi"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Integrate Modules</field>
|
||||
<field name="stage_id" ref="project_tt_development"/>
|
||||
<field name="color">6</field>
|
||||
<field name="categ_ids" eval="[(6, 0, [
|
||||
ref('project_category_01'),
|
||||
ref('project_category_03')])]"/>
|
||||
</record>
|
||||
|
||||
<function model="project.task" name="do_close" eval="[ref('project_task_12')], {'install_mode': True}"/>
|
||||
|
||||
|
||||
<record id="project_task_13" model="project.task">
|
||||
<field eval="50.0" name="planned_hours"/>
|
||||
<field eval="50.0" name="remaining_hours"/>
|
||||
<field name="planned_hours" eval="50.0"/>
|
||||
<field name="remaining_hours" eval="50.0"/>
|
||||
<field name="user_id" ref="base.user_mit"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Unit Testing</field>
|
||||
<field name="stage_id" ref="project_tt_development"/>
|
||||
</record>
|
||||
|
||||
<function model="project.task" name="do_pending" eval="[ref('project_task_13')], {'install_mode': True}"/>
|
||||
|
||||
<record id="project_task_14" model="project.task">
|
||||
<field eval="30.0" name="planned_hours"/>
|
||||
<field eval="30.0" name="remaining_hours"/>
|
||||
<field name="planned_hours" eval="30.0"/>
|
||||
<field name="remaining_hours" eval="30.0"/>
|
||||
<field name="user_id" ref="base.user_mit"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
<field name="name">Regression Test</field>
|
||||
<field name="stage_id" ref="project_tt_development"/>
|
||||
<field name="stage_id" ref="project_tt_development"/>
|
||||
</record>
|
||||
|
||||
<record id="project_task_15" model="project.task">
|
||||
<field eval="15.0" name="planned_hours"/>
|
||||
<field eval="15.0" name="remaining_hours"/>
|
||||
<field name="planned_hours" eval="15.0"/>
|
||||
<field name="remaining_hours" eval="15.0"/>
|
||||
<field name="user_id" ref="base.user_fpi"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
@@ -236,11 +247,10 @@
|
||||
<field name="stage_id" ref="project_tt_specification"/>
|
||||
<field name="date_start">2011-02-06</field>
|
||||
</record>
|
||||
|
||||
<record id="project_task_16" model="project.task">
|
||||
<field eval="10" name="sequence"/>
|
||||
<field eval="40.0" name="planned_hours"/>
|
||||
<field eval="40.0" name="remaining_hours"/>
|
||||
<field name="sequence" eval="10"/>
|
||||
<field name="planned_hours" eval="40.0"/>
|
||||
<field name="remaining_hours" eval="40.0"/>
|
||||
<field name="user_id" ref="base.user_mit"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
@@ -251,8 +261,8 @@
|
||||
<function model="project.task" name="do_open" eval="[ref('project_task_16')], {'install_mode': True}"/>
|
||||
|
||||
<record id="project_task_17" model="project.task">
|
||||
<field eval="5.0" name="planned_hours"/>
|
||||
<field eval="5.0" name="remaining_hours"/>
|
||||
<field name="planned_hours" eval="5.0"/>
|
||||
<field name="remaining_hours" eval="5.0"/>
|
||||
<field name="user_id" ref="base.user_niv"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
@@ -262,8 +272,8 @@
|
||||
<function model="project.task" name="do_open" eval="[ref('project_task_17')], {'install_mode': True}"/>
|
||||
|
||||
<record id="project_task_18" model="project.task">
|
||||
<field eval="10.0" name="planned_hours"/>
|
||||
<field eval="10.0" name="remaining_hours"/>
|
||||
<field name="planned_hours" eval="10.0"/>
|
||||
<field name="remaining_hours" eval="10.0"/>
|
||||
<field name="user_id" ref="base.user_niv"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="project_id" ref="project.project_integrate_openerp"/>
|
||||
@@ -271,45 +281,37 @@
|
||||
<field name="stage_id" ref="project_tt_specification"/>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
Resource: project.project
|
||||
-->
|
||||
<!-- Resource: project.project-->
|
||||
<!-- Projects -->
|
||||
|
||||
<!-- <record id="all_projects_account" model="project.project">
|
||||
<field name="name">Projects</field>
|
||||
<field name="code">3</field>
|
||||
</record> -->
|
||||
|
||||
|
||||
<record id="project_project_9" model="project.project">
|
||||
<field name="name">OpenERP Integration</field>
|
||||
<field name="parent_id" ref="all_projects_account"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval="[(6, 0, [ref('project_tt_specification'),ref('project_tt_development'),ref('project_tt_testing'),ref('project_tt_merge')])]" name="type_ids"/>
|
||||
<field name="type_ids" eval="[(6, 0, [ref('project_tt_specification'),ref('project_tt_development'),ref('project_tt_testing'),ref('project_tt_merge')])]"/>
|
||||
</record>
|
||||
<record id="project_project_21" model="project.project">
|
||||
<field name="priority">10</field>
|
||||
<field name="parent_id" ref="all_projects_account"/>
|
||||
<field name="name">Study + Prototype</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval="[(6, 0, [ref('project_tt_specification'),ref('project_tt_development')])]" name="type_ids"/>
|
||||
<field eval="[(6, 0, [ref('base.user_root'),ref('base.user_demo')])]" name="members"/>
|
||||
<field name="type_ids" eval="[(6, 0, [ref('project_tt_specification'),ref('project_tt_development')])]"/>
|
||||
<field name="members" eval="[(6, 0, [ref('base.user_root'),ref('base.user_demo')])]"/>
|
||||
</record>
|
||||
<record id="project_project_22" model="project.project">
|
||||
<field name="priority">20</field>
|
||||
<field name="parent_id" ref="all_projects_account"/>
|
||||
<field name="name">Specific Developments</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field eval="[(6, 0, [ref('project_tt_specification'), ref('project_tt_development')])]" name="type_ids"/>
|
||||
<field eval="[(6, 0, [ref('base.user_root'),ref('base.user_demo')])]" name="members"/>
|
||||
<field name="type_ids" eval="[(6, 0, [ref('project_tt_specification'), ref('project_tt_development')])]"/>
|
||||
<field name="members" eval="[(6, 0, [ref('base.user_root'),ref('base.user_demo')])]"/>
|
||||
</record>
|
||||
<record id="project_project_23" model="project.project">
|
||||
<field name="priority">30</field>
|
||||
<field name="parent_id" ref="all_projects_account"/>
|
||||
<field name="name">Install, data import, configuration</field>
|
||||
<field eval="[(6, 0, [ref('project_tt_development')])]" name="type_ids"/>
|
||||
<field eval="[(6, 0, [ref('base.user_root'),ref('base.user_demo')])]" name="members"/>
|
||||
<field name="type_ids" eval="[(6, 0, [ref('project_tt_development')])]"/>
|
||||
<field name="members" eval="[(6, 0, [ref('base.user_root'),ref('base.user_demo')])]"/>
|
||||
</record>
|
||||
|
||||
<!-- Tasks -->
|
||||
@@ -323,7 +325,7 @@
|
||||
<field name="name">Specific adaptation to MRP</field>
|
||||
</record>
|
||||
<function model="project.task" name="do_open" eval="[ref('project_task_116')], {'install_mode': True}"/>
|
||||
|
||||
|
||||
<record id="project_task_130" model="project.task">
|
||||
<field name="planned_hours">16.0</field>
|
||||
<field name="remaining_hours">16.0</field>
|
||||
@@ -343,7 +345,7 @@
|
||||
<field name="name">Modifications asked by the customer.</field>
|
||||
</record>
|
||||
<function model="project.task" name="do_open" eval="[ref('project_task_131')], {'install_mode': True}"/>
|
||||
|
||||
|
||||
<record id="project_task_184" model="project.task">
|
||||
<field name="planned_hours">16.0</field>
|
||||
<field name="remaining_hours">16.0</field>
|
||||
@@ -352,7 +354,7 @@
|
||||
<field name="priority">0</field>
|
||||
<field name="project_id" ref="project_project_21"/>
|
||||
<field name="name">Customer analysis + Architecture</field>
|
||||
<field name="color">3</field>
|
||||
<field name="color">7</field>
|
||||
</record>
|
||||
<record id="project_task_186" model="project.task">
|
||||
<field name="sequence">15</field>
|
||||
@@ -362,7 +364,7 @@
|
||||
<field name="user_id" eval="False"/>
|
||||
<field name="project_id" ref="project_project_21"/>
|
||||
<field name="name">Internal testing + Software Install</field>
|
||||
<field name="color">4</field>
|
||||
<field name="color">8</field>
|
||||
</record>
|
||||
<record id="project_task_188" model="project.task">
|
||||
<field name="sequence">17</field>
|
||||
@@ -375,7 +377,7 @@
|
||||
<field name="name">Analysis, Data Importation</field>
|
||||
</record>
|
||||
<function model="project.task" name="do_open" eval="[ref('project_task_188')], {'install_mode': True}"/>
|
||||
|
||||
|
||||
<record id="project_task_189" model="project.task">
|
||||
<field name="sequence">20</field>
|
||||
<field name="planned_hours">16.0</field>
|
||||
@@ -386,7 +388,7 @@
|
||||
<field name="stage_id" ref="project_tt_specification"/>
|
||||
</record>
|
||||
<function model="project.task" name="do_open" eval="[ref('project_task_189')], {'install_mode': True}"/>
|
||||
|
||||
|
||||
<record id="project_task_190" model="project.task">
|
||||
<field name="sequence">20</field>
|
||||
<field name="planned_hours">32.0</field>
|
||||
@@ -399,8 +401,7 @@
|
||||
|
||||
<!-- Schedule tasks to assign users and dates -->
|
||||
<function model="project.project" name="schedule_tasks"
|
||||
eval="[ref('project_project_21'), ref('project_project_22'), ref('project_project_23')], {'install_mode': True}"
|
||||
/>
|
||||
eval="[ref('project_project_21'), ref('project_project_22'), ref('project_project_23')], {'install_mode': True}"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -431,6 +431,9 @@
|
||||
<field name="progress" widget="progressbar"
|
||||
groups="project.group_time_work_estimation_tasks"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="categ_ids" widget="many2many_tags"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Description">
|
||||
@@ -512,6 +515,7 @@
|
||||
<field name="date_deadline"/>
|
||||
<field name="message_summary"/>
|
||||
<field name="needaction_pending"/>
|
||||
<field name="categ_ids"/>
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_global_click">
|
||||
@@ -554,6 +558,13 @@
|
||||
<t t-esc="Math.round(record.remaining_hours.raw_value)"/>
|
||||
</span>
|
||||
</div>
|
||||
<div class="oe_kanban_footer_left" style="margin-top:5px;">
|
||||
<div class="oe_left oe_tags">
|
||||
<t t-foreach="record.categ_ids.raw_value" t-as="categ_id">
|
||||
<span class="oe_tag" t-att-data-categ_id="categ_id"></span>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="oe_clear"></div>
|
||||
</div>
|
||||
@@ -820,7 +831,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- User Form-->
|
||||
<!-- User Form -->
|
||||
<act_window context="{'search_default_user_id': [active_id], 'default_user_id': active_id}" domain="[('state', '<>', 'cancelled'),('state', '<>', 'done')]" id="act_res_users_2_project_task_opened" name="Assigned Tasks" res_model="project.task" src_model="res.users" view_mode="tree,form,gantt,calendar,graph" view_type="form"/>
|
||||
|
||||
</data>
|
||||
|
||||
@@ -1,25 +1,61 @@
|
||||
openerp.project = function(openerp) {
|
||||
openerp.web_kanban.KanbanView.include({
|
||||
on_groups_started: function() {
|
||||
project_display_members_names: function() {
|
||||
/*
|
||||
* Set avatar title for members.
|
||||
* In kanban views, many2many fields only return a list of ids.
|
||||
* We can implement return value of m2m fields like [(1,"Adminstration"),...].
|
||||
*/
|
||||
var self = this;
|
||||
self._super.apply(this, arguments);
|
||||
if (this.dataset.model === 'project.project') {
|
||||
/* Set avatar title for members.
|
||||
In many2many fields, returns only list of ids.
|
||||
we can implement return value of m2m fields like [(1,"Adminstration"),...].
|
||||
*/
|
||||
var members_ids = [];
|
||||
this.$element.find('.oe_kanban_project_avatars img').each(function() {
|
||||
members_ids.push($(this).data('member_id'));
|
||||
});
|
||||
var dataset = new openerp.web.DataSetSearch(this, 'res.users', self.session.context, [['id', 'in', _.uniq(members_ids)]]);
|
||||
dataset.read_slice(['id', 'name']).then(function(result) {
|
||||
_.each(result, function(v, k) {
|
||||
self.$element.find('.oe_kanban_project_avatars img[data-member_id=' + v.id + ']').attr('title', v.name).tipsy({
|
||||
offset: 10
|
||||
});
|
||||
var members_ids = [];
|
||||
|
||||
// Collect members ids
|
||||
self.$element.find('img[data-member_id]').each(function() {
|
||||
members_ids.push($(this).data('member_id'));
|
||||
});
|
||||
|
||||
// Find their matching names
|
||||
var dataset = new openerp.web.DataSetSearch(self, 'res.users', self.session.context, [['id', 'in', _.uniq(members_ids)]]);
|
||||
dataset.read_slice(['id', 'name']).then(function(result) {
|
||||
_.each(result, function(v, k) {
|
||||
// Set the proper value in the DOM
|
||||
self.$element.find('img[data-member_id=' + v.id + ']').attr('title', v.name).tipsy({
|
||||
offset: 10
|
||||
});
|
||||
});
|
||||
});
|
||||
},
|
||||
project_display_categ_names: function() {
|
||||
/*
|
||||
* Set proper names to project categories.
|
||||
* In kanban views, many2many fields only return a list of ids.
|
||||
* Therefore, we have to fetch the matching data by ourselves.
|
||||
*/
|
||||
var self = this;
|
||||
var categ_ids = [];
|
||||
|
||||
// Collect categories ids
|
||||
self.$element.find('span[data-categ_id]').each(function() {
|
||||
categ_ids.push($(this).data('categ_id'));
|
||||
});
|
||||
|
||||
// Find their matching names
|
||||
var dataset = new openerp.web.DataSetSearch(self, 'project.category', self.session.context, [['id', 'in', _.uniq(categ_ids)]]);
|
||||
dataset.read_slice(['id', 'name']).then(function(result) {
|
||||
_.each(result, function(v, k) {
|
||||
// Set the proper value in the DOM and display the element
|
||||
self.$element.find('span[data-categ_id=' + v.id + ']').text(v.name);
|
||||
});
|
||||
});
|
||||
},
|
||||
on_groups_started: function() {
|
||||
var self = this;
|
||||
self._super.apply(self, arguments);
|
||||
|
||||
if (self.dataset.model === 'project.project') {
|
||||
self.project_display_members_names();
|
||||
} else if (self.dataset.model === 'project.task') {
|
||||
self.project_display_categ_names();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
'version': '1.0',
|
||||
'category': 'Project Management',
|
||||
"sequence": 22,
|
||||
"summary": "Multi Level Support",
|
||||
"summary": "Support, Bug Traker, Helpdesk",
|
||||
'description': """
|
||||
This module provides Issues/Bugs Management in Project.
|
||||
=======================================================
|
||||
@@ -39,7 +39,7 @@ and decide on their status as they evolve.
|
||||
'website': 'http://www.openerp.com',
|
||||
'images': ['images/issue_analysis.jpeg','images/project_issue.jpeg'],
|
||||
'depends': [
|
||||
'base_status',
|
||||
'base_status',
|
||||
'crm',
|
||||
'project',
|
||||
],
|
||||
@@ -66,6 +66,9 @@ and decide on their status as they evolve.
|
||||
'auto_install': False,
|
||||
'application': True,
|
||||
'certificate' : '001236490750848623845',
|
||||
'js': [
|
||||
'static/src/js/project_issue.js',
|
||||
],
|
||||
}
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<field name="progress" widget="progressbar" attrs="{'invisible':[('task_id','=',False)]}"/>
|
||||
<field name="stage_id" widget="selection" readonly="1"/>
|
||||
<field name="state" groups="base.group_no_one"/>
|
||||
<field name="categ_id" invisible="1"/>
|
||||
<field name="categ_ids" invisible="1"/>
|
||||
<field name="task_id" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
|
||||
@@ -236,7 +236,7 @@ class project_issue(base_stage, osv.osv):
|
||||
'date_closed': fields.datetime('Closed', readonly=True,select=True),
|
||||
'date': fields.datetime('Date'),
|
||||
'channel_id': fields.many2one('crm.case.channel', 'Channel', help="Communication channel."),
|
||||
'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('object_id.model', '=', 'crm.project.bug')]"),
|
||||
'categ_ids': fields.many2many('project.category', string='Categories'),
|
||||
'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority', select=True),
|
||||
'version_id': fields.many2one('project.issue.version', 'Version'),
|
||||
'stage_id': fields.many2one ('project.task.type', 'Stage',
|
||||
@@ -279,7 +279,6 @@ class project_issue(base_stage, osv.osv):
|
||||
'section_id': lambda s, cr, uid, c: s._get_default_section_id(cr, uid, c),
|
||||
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.helpdesk', context=c),
|
||||
'priority': crm.AVAILABLE_PRIORITIES[2][0],
|
||||
'categ_id' : lambda *a: False,
|
||||
}
|
||||
|
||||
_group_by_full = {
|
||||
@@ -304,11 +303,11 @@ class project_issue(base_stage, osv.osv):
|
||||
def convert_issue_task(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
|
||||
|
||||
case_obj = self.pool.get('project.issue')
|
||||
data_obj = self.pool.get('ir.model.data')
|
||||
task_obj = self.pool.get('project.task')
|
||||
|
||||
|
||||
result = data_obj._get_id(cr, uid, 'project', 'view_task_search_form')
|
||||
res = data_obj.read(cr, uid, result, ['res_id'])
|
||||
id2 = data_obj._get_id(cr, uid, 'project', 'view_task_form2')
|
||||
@@ -351,23 +350,6 @@ class project_issue(base_stage, osv.osv):
|
||||
'nodestroy': True
|
||||
}
|
||||
|
||||
|
||||
def _convert(self, cr, uid, ids, xml_id, context=None):
|
||||
data_obj = self.pool.get('ir.model.data')
|
||||
id2 = data_obj._get_id(cr, uid, 'project_issue', xml_id)
|
||||
categ_id = False
|
||||
if id2:
|
||||
categ_id = data_obj.browse(cr, uid, id2, context=context).res_id
|
||||
if categ_id:
|
||||
self.write(cr, uid, ids, {'categ_id': categ_id})
|
||||
return True
|
||||
|
||||
def convert_to_feature(self, cr, uid, ids, context=None):
|
||||
return self._convert(cr, uid, ids, 'feature_request_categ', context=context)
|
||||
|
||||
def convert_to_bug(self, cr, uid, ids, context=None):
|
||||
return self._convert(cr, uid, ids, 'bug_categ', context=context)
|
||||
|
||||
def copy(self, cr, uid, id, default=None, context=None):
|
||||
issue = self.read(cr, uid, id, ['name'], context=context)
|
||||
if not default:
|
||||
@@ -376,7 +358,7 @@ class project_issue(base_stage, osv.osv):
|
||||
default['name'] = issue['name'] + _(' (copy)')
|
||||
return super(project_issue, self).copy(cr, uid, id, default=default,
|
||||
context=context)
|
||||
|
||||
|
||||
def write(self, cr, uid, ids, vals, context=None):
|
||||
#Update last action date every time the user change the stage, the state or send a new email
|
||||
logged_fields = ['stage_id', 'state', 'message_ids']
|
||||
@@ -463,7 +445,7 @@ class project_issue(base_stage, osv.osv):
|
||||
# -------------------------------------------------------
|
||||
# Mail gateway
|
||||
# -------------------------------------------------------
|
||||
|
||||
|
||||
def message_new(self, cr, uid, msg, custom_values=None, context=None):
|
||||
""" Overrides mail_thread message_new that is called by the mailgateway
|
||||
through message_process.
|
||||
@@ -485,7 +467,7 @@ class project_issue(base_stage, osv.osv):
|
||||
custom_values.update(self.message_partner_by_email(cr, uid, msg.get('from'), context=context))
|
||||
|
||||
res_id = super(project_issue, self).message_new(cr, uid, msg, custom_values=custom_values, context=context)
|
||||
self.convert_to_bug(cr, uid, [res_id], context=context)
|
||||
# self.convert_to_bug(cr, uid, [res_id], context=context)
|
||||
return res_id
|
||||
|
||||
def message_update(self, cr, uid, ids, msg, update_vals=None, context=None):
|
||||
@@ -515,7 +497,7 @@ class project_issue(base_stage, osv.osv):
|
||||
update_vals[key] = res.group(2).lower()
|
||||
|
||||
return super(project_issue, self).message_update(cr, uid, ids, update_vals=update_vals, context=context)
|
||||
|
||||
|
||||
# -------------------------------------------------------
|
||||
# OpenChatter methods and notifications
|
||||
# -------------------------------------------------------
|
||||
@@ -588,18 +570,18 @@ project()
|
||||
class account_analytic_account(osv.osv):
|
||||
_inherit = 'account.analytic.account'
|
||||
_description = 'Analytic Account'
|
||||
|
||||
|
||||
_columns = {
|
||||
'use_issues' : fields.boolean('Issues Tracking', help="Check this field if this project manages issues"),
|
||||
}
|
||||
|
||||
|
||||
def on_change_template(self, cr, uid, ids, template_id, context=None):
|
||||
res = super(account_analytic_account, self).on_change_template(cr, uid, ids, template_id, context=context)
|
||||
if template_id and 'value' in res:
|
||||
template = self.browse(cr, uid, template_id, context=context)
|
||||
res['value']['use_issues'] = template.use_issues
|
||||
return res
|
||||
|
||||
|
||||
def _trigger_project_creation(self, cr, uid, vals, context=None):
|
||||
res = super(account_analytic_account, self)._trigger_project_creation(cr, uid, vals, context=context)
|
||||
return res or vals.get('use_issues')
|
||||
|
||||
@@ -1,236 +1,239 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data noupdate="1">
|
||||
<data noupdate="1">
|
||||
|
||||
<record id="crm_case_buginaccountsmodule0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-08 10:15:00')" name="date"/>
|
||||
<field eval=""5"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="partner_id" ref="base.res_partner_agrolait"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field name="categ_id" ref="bug_categ"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field eval="15.0" name="duration"/>
|
||||
<field eval=""Bug in Accounts module"" name="name"/>
|
||||
<field eval=""agr@agrolait.com"" name="email_from"/>
|
||||
<field name="stage_id" ref="project.project_tt_specification"/>
|
||||
</record>
|
||||
<!-- Categories -->
|
||||
<record id="project_issue_category_01" model="project.category">
|
||||
<field name="name">Little problem</field>
|
||||
</record>
|
||||
<record id="project_issue_category_02" model="project.category">
|
||||
<field name="name">PBCK</field>
|
||||
</record>
|
||||
<record id="project_issue_category_03" model="project.category">
|
||||
<field name="name">Deadly bug</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_programnotgivingproperoutput0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-15 12:50:00')" name="date"/>
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="partner_id" ref="base.res_partner_asus"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="3.5" name="duration"/>
|
||||
<field name="categ_id" ref="bug_categ"/>
|
||||
<field eval=""Program not giving proper output"" name="name"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field name="stage_id" ref="project.project_tt_specification"/>
|
||||
</record>
|
||||
<!-- Issues -->
|
||||
<record id="crm_case_buginaccountsmodule0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-08 10:15:00')" name="date"/>
|
||||
<field name="priority">5</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="partner_id" ref="base.res_partner_agrolait"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field eval="15.0" name="duration"/>
|
||||
<field name="name">Bug in Accounts module</field>
|
||||
<field name="email_from">agr@agrolait.com</field>
|
||||
<field name="stage_id" ref="project.project_tt_specification"/>
|
||||
<field name="categ_ids" eval="[(6, 0, [
|
||||
ref('project_issue_category_01')])]"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_outputincorrect0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-18 14:30:00')" name="date"/>
|
||||
<field eval=""4"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="2.3" name="duration"/>
|
||||
<field name="categ_id" ref="bug_categ"/>
|
||||
<field name="project_id" ref="project.project_project_23"/>
|
||||
<field eval=""Output incorrect"" name="name"/>
|
||||
<field name="stage_id" ref="project.project_tt_development"/>
|
||||
</record>
|
||||
<record id="crm_case_programnotgivingproperoutput0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-15 12:50:00')" name="date"/>
|
||||
<field name="priority">3</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="partner_id" ref="base.res_partner_asus"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="3.5" name="duration"/>
|
||||
<field name="name">Program not giving proper output</field>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field name="stage_id" ref="project.project_tt_specification"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_problemloadingpage0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-20 15:25:05')" name="date"/>
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="partner_id" ref="base.res_partner_14"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="4.0" name="duration"/>
|
||||
<field name="categ_id" ref="bug_categ"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field eval=""Problem loading page"" name="name"/>
|
||||
<field name="stage_id" ref="project.project_tt_testing"/>
|
||||
</record>
|
||||
<record id="crm_case_outputincorrect0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-18 14:30:00')" name="date"/>
|
||||
<field name="priority">4</field>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="2.3" name="duration"/>
|
||||
<field name="project_id" ref="project.project_project_23"/>
|
||||
<field name="name">Output incorrect</field>
|
||||
<field name="stage_id" ref="project.project_tt_development"/>
|
||||
<field name="categ_ids" eval="[(6, 0, [
|
||||
ref('project_issue_category_01'),
|
||||
ref('project_issue_category_02')])]"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_pagenotfound0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-22 18:15:00')" name="date"/>
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="partner_id" ref="base.res_partner_desertic_hispafuentes"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="1.0" name="duration"/>
|
||||
<field name="categ_id" ref="bug_categ"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field eval=""Page not Found"" name="name"/>
|
||||
<field name="stage_id" ref="project.project_tt_development"/>
|
||||
</record>
|
||||
<record id="crm_case_problemloadingpage0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-20 15:25:05')" name="date"/>
|
||||
<field name="priority">3</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="partner_id" ref="base.res_partner_14"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="4.0" name="duration"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field name="name">Problem loading page</field>
|
||||
<field name="stage_id" ref="project.project_tt_testing"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_programmingerror0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-24 09:45:00')" name="date"/>
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="partner_id" ref="base.res_partner_5"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="4.0" name="duration"/>
|
||||
<field name="categ_id" ref="bug_categ"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field eval=""Programming Error"" name="name"/>
|
||||
<field name="stage_id" ref="project.project_tt_testing"/>
|
||||
</record>
|
||||
<record id="crm_case_pagenotfound0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-22 18:15:00')" name="date"/>
|
||||
<field name="priority">3</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="partner_id" ref="base.res_partner_desertic_hispafuentes"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="1.0" name="duration"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field name="name">Page not Found</field>
|
||||
<field name="stage_id" ref="project.project_tt_development"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_logicalerrorinprogram0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-26 11:10:00')" name="date"/>
|
||||
<field eval=""2"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="partner_id" ref="base.res_partner_6"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="2.0" name="duration"/>
|
||||
<field name="categ_id" ref="bug_categ"/>
|
||||
<field name="project_id" ref="project.project_project_9"/>
|
||||
<field eval=""Logical Error in Program"" name="name"/>
|
||||
<field name="stage_id" ref="project.project_tt_testing"/>
|
||||
</record>
|
||||
<record id="crm_case_programmingerror0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-24 09:45:00')" name="date"/>
|
||||
<field name="priority">3</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="partner_id" ref="base.res_partner_5"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="4.0" name="duration"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field name="name">Programming Error</field>
|
||||
<field name="stage_id" ref="project.project_tt_testing"/>
|
||||
<field name="categ_ids" eval="[(6, 0, [
|
||||
ref('project_issue_category_02'),
|
||||
ref('project_issue_category_03')])]"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_constrainterror0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-25 13:35:00')" name="date"/>
|
||||
<field eval=""2"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="partner_id" ref="base.res_partner_6"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="7.3" name="duration"/>
|
||||
<field name="categ_id" ref="bug_categ"/>
|
||||
<field name="project_id" ref="project.project_project_9"/>
|
||||
<field eval=""Constraint Error"" name="name"/>
|
||||
<field name="stage_id" ref="project.project_tt_testing"/>
|
||||
</record>
|
||||
<record id="crm_case_logicalerrorinprogram0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-26 11:10:00')" name="date"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="partner_id" ref="base.res_partner_6"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="2.0" name="duration"/>
|
||||
<field name="project_id" ref="project.project_project_9"/>
|
||||
<field name="name">Logical Error in Program</field>
|
||||
<field name="stage_id" ref="project.project_tt_testing"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_errorinprogram0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-28 15:40:00')" name="date"/>
|
||||
<field eval=""2"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="partner_id" ref="base.res_partner_5"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="1.3" name="duration"/>
|
||||
<field name="categ_id" ref="feature_request_categ"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field eval=""Error in Program"" name="name"/>
|
||||
<field name="stage_id" ref="project.project_tt_testing"/>
|
||||
</record>
|
||||
<record id="crm_case_constrainterror0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-25 13:35:00')" name="date"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="partner_id" ref="base.res_partner_6"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="7.3" name="duration"/>
|
||||
<field name="project_id" ref="project.project_project_9"/>
|
||||
<field name="name">Constraint Error</field>
|
||||
<field name="stage_id" ref="project.project_tt_testing"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_patcheserrorinprogram0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-28 16:30:00')" name="date"/>
|
||||
<field eval=""2"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="partner_id" ref="base.res_partner_2"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="13.0" name="duration"/>
|
||||
<field name="categ_id" ref="feature_request_categ"/>
|
||||
<field name="project_id" ref="project.project_project_9"/>
|
||||
<field eval=""Patches Error in Program"" name="name"/>
|
||||
<field name="stage_id" ref="project.project_tt_testing"/>
|
||||
</record>
|
||||
<record id="crm_case_errorinprogram0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-28 15:40:00')" name="date"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="partner_id" ref="base.res_partner_5"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="1.3" name="duration"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field name="name">Error in Program</field>
|
||||
<field name="stage_id" ref="project.project_tt_testing"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_newfeaturestobeadded0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-01 12:15:10')" name="date"/>
|
||||
<field eval=""4"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="partner_id" ref="base.res_partner_maxtor"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="3.2" name="duration"/>
|
||||
<field name="categ_id" ref="feature_request_categ"/>
|
||||
<field name="project_id" ref="project.project_project_21"/>
|
||||
<field eval=""New Features To Be Added"" name="name"/>
|
||||
<field name="stage_id" ref="project.project_tt_merge"/>
|
||||
</record>
|
||||
<record id="crm_case_patcheserrorinprogram0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-28 16:30:00')" name="date"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="partner_id" ref="base.res_partner_2"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="13.0" name="duration"/>
|
||||
<field name="project_id" ref="project.project_project_9"/>
|
||||
<field name="name">Patches Error in Program</field>
|
||||
<field name="stage_id" ref="project.project_tt_testing"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_addmenustothemodule0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-05 18:00:00')" name="date"/>
|
||||
<field eval=""1"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="partner_id" ref="base.res_partner_9"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="3.0" name="duration"/>
|
||||
<field name="categ_id" ref="feature_request_categ"/>
|
||||
<field name="project_id" ref="project.project_project_21"/>
|
||||
<field eval=""Add menus to the module"" name="name"/>
|
||||
<field eval=""info@opensides.be"" name="email_from"/>
|
||||
<field name="stage_id" ref="project.project_tt_development"/>
|
||||
</record>
|
||||
<record id="crm_case_newfeaturestobeadded0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-01 12:15:10')" name="date"/>
|
||||
<field name="priority">4</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="partner_id" ref="base.res_partner_maxtor"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="3.2" name="duration"/>
|
||||
<field name="project_id" ref="project.project_project_21"/>
|
||||
<field name="name">New Features To Be Added</field>
|
||||
<field name="stage_id" ref="project.project_tt_merge"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_includeattendancesheetinproject0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-10 17:05:30')" name="date"/>
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="partner_id" ref="base.res_partner_10"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="2.0" name="duration"/>
|
||||
<field name="categ_id" ref="feature_request_categ"/>
|
||||
<field name="project_id" ref="project.project_project_9"/>
|
||||
<field eval=""Include Attendance sheet in Project"" name="name"/>
|
||||
<field eval=""contact@tecsas.fr"" name="email_from"/>
|
||||
<field name="stage_id" ref="project.project_tt_development"/>
|
||||
</record>
|
||||
<record id="crm_case_addmenustothemodule0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-05 18:00:00')" name="date"/>
|
||||
<field name="priority">1</field>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="partner_id" ref="base.res_partner_9"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="3.0" name="duration"/>
|
||||
<field name="project_id" ref="project.project_project_21"/>
|
||||
<field name="name">Add menus to the module</field>
|
||||
<field name="email_from">info@opensides.be</field>
|
||||
<field name="stage_id" ref="project.project_tt_development"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_createnewobject0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-15 10:35:15')" name="date"/>
|
||||
<field eval=""3"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="partner_id" ref="base.res_partner_6"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="2.45" name="duration"/>
|
||||
<field name="categ_id" ref="feature_request_categ"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field eval=""Create new object"" name="name"/>
|
||||
<field name="stage_id" ref="project.project_tt_specification"/>
|
||||
</record>
|
||||
<record id="crm_case_includeattendancesheetinproject0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-10 17:05:30')" name="date"/>
|
||||
<field name="priority">3</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="partner_id" ref="base.res_partner_10"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="2.0" name="duration"/>
|
||||
<field name="project_id" ref="project.project_project_9"/>
|
||||
<field name="name">Include Attendance sheet in Project</field>
|
||||
<field name="email_from">contact@tecsas.fr</field>
|
||||
<field name="stage_id" ref="project.project_tt_development"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_improvereportsinhrms0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-19 12:15:00')" name="date"/>
|
||||
<field eval=""4"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="partner_id" ref="base.res_partner_11"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="15.0" name="duration"/>
|
||||
<field name="categ_id" ref="feature_request_categ"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field eval=""Improve Reports in HRMS"" name="name"/>
|
||||
<field name="stage_id" ref="project.project_tt_development"/>
|
||||
</record>
|
||||
<record id="crm_case_createnewobject0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-15 10:35:15')" name="date"/>
|
||||
<field name="priority">3</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="partner_id" ref="base.res_partner_6"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="2.45" name="duration"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field name="name">Create new object</field>
|
||||
<field name="stage_id" ref="project.project_tt_specification"/>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_improvereportsinpms0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-21 14:30:00')" name="date"/>
|
||||
<field eval=""2"" name="priority"/>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="partner_id" ref="base.res_partner_11"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="06.15" name="duration"/>
|
||||
<field name="categ_id" ref="feature_request_categ"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field eval=""Improve Reports in PMS"" name="name"/>
|
||||
<field name="stage_id" ref="project.project_tt_specification"/>
|
||||
</record>
|
||||
<record id="crm_case_improvereportsinhrms0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-19 12:15:00')" name="date"/>
|
||||
<field name="priority">4</field>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="partner_id" ref="base.res_partner_11"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="15.0" name="duration"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field name="name">Improve Reports in HRMS</field>
|
||||
<field name="stage_id" ref="project.project_tt_development"/>
|
||||
</record>
|
||||
|
||||
<!-- Call Function to set some issues as Unread -->
|
||||
<function model="project.issue" name="message_mark_as_unread"
|
||||
eval="[ ref('crm_case_improvereportsinhrms0'), ref('crm_case_createnewobject0')], {}"
|
||||
/>
|
||||
<record id="crm_case_improvereportsinpms0" model="project.issue">
|
||||
<field eval="time.strftime('%Y-%m-21 14:30:00')" name="date"/>
|
||||
<field name="priority">2</field>
|
||||
<field name="user_id" ref="base.user_demo"/>
|
||||
<field name="partner_id" ref="base.res_partner_11"/>
|
||||
<field name="section_id" ref="crm.section_sales_department"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval="06.15" name="duration"/>
|
||||
<field name="project_id" ref="project.project_project_22"/>
|
||||
<field name="name">Improve Reports in PMS</field>
|
||||
<field name="stage_id" ref="project.project_tt_specification"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
<!-- Call function to set some issues as 'unread' -->
|
||||
<function model="project.issue" name="message_mark_as_unread"
|
||||
eval="[ ref('crm_case_improvereportsinhrms0'), ref('crm_case_createnewobject0')], {}"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -16,9 +16,9 @@
|
||||
<record id="action_project_issue_unread" model="ir.values">
|
||||
<field name="name">action_project_issue_unread</field>
|
||||
<field name="action_id" ref="actions_server_project_issue_unread"/>
|
||||
<field name="value" eval="'ir.actions.server,' + str(ref('actions_server_project_issue_unread'))" />
|
||||
<field name="value" eval="'ir.actions.server,' + str(ref('actions_server_project_issue_unread'))"/>
|
||||
<field name="key">action</field>
|
||||
<field name="model_id" ref="model_project_issue" />
|
||||
<field name="model_id" ref="model_project_issue"/>
|
||||
<field name="model">project.issue</field>
|
||||
<field name="key2">client_action_multi</field>
|
||||
</record>
|
||||
@@ -34,9 +34,9 @@
|
||||
<record id="action_project_issue_read" model="ir.values">
|
||||
<field name="name">action_project_issue_read</field>
|
||||
<field name="action_id" ref="actions_server_project_issue_read"/>
|
||||
<field name="value" eval="'ir.actions.server,' + str(ref('actions_server_project_issue_read'))" />
|
||||
<field name="value" eval="'ir.actions.server,' + str(ref('actions_server_project_issue_read'))"/>
|
||||
<field name="key">action</field>
|
||||
<field name="model_id" ref="model_project_issue" />
|
||||
<field name="model_id" ref="model_project_issue"/>
|
||||
<field name="model">project.issue</field>
|
||||
<field name="key2">client_action_multi</field>
|
||||
</record>
|
||||
@@ -133,14 +133,12 @@
|
||||
<field name="task_id" on_change="onchange_task_id(task_id)" class="oe_inline"/>
|
||||
<field name="progress" widget="progressbar" attrs="{'invisible':[('task_id','=',False)]}" class="oe_inline"/>
|
||||
</div>
|
||||
<field name="categ_ids" widget="many2many_tags"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Description">
|
||||
<group>
|
||||
<group>
|
||||
<field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'project.issue')]"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="version_id" widget="selection"/>
|
||||
</group>
|
||||
@@ -194,7 +192,7 @@
|
||||
<field name="progress" widget="progressbar" attrs="{'invisible':[('task_id','=',False)]}"/>
|
||||
<field name="stage_id" widget="selection" readonly="1"/>
|
||||
<field name="state" groups="base.group_no_one"/>
|
||||
<field name="categ_id" invisible="1"/>
|
||||
<field name="categ_ids" invisible="1"/>
|
||||
<field name="task_id" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
@@ -216,7 +214,7 @@
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="New" icon="terp-document-new" domain="[('state','=','draft')]" help="New Issues"/>
|
||||
<filter string="To Do" domain="[('state','=','open')]" help="To Do Issues" icon="terp-check"/>
|
||||
<filter string="Unassigned Issues" domain="[('user_id','=',False)]" help="Unassigned Issues" icon="terp-personal-" />
|
||||
<filter string="Unassigned Issues" domain="[('user_id','=',False)]" help="Unassigned Issues" icon="terp-personal-"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="user_id"/>
|
||||
<field name="project_id"/>
|
||||
@@ -236,7 +234,7 @@
|
||||
domain="[]" context="{'group_by':'version_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Category" icon="terp-stock_symbol-selection" domain="[]"
|
||||
context="{'group_by':'categ_id'}"/>
|
||||
context="{'group_by':'categ_ids'}"/>
|
||||
<filter string="Priority" icon="terp-rating-rated" domain="[]"
|
||||
context="{'group_by':'priority'}"/>
|
||||
<filter string="Stage" icon="terp-stage" domain="[]"
|
||||
@@ -265,79 +263,81 @@
|
||||
</record>
|
||||
|
||||
|
||||
<!-- Project Issue Karban View-->
|
||||
<!-- Project Issue Karban View-->
|
||||
|
||||
<record model="ir.ui.view" id="project_issue_kanban_view">
|
||||
<field name="name">Project Issue Kanban</field>
|
||||
<field name="model">project.issue</field>
|
||||
<field name="type">kanban</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban default_group_by="stage_id">
|
||||
<field name="color"/>
|
||||
<field name="priority"/>
|
||||
<field name="user_email"/>
|
||||
<field name="user_id"/>
|
||||
<field name="date_deadline"/>
|
||||
<templates>
|
||||
<t t-name="kanban-tooltip">
|
||||
<ul class="oe_kanban_tooltip">
|
||||
<li><b>Project:</b> <field name="project_id"/></li>
|
||||
<li><b>Category:</b> <field name="categ_id"/></li>
|
||||
</ul>
|
||||
</t>
|
||||
<t t-name="kanban-box">
|
||||
<div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_global_click">
|
||||
<div class="oe_dropdown_toggle oe_dropdown_kanban">
|
||||
<span class="oe_e">i</span>
|
||||
<ul class="oe_dropdown_menu">
|
||||
<li><a type="edit" >Edit...</a></li>
|
||||
<li><a type="delete">Delete</a></li>
|
||||
<li><ul class="oe_kanban_colorpicker" data-field="color"/></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="oe_kanban_content" tooltip="kanban-tooltip">
|
||||
<div>
|
||||
<b><field name="name"/></b> <br/>
|
||||
<field name="partner_id"/> <br/>
|
||||
<field name="version_id"/>
|
||||
</div>
|
||||
<div class="oe_kanban_footer_left">
|
||||
<div class="oe_right">
|
||||
<span class="oe_kanban_highlight">
|
||||
<t t-set="priority" t-value="record.priority.raw_value || 5"/>
|
||||
<a type="object" name="set_priority" args="['3']" t-if="priority gt 3" title="Normal Priority">
|
||||
<img src="/web/static/src/img/icons/star-off.png" width="16" height="16"/>
|
||||
</a>
|
||||
<a type="object" name="set_priority" args="['5']" t-if="priority lte 3" title="Normal Priority">
|
||||
<img t-attf-src="/web/static/src/img/icons/star-#{priority lte 3 ? 'on' : 'off'}.png" width="16" height="16"/>
|
||||
</a>
|
||||
<a type="object" name="set_priority" args="['2']" title="High Priority">
|
||||
<img t-attf-src="/web/static/src/img/icons/star-#{priority lte 2 ? 'on' : 'off'}.png" width="16" height="16"/>
|
||||
</a>
|
||||
<a type="object" name="set_priority" args="['1']" title="Highest Priority">
|
||||
<img t-attf-src="/web/static/src/img/icons/star-#{priority == 1 ? 'on' : 'off'}.png" width="16" height="16"/>
|
||||
</a>
|
||||
</span>
|
||||
<t t-if="record.date_deadline.raw_value and record.date_deadline.raw_value lt (new Date())">
|
||||
<span t-attf-class="oe_kanban_status oe_kaban_status_red"> </span>
|
||||
</t>
|
||||
<img t-att-src="kanban_image('res.users', 'avatar', record.user_id.raw_value[0])" t-att-title="record.user_id.value" width="24" height="24" class="oe_kanban_avatar"/>
|
||||
<record model="ir.ui.view" id="project_issue_kanban_view">
|
||||
<field name="name">Project Issue Kanban</field>
|
||||
<field name="model">project.issue</field>
|
||||
<field name="type">kanban</field>
|
||||
<field name="arch" type="xml">
|
||||
<kanban default_group_by="stage_id">
|
||||
<field name="color"/>
|
||||
<field name="priority"/>
|
||||
<field name="user_email"/>
|
||||
<field name="user_id"/>
|
||||
<field name="date_deadline"/>
|
||||
<templates>
|
||||
<t t-name="kanban-tooltip">
|
||||
<ul class="oe_kanban_tooltip">
|
||||
<li><b>Project:</b> <field name="project_id"/></li>
|
||||
<li><b>Category:</b> <field name="categ_ids"/></li>
|
||||
</ul>
|
||||
</t>
|
||||
<t t-name="kanban-box">
|
||||
<div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_global_click">
|
||||
<div class="oe_dropdown_toggle oe_dropdown_kanban">
|
||||
<span class="oe_e">i</span>
|
||||
<ul class="oe_dropdown_menu">
|
||||
<li><a type="edit" >Edit...</a></li>
|
||||
<li><a type="delete">Delete</a></li>
|
||||
<li><ul class="oe_kanban_colorpicker" data-field="color"/></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="oe_kanban_content" tooltip="kanban-tooltip">
|
||||
<div>
|
||||
<b><field name="name"/></b> <br/>
|
||||
<field name="partner_id"/> <br/>
|
||||
<field name="version_id"/>
|
||||
</div>
|
||||
<div class="oe_kanban_footer_left">
|
||||
<div class="oe_left oe_tags">
|
||||
<t t-foreach="record.categ_ids.raw_value" t-as="categ_id">
|
||||
<span class="oe_tag" t-att-data-categ_id="categ_id"></span>
|
||||
</t>
|
||||
</div>
|
||||
<div class="oe_right">
|
||||
<span class="oe_kanban_highlight">
|
||||
<t t-set="priority" t-value="record.priority.raw_value || 5"/>
|
||||
<a type="object" name="set_priority" args="['3']" t-if="priority gt 3" title="Normal Priority">
|
||||
<img src="/web/static/src/img/icons/star-off.png" width="16" height="16"/>
|
||||
</a>
|
||||
<a type="object" name="set_priority" args="['5']" t-if="priority lte 3" title="Normal Priority">
|
||||
<img t-attf-src="/web/static/src/img/icons/star-#{priority lte 3 ? 'on' : 'off'}.png" width="16" height="16"/>
|
||||
</a>
|
||||
<a type="object" name="set_priority" args="['2']" title="High Priority">
|
||||
<img t-attf-src="/web/static/src/img/icons/star-#{priority lte 2 ? 'on' : 'off'}.png" width="16" height="16"/>
|
||||
</a>
|
||||
<a type="object" name="set_priority" args="['1']" title="Highest Priority">
|
||||
<img t-attf-src="/web/static/src/img/icons/star-#{priority == 1 ? 'on' : 'off'}.png" width="16" height="16"/>
|
||||
</a>
|
||||
</span>
|
||||
<t t-if="record.date_deadline.raw_value and record.date_deadline.raw_value lt (new Date())">
|
||||
<span t-attf-class="oe_kanban_status oe_kaban_status_red"> </span>
|
||||
</t>
|
||||
<img t-att-src="kanban_image('res.users', 'avatar', record.user_id.raw_value[0])" t-att-title="record.user_id.value" width="24" height="24" class="oe_kanban_avatar"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="oe_clear"></div>
|
||||
</div>
|
||||
<div class="oe_clear"></div>
|
||||
</div>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</field>
|
||||
</record>
|
||||
</t>
|
||||
</templates>
|
||||
</kanban>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
# ------------------------------------------------------
|
||||
# Feature Requests
|
||||
# ------------------------------------------------------
|
||||
|
||||
<!-- Feature Requests -->
|
||||
<record model="ir.ui.view" id="project_feature_tree_view">
|
||||
<field name="name">Project Issue- Feature Tracker Tree</field>
|
||||
<field name="model">project.issue</field>
|
||||
@@ -378,7 +378,7 @@
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<act_window id="act_project_project_2_project_issue_all"
|
||||
name="Issues"
|
||||
src_model="project.project"
|
||||
@@ -387,10 +387,7 @@
|
||||
view_mode="kanban,tree,form,calendar,graph"
|
||||
context="{'search_default_project_id': [active_id], 'default_project_id': active_id}"/>
|
||||
|
||||
# ------------------------------------------------------
|
||||
# Project
|
||||
# ------------------------------------------------------
|
||||
|
||||
<!-- Project -->
|
||||
<record id="view_project_form_inherited" model="ir.ui.view">
|
||||
<field name="name">project.project.form.inherited</field>
|
||||
<field name="model">project.project</field>
|
||||
@@ -409,7 +406,7 @@
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="view_project_kanban_inherited" model="ir.ui.view">
|
||||
<field name="name">project.project.kanban.inherited</field>
|
||||
<field name="model">project.project</field>
|
||||
@@ -427,7 +424,8 @@
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<record id="analytic_account_inherited_issue_form" model="ir.ui.view">
|
||||
|
||||
<record id="analytic_account_inherited_issue_form" model="ir.ui.view">
|
||||
<field name="name">account.analytic.account.issue.form.inherit</field>
|
||||
<field name="model">account.analytic.account</field>
|
||||
<field name="type">form</field>
|
||||
@@ -438,9 +436,10 @@
|
||||
<separator colspan="4" string="Project Management" name="project_sep"/> <!-- removal of invisible attribute -->
|
||||
</xpath>
|
||||
<xpath expr='//separator[@name="project_sep"]' position='after'>
|
||||
<field name="use_issues" />
|
||||
<field name="use_issues"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -50,7 +50,6 @@ class project_issue_report(osv.osv):
|
||||
'opening_date': fields.date('Date of Opening', readonly=True),
|
||||
'creation_date': fields.date('Creation Date', readonly=True),
|
||||
'date_closed': fields.date('Date of Closing', readonly=True),
|
||||
'categ_id': fields.many2one('crm.case.categ', 'Category', domain="[('section_id','=',section_id),('object_id.model', '=', 'project.issue')]"),
|
||||
'stage_id': fields.many2one('project.task.type', 'Stage'),
|
||||
'nbr': fields.integer('# of Issues', readonly=True),
|
||||
'working_hours_open': fields.float('Avg. Working Hours to Open', readonly=True),
|
||||
@@ -86,7 +85,6 @@ class project_issue_report(osv.osv):
|
||||
c.working_hours_open,
|
||||
c.working_hours_close,
|
||||
c.section_id,
|
||||
c.categ_id,
|
||||
c.stage_id,
|
||||
to_char(c.date_closed, 'YYYY-mm-dd') as date_closed,
|
||||
c.company_id as company_id,
|
||||
@@ -104,7 +102,7 @@ class project_issue_report(osv.osv):
|
||||
|
||||
FROM
|
||||
project_issue c
|
||||
WHERE c.active= 'true' and c.categ_id IN (select id from crm_case_categ where object_id in (select id from ir_model where model = 'project.issue'))
|
||||
WHERE c.active= 'true'
|
||||
)""")
|
||||
|
||||
project_issue_report()
|
||||
|
||||
@@ -17,19 +17,18 @@
|
||||
<field name="company_id" invisible="1" groups="base.group_multi_company"/>
|
||||
<field name="section_id" invisible="1"/>
|
||||
<field name="user_id" invisible="1"/>
|
||||
<field name="categ_id" invisible="1"/>
|
||||
<field name="channel_id" invisible="1"/>
|
||||
<field name="partner_id" invisible="1"/>
|
||||
<field name="task_id" invisible="1"/>
|
||||
<field name="task_id" invisible="1"/>
|
||||
<field name="date_closed" invisible="1"/>
|
||||
<field name="state" invisible="1"/>
|
||||
<field name="day" invisible="1"/>
|
||||
<field name="nbr" string="#Project Issues" sum='#Number of Project Issues'/>
|
||||
<field name="delay_open" avg='Avg Opening Delay'/>
|
||||
<field name="delay_close" avg='Avg Closing Delay'/>
|
||||
<field name="working_hours_open" avg='Open Working Hours'/>
|
||||
<field name="working_hours_close" avg='Close Working hours'/>
|
||||
<field name="email" sum='# Emails'/>
|
||||
<field name="nbr" string="#Project Issues" sum="#Number of Project Issues"/>
|
||||
<field name="delay_open" avg="Avg Opening Delay"/>
|
||||
<field name="delay_close" avg="Avg Closing Delay"/>
|
||||
<field name="working_hours_open" avg="Open Working Hours"/>
|
||||
<field name="working_hours_close" avg="Close Working hours"/>
|
||||
<field name="email" sum="# Emails"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
openerp.portal_project_issue = function(openerp) {
|
||||
openerp.web_kanban.KanbanView.include({
|
||||
on_groups_started: function() {
|
||||
var self = this;
|
||||
self._super.apply(this, arguments);
|
||||
|
||||
if (self.dataset.model === 'project.issue') {
|
||||
// Load project's categories names from m2m field
|
||||
self.project_display_categ_names();
|
||||
}
|
||||
}
|
||||
});
|
||||
};
|
||||
@@ -2,12 +2,9 @@
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<menuitem id="base.menu_project_long_term" name="Long Term Planning" parent="base.menu_main_pm" sequence="3"/>
|
||||
|
||||
# ------------------------------------------------------
|
||||
# Project User Allocation
|
||||
# ------------------------------------------------------
|
||||
<menuitem id="base.menu_project_long_term" name="Long Term Planning" parent="base.menu_main_pm" sequence="3"/>
|
||||
|
||||
<!-- Project User Allocation -->
|
||||
<record id="view_project_user_allocation_gantt" model="ir.ui.view">
|
||||
<field name="name">project.user.allocation.gantt</field>
|
||||
<field name="model">project.user.allocation</field>
|
||||
@@ -94,9 +91,7 @@
|
||||
</record>
|
||||
|
||||
|
||||
# ------------------------------------------------------
|
||||
# Project Phase
|
||||
# ------------------------------------------------------
|
||||
<!-- Project Phase -->
|
||||
<act_window id="act_project_phases"
|
||||
name="Phases"
|
||||
src_model="project.project"
|
||||
@@ -182,7 +177,7 @@
|
||||
<form string="Project Users" version="7.0">
|
||||
<group col="4">
|
||||
<field name="user_id"/>
|
||||
<field name="date_start" />
|
||||
<field name="date_start"/>
|
||||
<field name="date_end"/>
|
||||
</group>
|
||||
</form>
|
||||
@@ -195,7 +190,7 @@
|
||||
<field name="name"/>
|
||||
<field name="user_id"/>
|
||||
<field name="date_start"/>
|
||||
<field name="date_end" />
|
||||
<field name="date_end"/>
|
||||
<field name="planned_hours" widget="float_time"/>
|
||||
<field name="project_id" invisible="1"/>
|
||||
<field name="total_hours" sum='Total Hours'/>
|
||||
@@ -285,7 +280,7 @@
|
||||
<separator orientation="vertical"/>
|
||||
<field name="project_id"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Project" icon="terp-folder-violet" domain="[]" context="{'group_by':'project_id'}" name="project"/>
|
||||
<separator orientation="vertical"/>
|
||||
@@ -317,10 +312,7 @@
|
||||
</record>
|
||||
|
||||
|
||||
# ------------------------------------------------------
|
||||
# Project Task
|
||||
# ------------------------------------------------------
|
||||
|
||||
<!-- Project Task -->
|
||||
<record id="view_phase_task_form2" model="ir.ui.view">
|
||||
<field name="name">phase.task.form2</field>
|
||||
<field name="model">project.task</field>
|
||||
@@ -368,16 +360,15 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<act_window
|
||||
context="{'search_default_phase_id': [active_id], 'default_phase_id' : active_id}"
|
||||
id="project_phase_task_list"
|
||||
name="Related Tasks"
|
||||
res_model="project.task"
|
||||
src_model="project.phase"
|
||||
view_mode="tree,form"
|
||||
/>
|
||||
<act_window
|
||||
context="{'search_default_phase_id': [active_id], 'default_phase_id' : active_id}"
|
||||
id="project_phase_task_list"
|
||||
name="Related Tasks"
|
||||
res_model="project.task"
|
||||
src_model="project.phase"
|
||||
view_mode="tree,form"/>
|
||||
|
||||
<record id="analytic_account_inherited_phase_form" model="ir.ui.view">
|
||||
<record id="analytic_account_inherited_phase_form" model="ir.ui.view">
|
||||
<field name="name">account.analytic.account.phase.form.inherit</field>
|
||||
<field name="model">account.analytic.account</field>
|
||||
<field name="type">form</field>
|
||||
@@ -393,10 +384,7 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
# ------------------------------------------------------
|
||||
# Menu Items
|
||||
# ------------------------------------------------------
|
||||
|
||||
<!-- Menu Items -->
|
||||
<menuitem action="act_project_phase_list"
|
||||
id="menu_project_phase_list" parent="project.menu_project_management" sequence="2"/>
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
'version': '1.1',
|
||||
'category': 'Purchase Management',
|
||||
"sequence": 19,
|
||||
"summary": "Requests for Quotation, Invoicing Control",
|
||||
"summary": "RfQ, Purchase Orders, Delivery & Invoicing Control",
|
||||
'description': """
|
||||
Purchase Management module is for generating a purchase order for purchase of goods from a supplier.
|
||||
====================================================================================================
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
id="base.menu_purchase_root"
|
||||
groups="group_purchase_manager,group_purchase_user"
|
||||
sequence="40"/>
|
||||
|
||||
<menuitem id="menu_procurement_management" name="Purchase"
|
||||
parent="base.menu_purchase_root" sequence="1" />
|
||||
|
||||
@@ -54,12 +55,12 @@
|
||||
action="base.action_partner_category_form" id="menu_partner_categories_in_form" name="Partner Categories"
|
||||
parent="purchase.menu_purchase_partner_cat" groups="base.group_no_one"/>
|
||||
|
||||
<!--supplier menu-->
|
||||
<!--Supplier menu-->
|
||||
<menuitem id="base.menu_procurement_management_supplier_name" name="Suppliers"
|
||||
parent="menu_procurement_management"
|
||||
action="base.action_partner_supplier_form" sequence="15"/>
|
||||
|
||||
<!--Inventory control-->
|
||||
<!--Inventory control-->
|
||||
<menuitem id="menu_procurement_management_inventory" name="Receive Products"
|
||||
parent="base.menu_purchase_root" sequence="4"/>
|
||||
<menuitem action="stock.action_picking_tree4" id="menu_action_picking_tree4" parent="menu_procurement_management_inventory"
|
||||
@@ -80,11 +81,11 @@
|
||||
<field name="domain">[('type','=','in_invoice')]</field>
|
||||
<field name="context">{'default_type':'in_invoice', 'type':'in_invoice', 'journal_type': 'purchase', 'search_default_draft': 1}</field>
|
||||
<field name="search_view_id" ref="account.view_account_invoice_filter"/>
|
||||
<field name="help">
|
||||
Use this menu to control the invoices to be received from your supplier.
|
||||
OpenERP generates draft invoices from your purchase orders or receptions, according to your settings.
|
||||
Once you receive a supplier invoice, you can match it with the draft invoice and validate it.
|
||||
</field>
|
||||
<field name="help">
|
||||
Use this menu to control the invoices to be received from your supplier.
|
||||
OpenERP generates draft invoices from your purchase orders or receptions, according to your settings.
|
||||
Once you receive a supplier invoice, you can match it with the draft invoice and validate it.
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem name="Based on Draft Invoices"
|
||||
@@ -93,7 +94,7 @@
|
||||
parent="menu_procurement_management_invoice"
|
||||
sequence="13"/>
|
||||
|
||||
<!--product menu-->
|
||||
<!-- Product menu-->
|
||||
<menuitem id="menu_procurement_management_product" name="Products"
|
||||
parent="base.menu_purchase_root" sequence="8"/>
|
||||
|
||||
@@ -140,7 +141,7 @@
|
||||
<field name="key2">client_action_multi</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.ui.view" id="purchase_order_calendar">
|
||||
<record model="ir.ui.view" id="purchase_order_calendar">
|
||||
<field name="name">purchase.order.calendar</field>
|
||||
<field name="model">purchase.order</field>
|
||||
<field name="type">calendar</field>
|
||||
@@ -245,7 +246,7 @@
|
||||
<field name="invoice_method"/>
|
||||
<field name="invoiced"/>
|
||||
<field name="fiscal_position"/>
|
||||
<!-- we do not need these fields anymore, the information is in open chatter -->
|
||||
<!-- We do not need these fields anymore, the information is in open chatter -->
|
||||
<field name="validator" groups="base.group_no_one"/>
|
||||
<field name="date_approve" groups="base.group_no_one"/>
|
||||
</group>
|
||||
@@ -256,7 +257,7 @@
|
||||
</notebook>
|
||||
</sheet>
|
||||
<div class="oe_chatter">
|
||||
<field name="message_ids" widget="mail_thread"/>
|
||||
<field name="message_ids" widget="mail_thread"/>
|
||||
</div>
|
||||
</form>
|
||||
</field>
|
||||
@@ -268,29 +269,29 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Purchase Order">
|
||||
<group>
|
||||
<field name="name" string="Reference"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-document-new" name="draft" string="Quotations" domain="[('state','=','draft')]" help="Purchase order which are in draft state"/>
|
||||
<filter icon="terp-check" name="approved" string="Approved" domain="[('state','in',('approved','done'))]" help="Approved purchase order"/>
|
||||
<filter icon="terp-gtk-go-back-rtl" name="not_invoiced" string="Not Invoiced" domain="[('invoice_ids','=', False)]" help="Purchase orders that include lines not invoiced."/>
|
||||
<filter icon="terp-emblem-important" name="exception" string="Exception" domain="[('state','in',('except_invoice','except_picking'))]" help="Purchase order which are in the exception state"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="product_id"/>
|
||||
<field name="create_uid"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Supplier" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Source" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'origin'}"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_order'}"/>
|
||||
<filter string="Expected Date" icon="terp-go-month" domain="[]" context="{'group_by':'minimum_planned_date'}"/>
|
||||
</group>
|
||||
</search>
|
||||
<group>
|
||||
<field name="name" string="Reference"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-document-new" name="draft" string="Quotations" domain="[('state','=','draft')]" help="Purchase order which are in draft state"/>
|
||||
<filter icon="terp-check" name="approved" string="Approved" domain="[('state','in',('approved','done'))]" help="Approved purchase order"/>
|
||||
<filter icon="terp-gtk-go-back-rtl" name="not_invoiced" string="Not Invoiced" domain="[('invoice_ids','=', False)]" help="Purchase orders that include lines not invoiced."/>
|
||||
<filter icon="terp-emblem-important" name="exception" string="Exception" domain="[('state','in',('except_invoice','except_picking'))]" help="Purchase order which are in the exception state"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="product_id"/>
|
||||
<field name="create_uid"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Supplier" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Source" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'origin'}"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_order'}"/>
|
||||
<filter string="Expected Date" icon="terp-go-month" domain="[]" context="{'group_by':'minimum_planned_date'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -300,34 +301,34 @@
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Search Purchase Order">
|
||||
<group>
|
||||
<field name="name" string="Reference"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-mail-message-new"
|
||||
string="Inbox" help="Unread messages"
|
||||
name="needaction_pending"
|
||||
domain="[('needaction_pending','=',True)]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-document-new" name="draft" string="Quotations" domain="[('state','=','draft')]" help="Purchase orders which are in draft state"/>
|
||||
<filter icon="terp-check" name="approved" string="Purchase Orders" domain="[('state','not in',('draft','cancel'))]" help="Approved purchase orders"/>
|
||||
<filter icon="terp-gtk-go-back-rtl" name="not_invoiced" string="Not Invoiced" domain="[('invoice_ids','=', False)]" help="Purchase orders that include lines not invoiced."/>
|
||||
<filter icon="terp-emblem-important" name="exception" string="Exception" domain="[('state','in',('except_invoice','except_picking'))]" help="Purchase orders which are in exception state"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="product_id"/>
|
||||
<field name="create_uid"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Supplier" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Source" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'origin'}"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_order'}"/>
|
||||
<filter string="Expected Date" icon="terp-go-month" domain="[]" context="{'group_by':'minimum_planned_date'}"/>
|
||||
</group>
|
||||
</search>
|
||||
<group>
|
||||
<field name="name" string="Reference"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-mail-message-new"
|
||||
string="Inbox" help="Unread messages"
|
||||
name="needaction_pending"
|
||||
domain="[('needaction_pending','=',True)]"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter icon="terp-document-new" name="draft" string="Quotations" domain="[('state','=','draft')]" help="Purchase orders which are in draft state"/>
|
||||
<filter icon="terp-check" name="approved" string="Purchase Orders" domain="[('state','not in',('draft','cancel'))]" help="Approved purchase orders"/>
|
||||
<filter icon="terp-gtk-go-back-rtl" name="not_invoiced" string="Not Invoiced" domain="[('invoice_ids','=', False)]" help="Purchase orders that include lines not invoiced."/>
|
||||
<filter icon="terp-emblem-important" name="exception" string="Exception" domain="[('state','in',('except_invoice','except_picking'))]" help="Purchase orders which are in exception state"/>
|
||||
<separator orientation="vertical"/>
|
||||
<field name="partner_id"/>
|
||||
<field name="product_id"/>
|
||||
<field name="create_uid"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="0" string="Group By...">
|
||||
<filter string="Supplier" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Source" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'origin'}"/>
|
||||
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Order Date" icon="terp-go-month" domain="[]" context="{'group_by':'date_order'}"/>
|
||||
<filter string="Expected Date" icon="terp-go-month" domain="[]" context="{'group_by':'minimum_planned_date'}"/>
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -559,9 +560,7 @@
|
||||
parent="menu_procurement_management_invoice"
|
||||
sequence="72"/>
|
||||
|
||||
<!--
|
||||
Procurements
|
||||
-->
|
||||
<!-- Procurements -->
|
||||
|
||||
<record id="view_procurement_form_inherit" model="ir.ui.view">
|
||||
<field name="name">procurement.order.form.inherit</field>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
'version': '1.0',
|
||||
'category': 'Sales Management',
|
||||
"sequence": 14,
|
||||
"summary": "Quotations, Sales, Invoicing",
|
||||
"summary": "Quotations, Sale Orders, Invoicing",
|
||||
'description': """
|
||||
The base module to manage quotations and sales orders.
|
||||
======================================================
|
||||
|
||||
+16
-16
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2012-07-06 21:31+0000\n"
|
||||
"PO-Revision-Date: 2012-07-30 16:29+0000\n"
|
||||
"Last-Translator: Akira Hiyama <Unknown>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-07-14 05:49+0000\n"
|
||||
"X-Generator: Launchpad (build 15614)\n"
|
||||
"X-Launchpad-Export-Date: 2012-07-31 04:58+0000\n"
|
||||
"X-Generator: Launchpad (build 15702)\n"
|
||||
|
||||
#. module: sale_crm
|
||||
#: field:sale.order,categ_id:0
|
||||
@@ -31,12 +31,12 @@ msgstr "注文参照は、会社ごとに固有でなければなりません。
|
||||
#: code:addons/sale_crm/wizard/crm_make_sale.py:112
|
||||
#, python-format
|
||||
msgid "Converted to Sales Quotation(%s)."
|
||||
msgstr "販売見積書(%s)を移動"
|
||||
msgstr "受注見積(%s)に変換"
|
||||
|
||||
#. module: sale_crm
|
||||
#: view:crm.make.sale:0
|
||||
msgid "Convert to Quotation"
|
||||
msgstr "見積りへ移動"
|
||||
msgstr "見積に変換"
|
||||
|
||||
#. module: sale_crm
|
||||
#: code:addons/sale_crm/wizard/crm_make_sale.py:89
|
||||
@@ -48,7 +48,7 @@ msgstr "データ不足です。"
|
||||
#: code:addons/sale_crm/wizard/crm_make_sale.py:89
|
||||
#, python-format
|
||||
msgid "Customer has no addresses defined!"
|
||||
msgstr "顧客の住所が不明確です。"
|
||||
msgstr "顧客の住所が定義されていません。"
|
||||
|
||||
#. module: sale_crm
|
||||
#: model:ir.model,name:sale_crm.model_crm_make_sale
|
||||
@@ -58,7 +58,7 @@ msgstr "営業する。"
|
||||
#. module: sale_crm
|
||||
#: view:crm.make.sale:0
|
||||
msgid "_Create"
|
||||
msgstr "_作成"
|
||||
msgstr "作成"
|
||||
|
||||
#. module: sale_crm
|
||||
#: view:sale.order:0
|
||||
@@ -69,22 +69,22 @@ msgstr "私の営業チーム"
|
||||
#: help:crm.make.sale,close:0
|
||||
msgid ""
|
||||
"Check this to close the opportunity after having created the sale order."
|
||||
msgstr "発注書を作成後、これをチェックしオポチュニティを終了します。"
|
||||
msgstr "発注書を作成後、商談を終了するためにこれをチェックします。"
|
||||
|
||||
#. module: sale_crm
|
||||
#: view:board.board:0
|
||||
msgid "My Opportunities"
|
||||
msgstr "私のオポチュニティ"
|
||||
msgstr "私の商談"
|
||||
|
||||
#. module: sale_crm
|
||||
#: view:crm.lead:0
|
||||
msgid "Convert to Quote"
|
||||
msgstr "見積りへ移動"
|
||||
msgstr "見積に変換"
|
||||
|
||||
#. module: sale_crm
|
||||
#: field:crm.make.sale,shop_id:0
|
||||
msgid "Shop"
|
||||
msgstr "お店"
|
||||
msgstr "店"
|
||||
|
||||
#. module: sale_crm
|
||||
#: field:crm.make.sale,partner_id:0
|
||||
@@ -95,12 +95,12 @@ msgstr "顧客"
|
||||
#: code:addons/sale_crm/wizard/crm_make_sale.py:92
|
||||
#, python-format
|
||||
msgid "Opportunity: %s"
|
||||
msgstr "オポチュニティ: %s"
|
||||
msgstr "商談:%s"
|
||||
|
||||
#. module: sale_crm
|
||||
#: field:crm.make.sale,close:0
|
||||
msgid "Close Opportunity"
|
||||
msgstr "オポチュニティ成立"
|
||||
msgstr "商談を閉じる"
|
||||
|
||||
#. module: sale_crm
|
||||
#: view:board.board:0
|
||||
@@ -111,7 +111,7 @@ msgstr "段階別私の計画売上高"
|
||||
#: code:addons/sale_crm/wizard/crm_make_sale.py:110
|
||||
#, python-format
|
||||
msgid "Opportunity '%s' is converted to Quotation."
|
||||
msgstr "オポチュニティの'%s' は、見積に変換されました。"
|
||||
msgstr "商談 %s は見積に変換されました。"
|
||||
|
||||
#. module: sale_crm
|
||||
#: view:sale.order:0
|
||||
@@ -122,7 +122,7 @@ msgstr "営業チーム"
|
||||
#. module: sale_crm
|
||||
#: model:ir.actions.act_window,name:sale_crm.action_crm_make_sale
|
||||
msgid "Make Quotation"
|
||||
msgstr "見積り作成"
|
||||
msgstr "見積作成"
|
||||
|
||||
#. module: sale_crm
|
||||
#: view:crm.make.sale:0
|
||||
@@ -132,4 +132,4 @@ msgstr "キャンセル"
|
||||
#. module: sale_crm
|
||||
#: model:ir.model,name:sale_crm.model_sale_order
|
||||
msgid "Sales Order"
|
||||
msgstr "受注"
|
||||
msgstr "受注オーダー"
|
||||
|
||||
@@ -8,19 +8,19 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2012-04-20 04:29+0000\n"
|
||||
"Last-Translator: Tomomi Mengelberg <tomomi.mengelberg@aquasys.co.jp>\n"
|
||||
"PO-Revision-Date: 2012-07-30 16:32+0000\n"
|
||||
"Last-Translator: Akira Hiyama <Unknown>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-07-14 06:17+0000\n"
|
||||
"X-Generator: Launchpad (build 15614)\n"
|
||||
"X-Launchpad-Export-Date: 2012-07-31 04:58+0000\n"
|
||||
"X-Generator: Launchpad (build 15702)\n"
|
||||
|
||||
#. module: sale_margin
|
||||
#: sql_constraint:sale.order:0
|
||||
msgid "Order Reference must be unique per Company!"
|
||||
msgstr "発注参照は、会社ごとにユニークでなければなりません。"
|
||||
msgstr "オーダー参照は、会社ごとに固有でなければなりません。"
|
||||
|
||||
#. module: sale_margin
|
||||
#: field:sale.order.line,purchase_price:0
|
||||
@@ -30,7 +30,7 @@ msgstr "原価"
|
||||
#. module: sale_margin
|
||||
#: model:ir.model,name:sale_margin.model_sale_order
|
||||
msgid "Sales Order"
|
||||
msgstr "受注"
|
||||
msgstr "受注オーダー"
|
||||
|
||||
#. module: sale_margin
|
||||
#: help:sale.order,margin:0
|
||||
@@ -48,4 +48,4 @@ msgstr "粗利益"
|
||||
#. module: sale_margin
|
||||
#: model:ir.model,name:sale_margin.model_sale_order_line
|
||||
msgid "Sales Order Line"
|
||||
msgstr "受注明細"
|
||||
msgstr "受注オーダー行"
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
"name" : "Warehouse Management",
|
||||
"version" : "1.1",
|
||||
"author" : "OpenERP SA",
|
||||
"summary": "Incoming Shipments, Deliveries, Inventory, Stock",
|
||||
"summary": "Inventory, Logistic, Storage",
|
||||
"description" : """
|
||||
OpenERP Inventory Management module can manage multi-warehouses, multi and structured stock locations.
|
||||
======================================================================================================
|
||||
|
||||
@@ -105,15 +105,15 @@
|
||||
<group name="status" position="before" version="7.0">
|
||||
<group string="Stock and Expected Variations">
|
||||
<field name="qty_available"/>
|
||||
<field name="incoming_qty"/>
|
||||
<label for="virtual_available"/>
|
||||
<div>
|
||||
<field name="incoming_qty" groups="base.group_user"/>
|
||||
<label for="virtual_available" groups="base.group_user"/>
|
||||
<div groups="base.group_user">
|
||||
<field name="virtual_available" class="oe_inline"/>
|
||||
|
||||
<button name="%(action_view_change_product_quantity)d" string="Update" attrs="{'invisible': [('type', '=', 'service')]}"
|
||||
type="action" icon="gtk-execute" groups="stock.group_stock_manager,stock.group_stock_user" class="oe_inline"/>
|
||||
</div>
|
||||
<field name="outgoing_qty"/>
|
||||
<field name="outgoing_qty" groups="base.group_user"/>
|
||||
</group>
|
||||
<group name="lot" groups="stock.group_tracking_lot,stock.group_production_lot" string="Lots">
|
||||
<field name="track_production" groups="stock.group_production_lot"/>
|
||||
@@ -123,7 +123,7 @@
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="action_receive_move" model="ir.actions.act_window">
|
||||
<field name="name">Receive Products</field>
|
||||
<field name="res_model">stock.move</field>
|
||||
@@ -136,7 +136,7 @@
|
||||
<field name="search_view_id" ref="view_move_search_reception_incoming_picking"/>
|
||||
<field name="help">Here you can receive individual products, no matter what purchase order or picking order they come from. You will find the list of all products you are waiting for. Once you receive an order, you can filter based on the name of the supplier or the purchase order reference. Then you can confirm all products received using the buttons on the right of each line.</field>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="action_deliver_move" model="ir.actions.act_window">
|
||||
<field name="name">Receive Products</field>
|
||||
<field name="res_model">stock.move</field>
|
||||
@@ -215,17 +215,5 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- <record id="view_product_valuation_form" model="ir.ui.view">
|
||||
<field name="name">product.valuation.stock.form.inherit</field>
|
||||
<field name="model">product.product</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="product.product_normal_form_view"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="cost_method" position="after">
|
||||
<field name="valuation"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>-->
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
+23
-24
@@ -6,9 +6,9 @@
|
||||
<field eval="[(4, ref('group_stock_user'))]" name="groups_id"/>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
Resource: stock.location
|
||||
-->
|
||||
|
||||
<!-- Resource: stock.location -->
|
||||
|
||||
<record id="stock_location_3" model="stock.location">
|
||||
<field name="name">IT Suppliers</field>
|
||||
<field name="location_id" ref="stock_location_suppliers"/>
|
||||
@@ -44,16 +44,14 @@
|
||||
</record>
|
||||
|
||||
|
||||
<!--
|
||||
Resource: stock.inventory
|
||||
-->
|
||||
<!-- Resource: stock.inventory -->
|
||||
|
||||
<record id="stock_inventory_0" model="stock.inventory">
|
||||
<field name="name">Starting Inventory</field>
|
||||
</record>
|
||||
<!--
|
||||
Resource: stock.inventory.line
|
||||
-->
|
||||
|
||||
|
||||
<!-- Resource: stock.inventory.line -->
|
||||
|
||||
<record id="stock_inventory_line_0" model="stock.inventory.line">
|
||||
<field name="product_id" ref="product.product_product_pc1"/>
|
||||
@@ -185,10 +183,10 @@
|
||||
<field eval="0" name="supplier"/>
|
||||
<field name="is_company">1</field>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval=""""Shop 1"""" name="name"/>
|
||||
<field name="name">Shop 1</field>
|
||||
</record>
|
||||
<record id="res_partner_address_fabien0" model="res.partner">
|
||||
<field eval=""""Felix"""" name="name"/>
|
||||
<field name="name">Felix</field>
|
||||
<field name="parent_id" ref="res_partner_tinyshop0"/>
|
||||
<field name="use_parent_address" eval="1"/>
|
||||
<field eval="1" name="active"/>
|
||||
@@ -197,17 +195,17 @@
|
||||
<field name="currency_id" ref="base.EUR"/>
|
||||
<field name="partner_id" ref="res_partner_tinyshop0"/>
|
||||
<field name="parent_id" ref="base.main_company"/>
|
||||
<field eval=""""Shop 1"""" name="name"/>
|
||||
<field name="name">Shop 1</field>
|
||||
</record>
|
||||
<record id="res_partner_tinyshop1" model="res.partner">
|
||||
<field eval="1" name="customer"/>
|
||||
<field eval="0" name="supplier"/>
|
||||
<field eval="1" name="active"/>
|
||||
<field name="is_company">1</field>
|
||||
<field eval=""""Shop 2"""" name="name"/>
|
||||
<field name="name">Shop 2</field>
|
||||
</record>
|
||||
<record id="res_partner_address_eric0" model="res.partner">
|
||||
<field eval=""""Edwin"""" name="name"/>
|
||||
<field name="name">Edwin</field>
|
||||
<field name="parent_id" ref="res_partner_tinyshop1"/>
|
||||
<field name="use_parent_address" eval="1"/>
|
||||
<field eval="1" name="active"/>
|
||||
@@ -216,36 +214,36 @@
|
||||
<field name="currency_id" ref="base.EUR"/>
|
||||
<field name="partner_id" ref="res_partner_tinyshop1"/>
|
||||
<field name="parent_id" ref="base.main_company"/>
|
||||
<field eval=""""Shop 2"""" name="name"/>
|
||||
<field name="name">Shop 2</field>
|
||||
</record>
|
||||
<record id="stock_location_shop0" model="stock.location">
|
||||
<field model="res.partner" name="partner_id" search="[('name','=','Fabien')]"/>
|
||||
<field name="location_id" ref="stock.stock_location_locations"/>
|
||||
<field name="company_id" ref="res_company_shop0"/>
|
||||
<field eval=""""internal"""" name="usage"/>
|
||||
<field eval=""""none"""" name="chained_location_type"/>
|
||||
<field name="usage">internal</field>
|
||||
<field name="chained_location_type">none</field>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval=""""Shop 1"""" name="name"/>
|
||||
<field eval=""""manual"""" name="chained_auto_packing"/>
|
||||
<field name="name">Shop 1</field>
|
||||
<field name="chained_auto_packing">manual</field>
|
||||
</record>
|
||||
<record id="stock_location_shop1" model="stock.location">
|
||||
<field model="res.partner" name="partner_id" search="[('name','=','Eric')]"/>
|
||||
<field name="company_id" ref="res_company_tinyshop0"/>
|
||||
<field name="location_id" ref="stock.stock_location_locations"/>
|
||||
<field eval=""""internal"""" name="usage"/>
|
||||
<field name="usage">internal</field>
|
||||
<field eval="1" name="active"/>
|
||||
<field eval=""""Shop 2"""" name="name"/>
|
||||
<field name="name">Shop 2</field>
|
||||
</record>
|
||||
<record id="stock_location_intermediatelocation0" model="stock.location">
|
||||
<field name="partner_id" ref="base.main_partner"/>
|
||||
<field name="location_id" ref="stock.stock_location_locations_partner"/>
|
||||
<field eval=""""procurement"""" name="usage"/>
|
||||
<field eval=""""Internal Shippings"""" name="name"/>
|
||||
<field name="usage">procurement</field>
|
||||
<field name="name">Internal Shippings</field>
|
||||
</record>
|
||||
|
||||
<record id="stock_warehouse_shop0" model="stock.warehouse">
|
||||
<field name="lot_output_id" ref="stock.stock_location_output"/>
|
||||
<field eval=""""Shop 1"""" name="name"/>
|
||||
<field name="name">Shop 1</field>
|
||||
<field name="lot_stock_id" ref="stock_location_shop0"/>
|
||||
<field name="partner_id" ref="res_partner_address_fabien0"/>
|
||||
<field name="company_id" ref="res_company_shop0"/>
|
||||
@@ -266,5 +264,6 @@
|
||||
<field eval="'account.account,'+str(ref('account.stk'))" model="account.account" name="value"/>
|
||||
<field name="company_id" ref="base.main_company"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
+39
-53
@@ -683,14 +683,9 @@
|
||||
<menuitem action="action_warehouse_form" id="menu_action_warehouse_form" groups="stock.group_locations"
|
||||
parent="menu_stock_configuration" sequence="1"/>
|
||||
|
||||
<!--
|
||||
STOCK PICKING
|
||||
-->
|
||||
|
||||
<!--
|
||||
#
|
||||
# Defaults and Internal Pickings
|
||||
#
|
||||
Stock picking
|
||||
Defaults and Internal Pickings
|
||||
-->
|
||||
|
||||
<record model="ir.ui.view" id="stock_picking_calendar">
|
||||
@@ -733,14 +728,16 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Internal Picking List" version="7.0">
|
||||
<header>
|
||||
<button name="draft_force_assign" states="draft" string="Confirm" type="object" class="oe_highlight"/>
|
||||
<button name="draft_validate" states="draft" string="Confirm & Transfer" type="object" class="oe_highlight"/>
|
||||
<!-- <button name="action_assign" states="confirmed" string="Check Availability" type="object"/> -->
|
||||
<button name="force_assign" states="confirmed" string="Force Availability" type="object" class="oe_highlight"/>
|
||||
<button name="action_process" states="assigned" string="Confirm & Transfer" groups="stock.group_stock_user" type="object" class="oe_highlight"/>
|
||||
<button name="%(action_stock_invoice_onshipping)d" string="Create Invoice/Refund" attrs="{'invisible': ['|','|',('state','<>','done'),('invoice_state','=','invoiced'),('invoice_state','=','none')]}" type="action" class="oe_highlight"/>
|
||||
<button name="%(act_stock_return_picking)d" string="Reverse Transfer" states="done" type="action"/>
|
||||
<button name="button_cancel" states="assigned,confirmed,draft" string="_Cancel"/>
|
||||
<span groups="base.group_user">
|
||||
<button name="draft_force_assign" states="draft" string="Confirm" type="object" class="oe_highlight"/>
|
||||
<button name="draft_validate" states="draft" string="Confirm & Transfer" type="object" class="oe_highlight"/>
|
||||
<!-- <button name="action_assign" states="confirmed" string="Check Availability" type="object"/> -->
|
||||
<button name="force_assign" states="confirmed" string="Force Availability" type="object" class="oe_highlight"/>
|
||||
<button name="action_process" states="assigned" string="Confirm & Transfer" groups="stock.group_stock_user" type="object" class="oe_highlight"/>
|
||||
<button name="%(action_stock_invoice_onshipping)d" string="Create Invoice/Refund" attrs="{'invisible': ['|','|',('state','<>','done'),('invoice_state','=','invoiced'),('invoice_state','=','none')]}" type="action" class="oe_highlight"/>
|
||||
<button name="%(act_stock_return_picking)d" string="Reverse Transfer" states="done" type="action"/>
|
||||
<button name="button_cancel" states="assigned,confirmed,draft" string="_Cancel"/>
|
||||
</span>
|
||||
<field name="state" widget="statusbar" statusbar_visible="draft,assigned,done" statusbar_colors='{"shipping_except":"red","invoice_except":"red","waiting_date":"blue"}'/>
|
||||
</header>
|
||||
<sheet>
|
||||
@@ -776,7 +773,8 @@
|
||||
<button name="%(stock.move_scrap)d"
|
||||
string="Scrap Products" type="action"
|
||||
icon="gtk-convert" context="{'scrap': True}"
|
||||
states="draft,waiting,confirmed,assigned"/>
|
||||
states="draft,waiting,confirmed,assigned"
|
||||
groups="base.group_user"/>
|
||||
<field name="scrapped" invisible="1"/>
|
||||
<field name="prodlot_id" groups="stock.group_production_lot"/>
|
||||
<button
|
||||
@@ -800,9 +798,11 @@
|
||||
</tree>
|
||||
<form string="Stock Moves" version="7.0">
|
||||
<header>
|
||||
<button name="force_assign" states="confirmed" string="Force Availability" type="object" icon="gtk-jump-to"/>
|
||||
<button name="action_confirm" states="draft" string="Confirm" type="object" icon="gtk-apply"/>
|
||||
<button name="cancel_assign" states="assigned" string="Cancel Availability" type="object" icon="gtk-find"/>
|
||||
<span groups="base.group_user">
|
||||
<button name="force_assign" states="confirmed" string="Force Availability" type="object" icon="gtk-jump-to"/>
|
||||
<button name="action_confirm" states="draft" string="Confirm" type="object" icon="gtk-apply"/>
|
||||
<button name="cancel_assign" states="assigned" string="Cancel Availability" type="object" icon="gtk-find"/>
|
||||
</span>
|
||||
<field name="state" widget="statusbar" statusbar_visible="draft,assigned,done"/>
|
||||
</header>
|
||||
<group>
|
||||
@@ -816,7 +816,8 @@
|
||||
<button name="%(stock.move_scrap)d"
|
||||
string="Scrap" type="action"
|
||||
icon="gtk-convert" context="{'scrap': True}"
|
||||
states="draft,waiting,confirmed,assigned"/>
|
||||
states="draft,waiting,confirmed,assigned"
|
||||
groups="base.group_user"/>
|
||||
</div>
|
||||
<label for="product_uos_qty" groups="product.group_uos"/>
|
||||
<div groups="product.group_uos">
|
||||
@@ -866,8 +867,8 @@
|
||||
<group>
|
||||
<group>
|
||||
<field name="move_type"/>
|
||||
<field name="type"/>
|
||||
<field name="auto_picking"/>
|
||||
<field name="type" groups="base.group_user"/>
|
||||
<field name="auto_picking" groups="base.group_user"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
|
||||
@@ -941,11 +942,7 @@
|
||||
<field name="act_window_id" ref="action_picking_tree6"/>
|
||||
</record>
|
||||
|
||||
<!--
|
||||
#
|
||||
# Sending Products
|
||||
#
|
||||
-->
|
||||
<!-- Sending Products -->
|
||||
<record id="view_picking_out_tree" model="ir.ui.view">
|
||||
<field name="name">stock.picking.out.tree</field>
|
||||
<field name="model">stock.picking</field>
|
||||
@@ -971,18 +968,18 @@
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<data>
|
||||
<xpath expr="/form/header/button[@name='%(act_stock_return_picking)d']" position="replace">
|
||||
<xpath expr="/form/header//button[@name='%(act_stock_return_picking)d']" position="replace">
|
||||
<button name="%(report_picking_list_out)d" string="Print Delivery Slip" type="action" states="done" class="oe_highlight"/>
|
||||
<button name="%(act_stock_return_picking)d" string="Return Products" states="done" type="action"/>
|
||||
</xpath>
|
||||
<xpath expr="/form/header/button[@name='draft_validate']" position="replace">
|
||||
<xpath expr="/form/header//button[@name='draft_validate']" position="replace">
|
||||
<button name="draft_validate" states="draft" string="Confirm & Deliver" type="object" class="oe_highlight"/>
|
||||
<button name="action_assign" states="confirmed" string="Check Availability" type="object" class="oe_highlight"/>
|
||||
</xpath>
|
||||
<xpath expr="/form/header/button[@name='action_process']" position="replace">
|
||||
<xpath expr="/form/header//button[@name='action_process']" position="replace">
|
||||
<button name="action_process" states="assigned" string="Deliver" type="object" icon="gtk-go-forward" class="oe_highlight"/>
|
||||
</xpath>
|
||||
<xpath expr="/form/header/field[@name='state']" position="replace">
|
||||
<xpath expr="/form/header//field[@name='state']" position="replace">
|
||||
<field name="state" nolabel="1" readonly="1" widget="statusbar" statusbar_visible="draft,confirmed,assigned,done" statusbar_colors='{"auto":"blue", "confirmed":"blue"}'/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='partner_id']" position="replace">
|
||||
@@ -1059,11 +1056,7 @@
|
||||
</record>
|
||||
<menuitem action="action_picking_tree" id="menu_action_picking_tree" parent="menu_stock_warehouse_mgmt" sequence="3"/>
|
||||
|
||||
<!--
|
||||
#
|
||||
# Incomming Shipments
|
||||
#
|
||||
-->
|
||||
<!-- Incomming Shipments -->
|
||||
<record id="view_picking_in_tree" model="ir.ui.view">
|
||||
<field name="name">stock.picking.in.tree</field>
|
||||
<field name="model">stock.picking.in</field>
|
||||
@@ -1089,7 +1082,7 @@
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<data>
|
||||
<xpath expr="//button[@name='%(act_stock_return_picking)d']" position="replace">
|
||||
<xpath expr="/form/header//button[@name='%(act_stock_return_picking)d']" position="replace">
|
||||
<button name="%(act_stock_return_picking)d" string="Return Products" states="done" type="action"/>
|
||||
</xpath>
|
||||
<xpath expr="//button[@name='draft_validate']" position="replace">
|
||||
@@ -1191,8 +1184,7 @@
|
||||
<button name="%(stock.move_scrap)d"
|
||||
string="Scrap Products" type="action"
|
||||
icon="gtk-convert" context="{'scrap': True}"
|
||||
states="draft,waiting,confirmed,assigned"
|
||||
/>
|
||||
states="draft,waiting,confirmed,assigned"/>
|
||||
<field name="prodlot_id" groups="stock.group_production_lot"/>
|
||||
<button name="%(track_line)d" string="Split in Serial Numbers" type="action"
|
||||
icon="terp-stock_effects-object-colorize" attrs="{'invisible': [('prodlot_id','<>',False)]}"
|
||||
@@ -1217,8 +1209,6 @@
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- <menuitem id="menu_traceability_low" name="Low Level" parent="menu_traceability"/> -->
|
||||
|
||||
<record id="view_move_form" model="ir.ui.view">
|
||||
<field name="name">stock.move.form</field>
|
||||
<field name="model">stock.move</field>
|
||||
@@ -1351,13 +1341,10 @@
|
||||
</record>
|
||||
<menuitem action="action_move_form2" id="menu_action_move_form2" parent="menu_traceability" sequence="3"/>
|
||||
|
||||
====================================
|
||||
Reception Picking (By Stock Move)
|
||||
====================================
|
||||
<!-- from stock_partial_move_view -->
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
Reception Picking (By Stock Move)
|
||||
From stock_partial_move_view
|
||||
-->
|
||||
<record id="view_move_tree_reception_picking" model="ir.ui.view">
|
||||
<field name="name">stock.move.tree2</field>
|
||||
<field name="model">stock.move</field>
|
||||
@@ -1377,7 +1364,7 @@
|
||||
<field name="prodlot_id" groups="stock.group_production_lot"/>
|
||||
<button name="%(track_line)d" string="Split in Serial Numbers" type="action"
|
||||
icon="terp-stock_effects-object-colorize" attrs="{'invisible': [('prodlot_id','<>',False)]}"
|
||||
states="draft,waiting,confirmed,assigned,done"
|
||||
states="draft,waiting,confirmed,assigned,done"
|
||||
groups="stock.group_tracking_lot"/>
|
||||
<field name="tracking_id" groups="stock.group_tracking_lot"/>
|
||||
<button name="setlast_tracking" string="Put in current pack" type="object"
|
||||
@@ -1394,8 +1381,9 @@
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- test -->
|
||||
<record id="view_move_tree_reception_picking_board" model="ir.ui.view">
|
||||
<record id="view_move_tree_reception_picking_board" model="ir.ui.view">
|
||||
<field name="name">stock.move.tree3</field>
|
||||
<field name="model">stock.move</field>
|
||||
<field name="type">tree</field>
|
||||
@@ -1499,9 +1487,7 @@
|
||||
<field name="act_window_id" ref="action_reception_picking_move"/>
|
||||
</record>
|
||||
|
||||
# -------------------------------------------------------------
|
||||
# Stock incoterms
|
||||
# -------------------------------------------------------------
|
||||
<!-- Stock incoterms -->
|
||||
<record id="view_incoterms_tree" model="ir.ui.view">
|
||||
<field name="name">stock.incoterms.tree</field>
|
||||
<field name="model">stock.incoterms</field>
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:37+0000\n"
|
||||
"PO-Revision-Date: 2012-07-04 23:38+0000\n"
|
||||
"PO-Revision-Date: 2012-07-30 16:28+0000\n"
|
||||
"Last-Translator: Akira Hiyama <Unknown>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-07-14 06:20+0000\n"
|
||||
"X-Generator: Launchpad (build 15614)\n"
|
||||
"X-Launchpad-Export-Date: 2012-07-31 04:58+0000\n"
|
||||
"X-Generator: Launchpad (build 15702)\n"
|
||||
|
||||
#. module: stock_planning
|
||||
#: code:addons/stock_planning/wizard/stock_planning_createlines.py:73
|
||||
@@ -1184,7 +1184,7 @@ msgstr "誰がこの予測を作成したのか、検証したのかを示しま
|
||||
#. module: stock_planning
|
||||
#: field:stock.sale.forecast,analyzed_team_id:0
|
||||
msgid "Sales Team"
|
||||
msgstr "販売チーム"
|
||||
msgstr "営業チーム"
|
||||
|
||||
#. module: stock_planning
|
||||
#: help:stock.planning,incoming_left:0
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user