[Merge] Merge with Trunk addons

bzr revid: vir@tinyerp.com-20100527064223-525h7ibqqkps09m0
This commit is contained in:
Vir (Open ERP) 2010-05-27 12:12:23 +05:30
commit 7338e2d478
121 changed files with 1134 additions and 818 deletions

View File

@ -167,7 +167,7 @@ class res_partner(osv.osv):
_columns = {
'contract_ids': fields.one2many('account.analytic.account', \
'partner_id', 'Contracts'),
'partner_id', 'Contracts', readonly=True),
}
res_partner()

View File

@ -351,7 +351,7 @@
<field name="amount_total"/>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="12" col="10" groups="base.group_extended">
<group expand="1" string="Group By...">
<filter string="Journal" icon="terp-account" domain="[]" context="{'group_by':'journal_id'}"/>
<filter string="Period" icon="terp-account" domain="[]" context="{'group_by':'period_id'}"/>
<separator orientation="vertical"/>
@ -481,21 +481,5 @@
<act_window domain="[('partner_id', '=', partner_id), ('account_id.type', 'in', ['receivable', 'payable']), ('reconcile_id','=',False)]" id="act_account_invoice_account_move_unreconciled" name="Unreconciled Receivables &amp; Payables" res_model="account.move.line" src_model="account.invoice"/>
<!-- Partners inherited form -->
<record id="view_invoice_partner_info_form" model="ir.ui.view">
<field name="name">res.partner.invoice.info.inherit</field>
<field name="model">res.partner</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<notebook position="inside">
<page string="Account Info">
<field name="invoice_ids" colspan="4" nolabel="1" context="{'group_by':'product_id'}"/>
</page>
</notebook>
</field>
</record>
</data>
</openerp>

View File

@ -23,7 +23,6 @@ import time
import decimal_precision as dp
import netsvc
from osv import fields, osv, orm
import pooler
from tools import config
@ -1525,7 +1524,7 @@ class res_partner(osv.osv):
_inherit = 'res.partner'
_columns = {
'invoice_ids': fields.one2many('account.invoice.line', 'partner_id', 'Invoices'),
'invoice_ids': fields.one2many('account.invoice.line', 'partner_id', 'Invoices', readonly=True),
}
res_partner()

View File

@ -74,13 +74,13 @@
<page string="Accounting" position="inside">
<group col="2" colspan="2">
<separator string="Customer Accounting Properties" colspan="2"/>
<field name="property_account_receivable" groups="base.group_extended"/>
<field name="property_account_receivable" />
<field name="property_account_position" widget="selection"/>
<field name="property_payment_term" widget="selection"/>
</group>
<group col="2" colspan="2">
<separator string="Supplier Accounting Properties" colspan="2"/>
<field name="property_account_payable" groups="base.group_extended"/>
<field name="property_account_payable"/>
</group>
<group col="2" colspan="2">
<separator string="Customer Credit" colspan="2"/>
@ -118,10 +118,27 @@
<field name="acc_number"/>
</tree>
</field>
<field name="invoice_ids" colspan="4" nolabel="1" context="{'group_by':'product_id'}"/>
</page>
</notebook>
</field>
</record>
<!-- Partners info tab view-->
<record id="view_account_partner_info_form" model="ir.ui.view">
<field name="name">res.partner.account.info.inherit</field>
<field name="model">res.partner</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<notebook position="inside">
<page string="Project">
<field name="contract_ids" colspan="4" nolabel="1" />
</page>
</notebook>
</field>
</record>
</data>
</openerp>

View File

@ -443,21 +443,6 @@
</graph>
</field>
</record>
<!-- Partners inherited form -->
<record id="view_contract_partner_info_form" model="ir.ui.view">
<field name="name">res.partner.contract.info.inherit</field>
<field name="model">res.partner</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<field name="invoice_ids" position="after">
<field name="contract_ids" colspan="4" nolabel="1" />
</field>
</field>
</record>
</data>
</openerp>

View File

@ -57,7 +57,7 @@
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="10" col="12">
<group expand="1" string="Group By...">
<filter string="Account" name="Account" icon="terp-account" context="{'group_by':'name'}"/>
<filter string="Code" icon="terp-account" context="{'group_by':'code'}"/>
<filter string="Company" icon="terp-account" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
@ -67,7 +67,8 @@
<filter string="Account Type" icon="terp-account" context="{'group_by':'user_type'}"/>
<filter string="Parent Account" icon="terp-account" context="{'group_by':'parent_account_id'}"/>
</group>
<group expand="0" string="Extended options..." colspan="10" col="12">
<newline/>
<group expand="0" string="Extended options..." groups="base.group_extended">
<field name="type" />
<field name="user_type" widget="selection"/>
<field name="parent_account_id" />

View File

@ -55,7 +55,7 @@
<field name="currency_id"/>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="10" col="12">
<group expand="1" string="Group By...">
<filter string="User" name="User" icon="terp-account" context="{'group_by':'user_id'}"/>
<filter string="Currency" icon="terp-account" context="{'group_by':'currency_id'}"/>
<filter string="Company" icon="terp-account" context="{'group_by':'company_id'}" groups="base.multi_company"/>
@ -71,14 +71,15 @@
<filter string="Month" icon="terp-account" context="{'group_by':'month'}"/>
<filter string="Year" icon="terp-account" context="{'group_by':'year'}"/>
</group>
<group expand="0" string="Extended options..." colspan="10" col="12">
<newline/>
<group expand="0" string="Extended options..." groups="base.group_extended">
<field name="account_id" />
<field name="general_account_id" widget="selection"/>
<field name="journal_id" widget="selection"/>
<separator orientation="vertical"/>
<field name="product_id" />
<field name="product_uom_id" widget="selection"/>
<field name="company_id" widget="selection" groups="base.multi_company"/>
<field name="company_id" widget="selection" groups="base.multi_company"/>
</group>
</search>

View File

@ -58,7 +58,7 @@
<filter icon="terp-account"
string="Pending"
domain="[('state','=','pending')]"/>
<separator orientation="vertical"/>
<separator orientation="vertical"/>
<field name="name"/>
<field name="user_id" widget="selection">
<filter icon="terp-account"

View File

@ -56,10 +56,10 @@
<field name="arch" type="xml">
<search string="Invoices">
<group col="10" colspan="12">
<filter icon="terp-account" string="Last 365 Days"
<filter icon="gtk-media-rewind" string="Last 365 Days"
domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d')),('date','&gt;',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]"
help="Invoices of last 365 days"/>
<filter icon="terp-account" string="Last 30 Days"
<filter icon="gtk-media-rewind" string="Last 30 Days"
name="month"
domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d')), ('date','&gt;',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]"
help="Invoices of last 30 days"/>
@ -95,7 +95,7 @@
</field>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="10" col="12">
<group expand="1" string="Group By...">
<filter string="Salesman" name='User' icon="terp-account" context="{'group_by':'user_id'}"/>
<filter string="Partner" icon="terp-account" context="{'group_by':'partner_id'}"/>
<filter string="Product" icon="terp-account" context="{'group_by':'product_id'}"/>
@ -118,7 +118,7 @@
<filter string="Year" icon="terp-account" context="{'group_by':'year'}"/>
</group>
<newline/>
<group expand="0" string="Extended options..." colspan="10" col="12" groups="base.group_extended">
<group expand="0" string="Extended options..." groups="base.group_extended">
<field name="type"/>
<field name="currency_id" widget="selection"/>
<field name="partner_bank" widget="selection"/>

View File

@ -30,7 +30,7 @@
You can define your multiple levels of recall through the menu:
Financial Management/Configuration/Payment Terms/Follow-Ups
Once it's defined, you can automatically prints recall every days
Once it's defined, you can automatically print recalls every day
through simply clicking on the menu:
Financial_Management/Periodical_Processing/Print_Follow-Ups

View File

@ -32,7 +32,7 @@
* add titles, comment lines, sub total lines
* draw horizontal lines and put page breaks
Moreover, there is one option which allow you to print all the selected invoices with a given special message at the bottom of it. This feature can be very useful for printing your invoices with end-of-year wishes, special punctual conditions...
Moreover, there is one option which allows you to print all the selected invoices with a given special message at the bottom of it. This feature can be very useful for printing your invoices with end-of-year wishes, special punctual conditions...
""",
'author': 'Tiny',

View File

@ -28,7 +28,7 @@
"depends": ["account"],
"init_xml": [],
"description": """
This module provide :
This module provides :
* a more efficient way to manage invoice payment.
* a basic mechanism to easily plug various automated payment.
""",

View File

@ -24,8 +24,8 @@
"version" : "1.0",
"author" : 'Tiny & Axelor',
"description": """
India Accounting module includes all the basic requirenment of
Basic Accounting, plus new things which available are
Indian Accounting module includes all the basic requirenments of
Basic Accounting, plus new things which are available :
* Indian Account Chart
* New Invoice - (Local, Retail)
* Invoice Report

View File

@ -25,7 +25,7 @@
'category': 'Generic Modules/Others',
'description': """
This module allows you to define what is the default invoicing rate for a specific journal on a given account. This is mostly used when a user encode his timesheet: the values are retrieved and the fields are auto-filled... but the possibility to change these values is still available.
This module allows you to define what is the default invoicing rate for a specific journal on a given account. This is mostly used when a user encodes his timesheet: the values are retrieved and the fields are auto-filled... but the possibility to change these values is still available.
Obviously if no data has been recorded for the current account, the default value is given as usual by the account data so that this module is perfectly compatible with older configurations.

View File

@ -26,7 +26,7 @@
'category': 'Generic Modules/Others',
'description': """
This module allows you to define what is the default function of a specific user on a given account. This is mostly used when a user encode his timesheet: the values are retrieved and the fields are auto-filled... but the possibility to change these values is still available.
This module allows you to define what is the default function of a specific user on a given account. This is mostly used when a user encodes his timesheet: the values are retrieved and the fields are auto-filled... but the possibility to change these values is still available.
Obviously if no data has been recorded for the current account, the default value is given as usual by the employee data so that this module is perfectly compatible with older configurations.

View File

@ -33,25 +33,25 @@ class audittrail_rule(osv.osv):
_name = 'audittrail.rule'
_description = "Audittrail Rule"
_columns = {
"name": fields.char("Rule Name", size=32, required=True),
"object_id": fields.many2one('ir.model', 'Object', required=True),
"user_id": fields.many2many('res.users', 'audittail_rules_users',
'user_id', 'rule_id', 'Users'),
"log_read": fields.boolean("Log reads"),
"log_write": fields.boolean("Log writes"),
"log_unlink": fields.boolean("Log deletes"),
"log_create": fields.boolean("Log creates"),
"state": fields.selection((("draft", "Draft"),
("subscribed", "Subscribed")),
"State", required=True),
"action_id": fields.many2one('ir.actions.act_window', "Action ID"),
"name": fields.char("Rule Name", size=32, required=True),
"object_id": fields.many2one('ir.model', 'Object', required=True),
"user_id": fields.many2many('res.users', 'audittail_rules_users',
'user_id', 'rule_id', 'Users'),
"log_read": fields.boolean("Log reads"),
"log_write": fields.boolean("Log writes"),
"log_unlink": fields.boolean("Log deletes"),
"log_create": fields.boolean("Log creates"),
"state": fields.selection((("draft", "Draft"),
("subscribed", "Subscribed")),
"State", required=True),
"action_id": fields.many2one('ir.actions.act_window', "Action ID"),
}
_defaults = {
'state': lambda *a: 'draft',
'log_create': lambda *a: 1,
'log_unlink': lambda *a: 1,
'log_write': lambda *a: 1,
'state': lambda *a: 'draft',
'log_create': lambda *a: 1,
'log_unlink': lambda *a: 1,
'log_write': lambda *a: 1,
}
_sql_constraints = [
@ -65,7 +65,7 @@ class audittrail_rule(osv.osv):
@param cr: the current row, from the database cursor,
@param uid: the current users ID for security checks,
@param ids: List of Auddittrail Rules IDs.
@return: True
@return: True
"""
obj_action = self.pool.get('ir.actions.act_window')
obj_model = self.pool.get('ir.model.data')
@ -74,13 +74,13 @@ class audittrail_rule(osv.osv):
obj = self.pool.get(thisrule.object_id.model)
if not obj:
raise osv.except_osv(
_('WARNING: audittrail is not part of the pool'),
_('WARNING: audittrail is not part of the pool'),
_('Change audittrail depends -- Setting rule as DRAFT'))
self.write(cr, uid, [thisrule.id], {"state": "draft"})
val = {
"name": 'View Log',
"res_model": 'audittrail.log',
"src_model": thisrule.object_id.model,
"name": 'View Log',
"res_model": 'audittrail.log',
"src_model": thisrule.object_id.model,
"domain": "[('object_id','=', " + str(thisrule.object_id.id) + "), ('res_id', '=', active_id)]"
}
@ -98,7 +98,7 @@ class audittrail_rule(osv.osv):
@param cr: the current row, from the database cursor,
@param uid: the current users ID for security checks,
@param ids: List of Auddittrail Rules IDs.
@return: True
@return: True
"""
obj_action = self.pool.get('ir.actions.act_window')
val_obj = self.pool.get('ir.values')
@ -128,16 +128,16 @@ class audittrail_log(osv.osv):
_description = "Audittrail Log"
_columns = {
"name": fields.char("Name", size=32),
"object_id": fields.many2one('ir.model', 'Object'),
"user_id": fields.many2one('res.users', 'User'),
"method": fields.selection((('read', 'Read'),
('write', 'Write'),
('unlink', 'Delete'),
('create', 'Create')), "Method"),
"timestamp": fields.datetime("Date"),
"res_id": fields.integer('Resource Id'),
"line_ids": fields.one2many('audittrail.log.line', 'log_id', 'Log lines'),
"name": fields.char("Name", size=32),
"object_id": fields.many2one('ir.model', 'Object'),
"user_id": fields.many2one('res.users', 'User'),
"method": fields.selection((('read', 'Read'),
('write', 'Write'),
('unlink', 'Delete'),
('create', 'Create')), "Method"),
"timestamp": fields.datetime("Date"),
"res_id": fields.integer('Resource Id'),
"line_ids": fields.one2many('audittrail.log.line', 'log_id', 'Log lines'),
}
_defaults = {
@ -155,14 +155,14 @@ class audittrail_log_line(osv.osv):
_name = 'audittrail.log.line'
_description = "Log Line"
_columns = {
'field_id': fields.many2one('ir.model.fields', 'Fields', required=True),
'log_id': fields.many2one('audittrail.log', 'Log'),
'log': fields.integer("Log ID"),
'old_value': fields.text("Old Value"),
'new_value': fields.text("New Value"),
'old_value_text': fields.text('Old value Text'),
'new_value_text': fields.text('New value Text'),
'field_description': fields.char('Field Description', size=64),
'field_id': fields.many2one('ir.model.fields', 'Fields', required=True),
'log_id': fields.many2one('audittrail.log', 'Log'),
'log': fields.integer("Log ID"),
'old_value': fields.text("Old Value"),
'new_value': fields.text("New Value"),
'old_value_text': fields.text('Old value Text'),
'new_value_text': fields.text('New value Text'),
'field_description': fields.char('Field Description', size=64),
}
audittrail_log_line()
@ -170,7 +170,7 @@ audittrail_log_line()
class audittrail_objects_proxy(osv_pool):
""" Uses Object proxy for auditing changes on object of subscribed Rules"""
def get_value_text(self, cr, uid, field_name, values, object, context=None):
"""
Gets textual values for the fields
@ -178,9 +178,9 @@ class audittrail_objects_proxy(osv_pool):
@param cr: the current row, from the database cursor,
@param uid: the current users ID for security checks,
@param field_name: List of fields for text values
@param values: Values for field to be converted into textual values
@return: values: List of textual values for given fields
@param field_name: List of fields for text values
@param values: Values for field to be converted into textual values
@return: values: List of textual values for given fields
"""
if not context:
context = {}
@ -226,7 +226,7 @@ class audittrail_objects_proxy(osv_pool):
@param object: Object who's values are being changed
@param lines: List of values for line is to be created
"""
pool = pooler.get_pool(cr.dbname)
obj = pool.get(object.model)
#start Loop
@ -242,7 +242,7 @@ class audittrail_objects_proxy(osv_pool):
new_value = 'new_value' in line and line['new_value'] or ''
old_value_text = 'old_value_text' in line and line['old_value_text'] or ''
new_value_text = 'new_value_text' in line and line['new_value_text'] or ''
if old_value_text == new_value_text:
continue
if fields[0]['ttype'] == 'many2one':
@ -251,12 +251,12 @@ class audittrail_objects_proxy(osv_pool):
if type(new_value) == tuple:
new_value = new_value[0]
vals = {
"log_id": id,
"field_id": f_id[0],
"old_value": old_value,
"new_value": new_value,
"old_value_text": old_value_text,
"new_value_text": new_value_text,
"log_id": id,
"field_id": f_id[0],
"old_value": old_value,
"new_value": new_value,
"old_value_text": old_value_text,
"new_value_text": new_value_text,
"field_description": fields[0]['field_description']
}
line_id = pool.get('audittrail.log.line').create(cr, uid, vals)
@ -270,10 +270,10 @@ class audittrail_objects_proxy(osv_pool):
@param db: the current database
@param uid: the current users ID for security checks,
@param object: Object who's values are being changed
@param method: method to log: create, read, write, unlink
@param method: method to log: create, read, write, unlink
@param fct_src: execute method of Object proxy
@return: Returns result as per method of Object proxy
@return: Returns result as per method of Object proxy
"""
logged_uids = []
pool = pooler.get_pool(db)
@ -290,9 +290,9 @@ class audittrail_objects_proxy(osv_pool):
resource_name = pool.get(model_object.model).name_get(cr, uid, [res_id])
resource_name = resource_name and resource_name[0][1] or ''
vals = {
"method": method,
"object_id": model_object.id,
"user_id": uid, "res_id": res_id,
"method": method,
"object_id": model_object.id,
"user_id": uid, "res_id": res_id,
"name": resource_name
}
id = pool.get('audittrail.log').create(cr, uid, vals)
@ -300,8 +300,8 @@ class audittrail_objects_proxy(osv_pool):
for field in new_value:
if new_value[field]:
line = {
'name': field,
'new_value': new_value[field],
'name': field,
'new_value': new_value[field],
'new_value_text': self.get_value_text(cr, uid, field, new_value[field], model_object)
}
lines.append(line)
@ -329,10 +329,10 @@ class audittrail_objects_proxy(osv_pool):
for field in args[1].keys():
if args[1].keys():
line = {
'name': field,
'new_value': field in new_values and new_values[field] or '',
'old_value': field in old_values and old_values[field] or '',
'new_value_text': self.get_value_text(cr, uid, field, new_values[field], model_object),
'name': field,
'new_value': field in new_values and new_values[field] or '',
'old_value': field in old_values and old_values[field] or '',
'new_value_text': self.get_value_text(cr, uid, field, new_values[field], model_object),
'old_value_text': old_values_text[field]
}
lines.append(line)
@ -360,8 +360,8 @@ class audittrail_objects_proxy(osv_pool):
for field in old_values[res_id]:
if old_values[res_id][field]:
line = {
'name': field,
'old_value': old_values[res_id][field],
'name': field,
'old_value': old_values[res_id][field],
'old_value_text': self.get_value_text(cr, uid, field, old_values[res_id][field], model_object)
}
lines.append(line)
@ -385,8 +385,8 @@ class audittrail_objects_proxy(osv_pool):
for field in old_values[res_id]:
if old_values[res_id][field]:
line = {
'name': field,
'old_value': old_values[res_id][field],
'name': field,
'old_value': old_values[res_id][field],
'old_value_text': self.get_value_text(cr, uid, field, old_values[res_id][field], model_object)
}
lines.append(line)
@ -403,9 +403,9 @@ class audittrail_objects_proxy(osv_pool):
@param db: the current database
@param uid: the current users ID for security checks,
@param object: Object who's values are being changed
@param method: method to log: create, read, write, unlink
@return: Returns result as per method of Object proxy
@param method: method to log: create, read, write, unlink
@return: Returns result as per method of Object proxy
"""
pool = pooler.get_pool(db)
cr = pooler.get_db(db).cursor()
@ -433,7 +433,7 @@ class audittrail_objects_proxy(osv_pool):
logged_uids.append(user.id)
if not logged_uids or uid in logged_uids:
if field in ('read', 'write', 'create', 'unlink'):
if getattr(thisrule, 'log_',''):
if getattr(thisrule, 'log_' + field):
return self.log_fct(db, uid, object, method, fct_src, *args)
return fct_src(db, uid, object, method, *args)
res = my_fct(db, uid, object, method, *args)

View File

@ -20,10 +20,11 @@
##############################################################################
{
"name" : "Basic Calendar Functionality",
"version" : "1.0",
"depends" : ["base"],
'description': """Full featured calendar system that support:
"name" : "Basic Calendar Functionality",
"version" : "1.0",
"depends" : ["base"],
'description': """Full featured calendar system that supports:
- Alerts (create requests)
- Recurring events (*)
- Invitations to others people""",

View File

@ -1660,9 +1660,10 @@ class ir_model(osv.osv):
@param ids: List of IR Models IDs.
@param context: A standard dictionary for contextual values
"""
new_ids = isinstance(ids, (str, int, long)) and [ids] or ids
if not context:
context = {}
data = super(ir_model, self).read(cr, uid, ids, fields=fields, \
data = super(ir_model, self).read(cr, uid, new_ids, fields=fields, \
context=context, load=load)
if data:
for val in data:

View File

@ -108,7 +108,7 @@
<field name="cutype" string="Invitation type" select="1"/>
<field name="event_date" select="1"/>
<newline/>
<group expand="1" string="Group By..." colspan="16">
<group expand="1" string="Group By...">
<filter string="Type" icon="terp-project" help="Invitation Type"
domain="[]" context="{'group_by':'cutype'}" />
<filter string="Role" icon="terp-project"
@ -119,9 +119,7 @@
<filter string="User" icon="terp-partner" domain="[]"
context="{'group_by':'user_id'}" />
<filter string="Contact" icon="terp-partner" domain="[]"
context="{'group_by':'partner_address_id'}" />
<filter string="Type" icon="terp-project" help="Invitation Type"
domain="[]" context="{'group_by':'cutype'}" />
context="{'group_by':'partner_address_id'}" />
<filter string="State" icon="terp-project" help="Invitation Type"
domain="[]" context="{'group_by':' state'}" />
</group>
@ -400,7 +398,7 @@
<field name="class" select="1"/>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="16">
<group expand="1" string="Group By...">
<filter string="Date" icon="terp-project"
domain="[]" context="{'group_by':'date'}" />
<filter string="Availability" icon="terp-project"

View File

@ -25,14 +25,14 @@
'version': '1.0',
'category': 'Generic Modules/Base',
'description': """
This module allows you to manage entirely your contacts.
This module allows you to manage your contacts entirely.
It lets you define
*contacts unrelated to a partner,
*contacts working at several addresses (possibly for different partners),
*contacts with possibly different functions for each of its job's addresses
It also add new menu items located in
It also adds new menu items located in
Partners \ Contacts
Partners \ Functions

View File

@ -23,7 +23,7 @@
'version': '1.0',
'category': 'Generic Modules/Base',
'description': """
This module install the base for IBAN (International Bank Account Number) bank accounts and checks for its validity
This module installs the base for IBAN (International Bank Account Number) bank accounts and checks for its validity
""",
'author': 'Tiny',

View File

@ -27,7 +27,7 @@
'description': """
This module's aim is to check the quality of other modules.
It defines a wizard on the list of modules in OpenERP, which allow you to
It defines a wizard on the list of modules in OpenERP, which allows you to
evaluate them on different criteria such as: the respect of OpenERP coding
standards, the speed efficiency...

View File

@ -39,7 +39,7 @@ for custom configurations and demo/testing data.
How to use it:
Run Administration/Customization/Module Creation/Export Customizations As a Module wizard.
Select datetime critearea of recording and objects to be recorded and Record module.
Select datetime critearia of recording and objects to be recorded and Record module.
""",
'author': 'Tiny',
'website': 'http://www.openerp.com',

View File

@ -24,8 +24,8 @@
'name': 'Report Creator',
'version': '1.0',
'category': 'Generic Modules/Base',
'description': """This modules allows you to create any statistic
report on several object. It's a SQL query builder and browser
'description': """This module allows you to create any statistic
report on several objects. It's a SQL query builder and browser
for and users.
After installing the module, it adds a menu to define custom report in

View File

@ -27,6 +27,8 @@ import pooler
from osv import osv
from tools.translate import _
class report_creator_open(wizard.interface):
def _open_report(self, cr, uid, data, context):
pool = pooler.get_pool(cr.dbname)

View File

@ -7,24 +7,24 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-08 12:10+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-05-25 16:41+0000\n"
"Last-Translator: Grzegorz Grzelak (Cirrus.pl) <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-17 04:16+0000\n"
"X-Launchpad-Export-Date: 2010-05-27 03:42+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: board_account
#: view:board.board:0
msgid "Analytic accounts to close"
msgstr ""
msgstr "Konta analityczne do zamknięcia"
#. module: board_account
#: view:board.board:0
msgid "Draft invoices"
msgstr ""
msgstr "Projekty faktur"
#. module: board_account
#: constraint:ir.ui.view:0
@ -35,61 +35,61 @@ msgstr "XML niewłaściwy dla tej architektury wyświetlania!"
#: model:ir.actions.act_window,name:board_account.open_board_account
#: model:ir.ui.menu,name:board_account.menu_board_account
msgid "Accounting Dashboard"
msgstr ""
msgstr "Konsola księgowości"
#. module: board_account
#: model:ir.actions.act_window,name:board_account.action_aged_receivable
msgid "Receivable Accounts"
msgstr ""
msgstr "Konta wierzytelności"
#. module: board_account
#: view:board.board:0
#: model:ir.actions.act_window,name:board_account.act_my_account
msgid "Accounts to invoice"
msgstr ""
msgstr "Konta do faktur"
#. module: board_account
#: view:board.board:0
#: model:ir.actions.act_window,name:board_account.action_account_analytic_line_to_invoice
msgid "Costs to invoice"
msgstr ""
msgstr "Koszty do faktur"
#. module: board_account
#: view:board.board:0
msgid "Aged receivables"
msgstr ""
msgstr "Przeterminowane wierzytelności"
#. module: board_account
#: model:ir.module.module,shortdesc:board_account.module_meta_information
msgid "Board for accountant"
msgstr ""
msgstr "Konsola dla księgowści"
#. module: board_account
#: model:ir.actions.act_window,name:board_account.action_aged_income
msgid "Income Accounts"
msgstr ""
msgstr "Konta przychodowe"
#. module: board_account
#: view:board.board:0
msgid "My indicators"
msgstr ""
msgstr "Moje wskaźniki"
#. module: board_account
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Nieprawidłowa nazwa modelu w definicji akcji."
#. module: board_account
#: model:ir.ui.menu,name:board_account.next_id_68
msgid "Accounting"
msgstr ""
msgstr "Księgowość"
#. module: board_account
#: view:board.board:0
msgid "Account Board"
msgstr ""
msgstr "Konsola kont"
#. module: board_account
#: view:board.board:0
msgid "Aged income"
msgstr ""
msgstr "Przeterminowany dochód"

View File

@ -25,7 +25,7 @@
'version': '1.0',
'category': 'Board/Manufacturing',
'description': """
This module creates a dashboards for Manufaturing that includes:
This module creates a dashboard for Manufaturing that includes:
* List of next production orders
* List of deliveries (out picking)
* Graph of work center load

View File

@ -25,7 +25,7 @@
'version': '1.0',
'category': 'Board/Projects & Services',
'description': """
This module implements a dashboard for project member that includes:
This module implements a dashboard for project members that includes:
* List of my open tasks
* List of messages
* Members list of project

View File

@ -25,7 +25,7 @@
'version': '1.0',
'category': 'Board/Purchase',
'description': """
This module implements a dashboard for purcgase management that includes:
This module implements a dashboard for purchase management that includes:
* Current Purchase Orders
* Draft Purchase Orders
* Graph for quantity and amount per month

View File

@ -26,7 +26,7 @@
'category': 'Board/Sales & Purchase',
'description': """
This module implements a dashboard for salesman that includes:
* You open quotations
* Your open quotations
* Top 10 sales of the month
* Cases statistics
* Graph of sales by product

View File

@ -33,6 +33,7 @@ import crm_installer
import report
import wizard
import res_partner

View File

@ -32,12 +32,12 @@ assignment, resolution and notification.
Open ERP ensures that all cases are successfully tracked by users, customers and
suppliers. It can automatically send reminders, escalate the request, trigger
specific methods and lots of others actions based on your enterprise own rules.
specific methods and lots of other actions based on your own enterprise rules.
The greatest thing about this system is that users don't need to do anything
special. They can just send email to the request tracker. Open ERP will take
care of thanking them for their message, automatically routing it to the
appropriate staff, and making sure all future correspondence gets to the right
appropriate staff, and make sure all future correspondence gets to the right
place.
The CRM module has a email gateway for the synchronisation interface
@ -96,7 +96,9 @@ between mails and Open ERP.""",
'report/crm_phonecall_report_view.xml',
'process/crm_configuration_process.xml',
'crm_installer_view.xml'
'crm_installer_view.xml',
'res_partner_view.xml'
],
'demo_xml': [
'crm_demo.xml',

View File

@ -2,7 +2,7 @@
<openerp>
<data>
<!--Lead Stage Form view -->
<!--Lead Stage Form view -->
<record id="crm_lead_stage_act" model="ir.actions.act_window">
<field name="name">Lead Stages</field>
@ -16,7 +16,7 @@
groups="base.group_extended"
parent="crm.menu_crm_case_stage" />
<!-- Resource Type Form View -->
<!-- Resource Type Form View -->
<record id="crm_lead_resource_act" model="ir.actions.act_window">
<field name="name">Lead Resource Type</field>
@ -31,7 +31,7 @@
groups="base.group_extended"
parent="crm.menu_crm_case_resource_type" />
<!-- CRM Lead Form View -->
<!-- CRM Lead Form View -->
<record model="ir.ui.view" id="crm_case_form_view_leads">
<field name="name">CRM - Leads Form</field>
@ -190,7 +190,7 @@
</field>
</record>
<!-- CRM Lead Tree View -->
<!-- CRM Lead Tree View -->
<record model="ir.ui.view" id="crm_case_tree_view_leads">
<field name="name">CRM - Leads Tree</field>
@ -239,7 +239,7 @@
</field>
</record>
<!-- CRM Lead Calendar View -->
<!-- CRM Lead Calendar View -->
<record model="ir.ui.view" id="crm_case_calendar_view_leads">
<field name="name">CRM - Leads Calendar</field>
@ -257,7 +257,7 @@
</field>
</record>
<!-- CRM Lead Search View -->
<!-- CRM Lead Search View -->
<record id="view_crm_case_leads_filter" model="ir.ui.view">
<field name="name">CRM - Leads Search</field>
@ -306,7 +306,7 @@
help="Show Sales Team"/>
</field>
<newline/>
<group expand="1" string="Group By..." colspan="14">
<group expand="1" string="Group By...">
<filter string="Stage" icon="terp-crm" domain="[]" context="{'group_by':'stage_id'}"/>
<filter string="State" icon="terp-crm" domain="[]" context="{'group_by':'state'}"/>
<filter string="Source" icon="terp-crm" domain="[]" context="{'group_by':'categ_id'}"/>
@ -322,6 +322,5 @@
</field>
</record>
</data>
</openerp>

View File

@ -175,16 +175,4 @@ class res_users(osv.osv):
res_users()
class res_partner(osv.osv):
""" Inherits partner and adds meetings information in the partner form """
_inherit = 'res.partner'
_columns = {
'meeting_ids': fields.one2many('crm.meeting', 'partner_id',\
'Meetings'),
}
res_partner()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -2,7 +2,7 @@
<openerp>
<data>
<!-- CRM Meetings Categories Form View -->
<!-- CRM Meetings Categories Form View -->
<record id="crm_meeting_categ_action" model="ir.actions.act_window">
<field name="name">Meeting Categories</field>
@ -16,7 +16,7 @@
<menuitem action="crm_meeting_categ_action"
id="menu_crm_case_meeting-act" parent="crm.menu_crm_case_categ" />
<!-- CRM Meetings Form View -->
<!-- CRM Meetings Form View -->
<record model="ir.ui.view" id="crm_case_form_view_meet">
<field name="name">CRM - Meetings Form</field>
@ -204,7 +204,7 @@
</field>
</record>
<!-- CRM Meeting Tree View -->
<!-- CRM Meeting Tree View -->
<record model="ir.ui.view" id="crm_case_tree_view_meet">
<field name="name">CRM - Meetings Tree</field>
@ -222,7 +222,7 @@
</field>
</record>
<!-- CRM Meeting Calendar -->
<!-- CRM Meeting Calendar -->
<record model="ir.ui.view" id="crm_case_calendar_view_meet">
<field name="name">CRM - Meetings Calendar</field>
@ -238,7 +238,7 @@
</field>
</record>
<!-- CRM Meeting Gantt -->
<!-- CRM Meeting Gantt -->
<record id="crm_case_gantt_view_meet" model="ir.ui.view">
<field name="name">CRM - Meetings Gantt</field>
@ -254,7 +254,7 @@
</field>
</record>
<!-- CRM Meeting Search View -->
<!-- CRM Meeting Search View -->
<record id="view_crm_case_meetings_filter" model="ir.ui.view">
<field name="name">CRM - Meetings Search</field>
@ -277,7 +277,7 @@
<field name="user_id" select="1" widget="selection"/>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="16">
<group expand="1" string="Group By...">
<filter string="Date" icon="terp-project"
domain="[]" context="{'group_by':'date'}" />
<filter string="Privacy" icon="terp-crm"
@ -296,7 +296,7 @@
</field>
</record>
<!-- Calendar Attendee Form View -->
<!-- Calendar Attendee Form View -->
<record id="attendee_form_view_inherit" model="ir.ui.view">
<field name="name">calendar.attendee.form.inherit</field>
@ -310,7 +310,7 @@
</field>
</record>
<!-- Calendar Attendee Tree View -->
<!-- Calendar Attendee Tree View -->
<record id="attendee_tree_view_inherit" model="ir.ui.view">
<field name="name">calendar.attendee.tree.inherit</field>
@ -324,21 +324,5 @@
</field>
</record>
<!-- Partners inherited form -->
<record id="view_meeting_partner_info_form" model="ir.ui.view">
<field name="name">res.partner.meeting.info.inherit</field>
<field name="model">res.partner</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<notebook position="inside">
<page string="CRM Info">
<field name="meeting_ids" colspan="4" nolabel="1" />
</page>
</notebook>
</field>
</record>
</data>
</openerp>

View File

@ -163,16 +163,4 @@ class crm_opportunity(osv.osv):
crm_opportunity()
class res_partner(osv.osv):
""" Inherits partner and adds Opportunities information in the partner form """
_inherit = 'res.partner'
_columns = {
'opportunity_ids': fields.one2many('crm.lead', 'partner_id',\
'Opportunities', domain=[('type', '=', 'opportunity')]),
}
res_partner()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -2,7 +2,7 @@
<openerp>
<data>
<!-- Opportunity Categories Form View -->
<!-- Opportunity Categories Form View -->
<record id="crm_opportunity_categ_action" model="ir.actions.act_window">
<field name="name">Opportunity Categories</field>
@ -17,7 +17,7 @@
id="menu_crm_case_opportunity-act"
parent="crm.menu_crm_case_categ" />
<!-- Opportunity Stages Form View-->
<!-- Opportunity Stages Form View-->
<record id="crm_opportunity_stage_act" model="ir.actions.act_window">
<field name="name">Opportunity Stages</field>
@ -32,7 +32,7 @@
id="menu_crm_opportunity_stage_act"
parent="crm.menu_crm_case_stage" />
<!-- Opportunity Resource Type Form View -->
<!-- Opportunity Resource Type Form View -->
<record id="crm_opportunity_resource_act" model="ir.actions.act_window">
<field name="name">Opportunity Resource Type</field>
@ -47,7 +47,7 @@
id="menu_crm_opportunity_resource_act"
parent="crm.menu_crm_case_resource_type" />
<!-- Opportunities Form View -->
<!-- Opportunities Form View -->
<record model="ir.ui.view" id="crm_case_form_view_oppor">
<field name="name">Opportunities</field>
@ -204,7 +204,7 @@
</field>
</record>
<!-- Opportunities Tree View -->
<!-- Opportunities Tree View -->
<record model="ir.ui.view" id="crm_case_tree_view_oppor">
<field name="name">Opportunities Tree</field>
@ -246,7 +246,7 @@
</field>
</record>
<!-- Opportunities Graph View -->
<!-- Opportunities Graph View -->
<record model="ir.ui.view" id="crm_case_graph_view_opportunity">
<field name="name">CRM - Opportunity Graph</field>
@ -261,7 +261,7 @@
</field>
</record>
<!-- Opportunities Search View -->
<!-- Opportunities Search View -->
<record id="view_crm_case_opportunities_filter" model="ir.ui.view">
<field name="name">CRM - Opportunities Search</field>
@ -293,11 +293,10 @@
<field name="user_id" widget="selection">
<filter icon="terp-partner"
domain="[('user_id','=',uid)]"
help="My Opportunities" default="1"
/>
help="My Opportunities" default="1"/>
<filter icon="terp-partner"
domain="[('user_id','=', uid)]"
help="Unassigned Opportunities" />
help="Unassigned Opportunities"/>
</field>
<field name="section_id"
default="context.get('section_id', False)" select="1"
@ -307,80 +306,26 @@
help="My Sale Team" />
</field>
<newline/>
<group expand="1" string="Group By..." colspan="16">
<group expand="1" string="Group By...">
<filter string="Stage" icon="terp-crm" domain="[]"
context="{'group_by':'stage_id'}" />
context="{'group_by':'stage_id'}"/>
<filter string="Priority" icon="terp-crm" domain="[]"
context="{'group_by':'priority'}" />
context="{'group_by':'priority'}"/>
<filter string="Category" icon="terp-crm"
domain="[]" context="{'group_by':'categ_id'}" />
domain="[]" context="{'group_by':'categ_id'}"/>
<separator orientation="vertical" />
<separator orientation="vertical"/>
<filter string="Salesman" icon="terp-crm"
domain="[('user_id','=',uid)]" context="{'group_by':'user_id'}" />
<separator orientation="vertical" />
domain="[('user_id','=',uid)]" context="{'group_by':'user_id'}"/>
<separator orientation="vertical"/>
<filter string="Creation" icon="terp-project"
domain="[]" context="{'group_by':'create_date'}" />
domain="[]" context="{'group_by':'create_date'}"/>
<filter string="Exp.Closing" icon="terp-project"
domain="[]" context="{'group_by':'date_deadline'}" />
domain="[]" context="{'group_by':'date_deadline'}"/>
</group>
</search>
</field>
</record>
<!-- Partners inherited form -->
<record id="view_opp_partner_info_form" model="ir.ui.view">
<field name="name">res.partner.opportunity.info.inherit</field>
<field name="model">res.partner</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<field name="phonecall_ids" position="after">
<field name="opportunity_ids" colspan="4" nolabel="1" domain="[('type', '=', 'opportunity')]">
<tree string="Opportunities" colors="blue:state=='pending';grey:state in ('cancel', 'done')">
<field name="create_date"/>
<field name="partner_name"/>
<field name="name"/>
<field name="email_from"/>
<field name="phone"/>
<field name="categ_id" invisible="1"/>
<field name="type_id" invisible="1"/>
<field name="referred" invisible="1"/>
<field name="stage_id"/>
<button name="stage_previous" string="Previous"
states="open,pending" type="object" icon="gtk-go-back" />
<button name="stage_next" string="Next"
states="open,pending" type="object"
icon="gtk-go-forward" />
<field name="section_id"
invisible="context.get('invisible_section', True)" />
<field name="user_id" />
<field name="state" />
<button name="case_open" string="Open"
states="draft,pending" type="object"
icon="gtk-go-forward" />
<button name="case_close" string="Close"
states="open,draft,pending" type="object"
icon="gtk-close" />
<button string="Convert to Opportunity"
name="convert_opportunity"
states="draft,open,pending" icon="gtk-index"
type="object" />
<button name="case_escalate" string="Escalate"
states="open,draft,pending" type="object"
icon="gtk-go-up" />
<button name="case_cancel" string="Cancel"
states="draft,open,pending" type="object"
icon="gtk-cancel" />
</tree>
</field>
</field>
</field>
</record>
</data>
</openerp>

View File

@ -178,15 +178,5 @@ class crm_phonecall(osv.osv, crm_case):
crm_phonecall()
class res_partner(osv.osv):
""" Inherits partner and adds Phonecalls information in the partner form """
_inherit = 'res.partner'
_columns = {
'phonecall_ids': fields.one2many('crm.phonecall', 'partner_id', 'Phonecalls'),
}
res_partner()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -75,23 +75,24 @@
<field name="name" string="Summary"/>
<field name="date" string="Planned Date"/>
<field name="user_id"/>
<button string="Convert to Opportunity"
name="%(phonecall2opportunity_act)d"
icon="gtk-index" type="action"
attrs="{'invisible':[('opportunity_id','!=',False)]}" />
<field name="partner_phone"/>
<field name="duration"/>
<field name="section_id" colspan="1" widget="selection" />
<button string="Schedule a Meeting"
name="action_make_meeting"
icon="gtk-redo"
type="object" />
<field name="partner_phone"/>
<field name="duration"/>
<field name="section_id" colspan="1" widget="selection" />
<button string="Convert to Opportunity"
name="%(phonecall2opportunity_act)d"
icon="gtk-index" type="action"
attrs="{'invisible':[('opportunity_id','!=',False)]}" />
<label colspan="6" string=""/>
<button string="Schedule Other Call"
icon="gtk-redo"
name="%(phonecall_to_phonecall_act)d"
type="action" />
</group>
<group col="3" colspan="2">
<separator colspan="3" string="Contacts" />
@ -136,7 +137,7 @@
</form>
</field>
</record>
<!--Inbound Phonecalls Form View -->
<record model="ir.ui.view" id="crm_case_inbound_phone_form_view">
@ -149,17 +150,18 @@
<field name="name" string="Summary"/>
<field name="date" string="Planned Date"/>
<field name="user_id"/>
<button string="Convert to Opportunity"
name="%(phonecall2opportunity_act)d"
icon="gtk-index" type="action"
attrs="{'invisible':[('opportunity_id','!=',False)]}" />
<field name="partner_phone"/>
<field name="duration"/>
<field name="section_id" colspan="1" widget="selection" />
<button string="Schedule a Meeting"
name="action_make_meeting"
icon="gtk-redo"
type="object" />
<field name="partner_phone"/>
<field name="duration"/>
<field name="section_id" colspan="1" widget="selection" />
<button string="Convert to Opportunity"
name="%(phonecall2opportunity_act)d"
icon="gtk-index" type="action"
attrs="{'invisible':[('opportunity_id','!=',False)]}" />
<label colspan="6" string=""/>
<button string="Schedule Other Call"
icon="gtk-redo"
@ -195,9 +197,9 @@
</form>
</field>
</record>
<!--Inbound Phonecalls Tree View -->
<record model="ir.ui.view" id="crm_case_inbound_phone_tree_view">
<field name="name">CRM - Inbound Phone Calls Tree</field>
<field name="model">crm.phonecall</field>
@ -272,7 +274,7 @@
help="My Sale Team" />
</field>
<newline/>
<group expand="1" string="Group By..." colspan="4">
<group expand="0" string="Group By..." colspan="4">
<filter string="Partner" icon="terp-crm" domain="[]"
context="{'group_by':'partner_id'}" />
<filter string="Responsible" icon="terp-crm"
@ -286,20 +288,6 @@
</search>
</field>
</record>
<!-- Partners inherited form -->
<record id="view_phonecall_partner_info_form" model="ir.ui.view">
<field name="name">res.partner.phonecall.info.inherit</field>
<field name="model">res.partner</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<field name="meeting_ids" position="after">
<field name="phonecall_ids" colspan="4" nolabel="1" />
</field>
</field>
</record>
</data>
</openerp>

View File

@ -4,9 +4,6 @@
<menuitem id="base.menu_crm_configuration" name="Cases"
parent="base.menu_base_config" sequence="0" groups="base.group_extended"/>
<menuitem id="base.menu_crm_sales" name="Sales"
parent="base.menu_base_config" sequence="0" groups="base.group_extended"/>
<menuitem id="base.next_id_64" name="Reporting"
parent="base.menu_base_partner" sequence="8" />
@ -48,7 +45,7 @@
</field>
</record>
<!-- Case Sections Tree View -->
<!-- Case Sections Tree View -->
<record id="crm_case_section_view_tree" model="ir.ui.view">
<field name="name">crm.case.section.tree</field>
@ -64,7 +61,7 @@
</field>
</record>
<!-- Case Sections Action -->
<!-- Case Sections Action -->
<record id="crm_case_section_act" model="ir.actions.act_window">
<field name="name">Sales Team</field>
@ -73,7 +70,7 @@
<field name="view_id" ref="crm_case_section_view_tree"/>
</record>
<!-- CRM Stage Tree View -->
<!-- CRM Stage Tree View -->
<record model="ir.ui.view" id="crm_case_stage_tree">
<field name="name">crm.case.stage.tree</field>
@ -90,7 +87,7 @@
</field>
</record>
<!-- CRM Stage Form View -->
<!-- CRM Stage Form View -->
<record model="ir.ui.view" id="crm_case_stage_form">
<field name="name">crm.case.stage.form</field>
@ -111,7 +108,7 @@
</field>
</record>
<!-- CRM Stage Action -->
<!-- CRM Stage Action -->
<record id="crm_case_stage_act" model="ir.actions.act_window">
<field name="name">Stages</field>
@ -122,7 +119,7 @@
<menuitem id="menu_crm_case_stage" name="Stages" parent="base.menu_crm_configuration" groups="base.group_extended"/>
<!-- Case Categories Form View -->
<!-- Case Categories Form View -->
<record id="crm_case_categ-view" model="ir.ui.view">
<field name="name">crm.case.categ.form</field>
@ -137,7 +134,7 @@
</field>
</record>
<!-- Case Categories Tree View -->
<!-- Case Categories Tree View -->
<record id="crm_case_categ_tree-view" model="ir.ui.view">
<field name="name">crm.case.categ.tree</field>
@ -151,7 +148,7 @@
</field>
</record>
<!-- Case Categories Action -->
<!-- Case Categories Action -->
<record id="crm_case_categ-act" model="ir.actions.act_window">
<field name="name">Categories</field>
@ -166,7 +163,7 @@
parent="base.menu_crm_configuration" />
<!-- Resource Type of case Tree View -->
<!-- Resource Type of case Tree View -->
<record model="ir.ui.view" id="crm_case_resource_type_tree">
<field name="name">crm.case.resource.type.tree</field>
@ -181,7 +178,7 @@
</field>
</record>
<!-- Resource Type of case Form View -->
<!-- Resource Type of case Form View -->
<record model="ir.ui.view" id="crm_case_resource_type_form">
<field name="name">crm.case.resource.type.form</field>
@ -196,7 +193,7 @@
</field>
</record>
<!-- Resource Type of case Action -->
<!-- Resource Type of case Action -->
<record id="crm_case_resource_type_act" model="ir.actions.act_window">
<field name="name">Resource Type</field>
@ -215,7 +212,7 @@
<field name="view_id" ref="crm_case_section_view_tree"/>
</record>
<!-- Cases Tree View -->
<!-- Cases Tree View -->
<record id="crm_case_log_tree-view" model="ir.ui.view">
<field name="name">crm.case.log.tree</field>
@ -235,8 +232,7 @@
</field>
</record>
<!-- Segmentation line Tree View -->
<!-- Segmentation line Tree View -->
<record id="crm_segmentation_line_tree-view" model="ir.ui.view">
<field name="name">crm.segmentation.line.tree</field>
@ -253,7 +249,7 @@
</field>
</record>
<!-- Segmentation line Form View -->
<!-- Segmentation line Form View -->
<record id="crm_segmentation_line-view" model="ir.ui.view">
<field name="name">crm.segmentation.line.form</field>
@ -273,7 +269,7 @@
</field>
</record>
<!-- CRM Segmentation Form View -->
<!-- CRM Segmentation Form View -->
<record id="crm_segmentation-view" model="ir.ui.view">
<field name="name">crm.segmentation.form</field>
@ -318,7 +314,7 @@
</field>
</record>
<!-- CRM Segmentation Tree View -->
<!-- CRM Segmentation Tree View -->
<record id="crm_segmentation_tree-view" model="ir.ui.view">
<field name="name">crm.segmentation.tree</field>
@ -378,7 +374,7 @@
</field>
</record>
<!-- Inherit View From Partner -->
<!-- Inherit View From Partner -->
<record id="view_partners_form_crm1" model="ir.ui.view">
<field name="name">view.res.partner.form.crm.inherited1</field>

View File

@ -119,7 +119,7 @@
</field>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="4" col="8">
<group expand="1" string="Group By...">
<filter string="User" name="User" icon="terp-sale"
domain="[]" context="{'group_by':'user_id'}" />
@ -153,7 +153,7 @@
</group>
<newline/>
<group expand="0" string="Extended options..." colspan="10" col="12" groups="base.group_extended">
<group expand="0" string="Extended options..." groups="base.group_extended">
<filter icon="terp-sale"
string="Done"

View File

@ -119,7 +119,7 @@
</field>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="4" col="8">
<group expand="1" string="Group By...">
<filter string="User" name="User" icon="terp-sale"
domain="[]" context="{'group_by':'user_id'}" />
@ -150,7 +150,7 @@
</group>
<newline/>
<group expand="0" string="Extended options..." colspan="10" col="12" groups="base.group_extended">
<group expand="0" string="Extended options..." groups="base.group_extended">
<filter icon="terp-sale"
string="Done"
domain="[('state','=','done')]"/>

39
addons/crm/res_partner.py Normal file
View File

@ -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 fields,osv
class res_partner(osv.osv):
""" Inherits partner and adds CRM information in the partner form """
_inherit = 'res.partner'
_columns = {
'opportunity_ids': fields.one2many('crm.lead', 'partner_id',\
'Opportunities', domain=[('type', '=', 'opportunity')]),
'meeting_ids': fields.one2many('crm.meeting', 'partner_id',\
'Meetings'),
'phonecall_ids': fields.one2many('crm.phonecall', 'partner_id', 'Phonecalls'),
}
res_partner()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,63 @@
<?xml version="1.0"?>
<openerp>
<data>
<!-- Partners inherited form -->
<record id="view_crm_partner_info_form" model="ir.ui.view">
<field name="name">res.partner.crm.info.inherit</field>
<field name="model">res.partner</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<notebook position="inside">
<page string="CRM">
<field name="meeting_ids" colspan="4" nolabel="1" />
<field name="phonecall_ids" colspan="4" nolabel="1" />
<field name="opportunity_ids" colspan="4" nolabel="1" domain="[('type', '=', 'opportunity')]">
<tree string="Opportunities" colors="blue:state=='pending';grey:state in ('cancel', 'done')">
<field name="create_date"/>
<field name="partner_name"/>
<field name="name"/>
<field name="email_from"/>
<field name="phone"/>
<field name="categ_id" invisible="1"/>
<field name="type_id" invisible="1"/>
<field name="referred" invisible="1"/>
<field name="stage_id"/>
<button name="stage_previous" string="Previous"
states="open,pending" type="object" icon="gtk-go-back" />
<button name="stage_next" string="Next"
states="open,pending" type="object"
icon="gtk-go-forward" />
<field name="section_id"
invisible="context.get('invisible_section', True)" />
<field name="user_id" />
<field name="state" />
<button name="case_open" string="Open"
states="draft,pending" type="object"
icon="gtk-go-forward" />
<button name="case_close" string="Close"
states="open,draft,pending" type="object"
icon="gtk-close" />
<button string="Convert to Opportunity"
name="convert_opportunity"
states="draft,open,pending" icon="gtk-index"
type="object" />
<button name="case_escalate" string="Escalate"
states="open,draft,pending" type="object"
icon="gtk-go-up" />
<button name="case_cancel" string="Cancel"
states="draft,open,pending" type="object"
icon="gtk-cancel" />
</tree>
</field>
</page>
</notebook>
</field>
</record>
</data>
</openerp>

View File

@ -147,7 +147,6 @@ class crm_lead2partner(osv.osv_memory):
'user_id': lead.user_id.id,
'comment': lead.description,
})
function_id = self.pool.get('res.partner.function').search(cr,uid,[('name','=',lead.function_name)])
contact_id = contact_obj.create(cr, uid, {
'partner_id': partner_id,
'name': lead.name,
@ -156,7 +155,7 @@ class crm_lead2partner(osv.osv_memory):
'email': lead.email_from,
'fax': lead.fax,
'title': lead.title,
'function': function_id and function_id[0] or False,
'function': lead.function_name,
'street': lead.street,
'street2': lead.street2,
'zip': lead.zip,

View File

@ -271,7 +271,7 @@
<field name="section_id" select="1"
widget="selection"/>
<newline/>
<group expand="1" string="Group By..." colspan="10" col="20">
<group expand="1" string="Group By...">
<filter string="Deadline" icon="terp-crm"
domain="[]"
context="{'group_by':'date_deadline'}" />

View File

@ -123,7 +123,7 @@
</field>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="4" col="8">
<group expand="1" string="Group By...">
<filter string="User" name="User" icon="terp-sale"
domain="[]" context="{'group_by':'user_id'}" />
@ -162,7 +162,7 @@
domain="[]" context="{'group_by':'name'}" />
</group>
<newline/>
<group expand="0" string="Extended options..." colspan="10" col="12" groups="base.group_extended">
<group expand="0" string="Extended options..." groups="base.group_extended">
<filter icon="terp-sale"
string="Done"
domain="[('state','=','done')]"/>

View File

@ -256,7 +256,7 @@
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Search Funds">
<group col='6' colspan='4'>
<group>
<filter icon="gtk-new" string="Current"
domain="[('state','in',('draft', 'open'))]" name="current"
help="Current Funds" />
@ -284,7 +284,7 @@
</field>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="10" col="20">
<group expand="1" string="Group By...">
<filter string="Partner" icon="terp-partner"
domain="[]"
context="{'group_by':'partner_id'}" />

View File

@ -121,7 +121,7 @@
<filter icon="terp-crm" string="My Case" help="My Case" domain="[('user_id','=',uid)]" />
</field>
</group>
<group expand="1" string="Group By..." colspan="4" col="8">
<group expand="1" string="Group By...">
<filter string="User" name="User" icon="terp-sale"
domain="[]" context="{'group_by':'user_id'}" />
@ -152,7 +152,7 @@
</group>
<newline/>
<group expand="0" string="Extended options..." colspan="10" col="12">
<group expand="0" string="Extended options..." groups="base.group_extended">
<filter icon="terp-sale"
string="Done"
domain="[('state','=','done')]"/>
@ -203,4 +203,4 @@
id="menu_report_crm_fundraising_tree" parent="base.next_id_64" />
</data>
</openerp>
</openerp>

View File

@ -243,7 +243,7 @@
help="My section" />
</field>
<newline/>
<group expand="1" string="Group By..." colspan="12" col="20">
<group expand="1" string="Group By...">
<filter string="Customer" icon="terp-crm"
domain="[]" context="{'group_by':'partner_id'}" />
<filter string="State" icon="terp-crm" domain="[]"

View File

@ -114,7 +114,7 @@
<field name="user_id" widget="selection"/>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="4" col="8">
<group expand="1" string="Group By...">
<filter string="User" icon="terp-sale"
domain="[]" context="{'group_by':'user_id'}"
default="1" />
@ -144,7 +144,7 @@
</group>
<newline/>
<group expand="0" string="Extended options..." colspan="4" col="5" groups="base.group_extended">
<group expand="0" string="Extended options..." groups="base.group_extended">
<filter icon="terp-sale"
string="Lowest"
domain="[('priority','=','5')]"/>

View File

@ -24,7 +24,7 @@
'name': 'Carriers and deliveries',
'version': '1.0',
'category': 'Generic Modules/Sales & Purchases',
'description': """Allows you to add delivery methods in sales orders and picking.
'description': """Allows you to add delivery methods in sale orders and picking.
You can define your own carrier and delivery grids for prices.
When creating invoices from picking, Open ERP is able to add and compute the shipping line.

View File

@ -31,7 +31,7 @@
ATTENTION:
- When you install this module in a running company that have already PDF files stored into the database,
you will lose them all.
- After installing this module PDF's are not longer stored into the database,
- After installing this module PDF's are no longer stored into the database,
but in the servers rootpad like /server/bin/filestore.
""",
'author': 'Tiny',

View File

@ -118,7 +118,7 @@
<record model="ir.ui.view" id="view_document_directory_tree">
<field name="name">document.directory</field>
<field name="model">document.directory</field>
<field name="type">tree</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Directories" toolbar="1">
<field name="name"/>

View File

@ -26,7 +26,7 @@
'category': 'Generic Modules/Others',
'description': """This is a support FTP Interface with document management system.
With this module you would not only be able to access documents through open erp
also you would be able to connect with them through the file system using the FTP protocol.
but you would also be able to connect with them through the file system using the FTP protocol.
""",
'author': 'Tiny',
'website': 'http://www.openerp.com',

View File

@ -26,7 +26,7 @@
"version" : "1.0",
"depends" : ["base"],
"author" : "Tiny",
"description": """Fetchail:
"description": """Fetchmail:
* Fetch email from Pop / IMAP server
* Support SSL
* Integrated with all Modules

View File

@ -101,7 +101,7 @@
<field name="job_id" widget="selection"/>
<field name="parent_id" widget="selection" />
<newline />
<group expand="1" string="Group By..." colspan="11" col="11" groups="base.group_extended">
<group expand="1" string="Group By...">
<filter string="Manager" icon="terp-sale" domain="[]" context="{'group_by':'parent_id'}"/>
<filter string="Coach" icon="terp-sale" domain="[]" context="{'group_by':'coach_id'}" groups="base.group_extended"/>
<separator orientation="vertical" />

View File

@ -55,7 +55,7 @@
<field name="name" select="1" />
<field name="action" select="1" />
<newline/>
<group expand="1" string="Group By..." colspan="11" col="11" groups="base.group_extended">
<group expand="1" string="Group By...">
<filter name="employee" string="Employee" icon="terp-sale" domain="[]" context="{'group_by':'employee_id'}"/>
<filter string="Day" icon="terp-sale" domain="[]" context="{'group_by':'day'}"/>
</group>

View File

@ -147,7 +147,7 @@
<field name="date_end"/>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="4" col="20" groups="base.group_extended">
<group expand="1" string="Group By...">
<filter string="Department" icon="terp-project" domain="[]" context="{'group_by':'department_id'}"/>
</group>
</search>

View File

@ -28,7 +28,7 @@
"depends" : ["hr",'hr_recruitment','survey'],
"description": """
Ability to create employees evaluation.
An evaluation can be created by employee for subordinates
An evaluation can be created by employee for subordinates,
juniors as well as his manager.The evaluation is done under a plan
in which various surveys can be created and it can be defined which
level of employee hierarchy fills what and final review and evaluation

View File

@ -10,10 +10,10 @@
<search string="Search Evaluation Plan">
<group col='15' colspan='4'>
<field name="name"/>
<field name="company_id" widget="selection"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="4" col="20" groups="base.group_extended">
<group expand="1" string="Group By..." groups="base.group_multi_company">
<filter string="Company" icon="terp-project" domain="[]" context="{'group_by':'company_id'}"/>
</group>
</search>
@ -261,7 +261,7 @@
<field name="plan_id" widget="selection" select="1"/>
</group>
<newline/>
<group expand='1' string='Group by...' groups="base.group_extended">
<group expand='1' string='Group by...'>
<filter string='Employee' icon="terp-stock" domain="[]" context="{'group_by' : 'employee_id'}" />
<filter string='Plan' icon="terp-stock" domain="[]" context="{'group_by' : 'plan_id'}" />
<filter string='State' icon="terp-stock" domain="[]" context="{'group_by' : 'state'}" />

View File

@ -71,7 +71,7 @@
<field name="employee_id" widget="selection"/>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="10" col="12">
<group expand="1" string="Group By...">
<filter string="Employee" name="employee" icon="terp-hr" context="{'group_by':'employee_id'}"/>
<filter string="Rating" icon="terp-hr" context="{'group_by':'rating'}"/>
<separator orientation="vertical"/>
@ -83,7 +83,7 @@
<filter string="Year" icon="terp-hr" context="{'group_by':'year'}"/>
</group>
<newline/>
<group expand="0" string="Extended options..." colspan="10" col="12" groups="base.group_extended">
<group expand="0" string="Extended options..." groups="base.group_extended">
<filter icon="terp-hr"
string="Done"
domain="[('state','=','done')]"/>

View File

@ -34,7 +34,7 @@
* Validation by the accountant and invoice creation
* Payment of the invoice to the employee
This module also use the analytic accounting and is compatible with
This module also uses the analytic accounting and is compatible with
the invoice on timesheet module so that you will be able to automatically
re-invoice your customer's expenses if your work by project.
""",

View File

@ -153,7 +153,7 @@
<field name="department_id" widget="selection" groups="base.group_extended"/>
</group>
<newline />
<group expand="1" string="Group By..." colspan="11" col="11" groups="base.group_extended">
<group expand="1" string="Group By...">
<filter string="Department" icon="terp-sale" domain="[]" context="{'group_by':'department_id'}"/>
<filter string="User" icon="terp-sale" domain="[]" context="{'group_by':'user_id'}"/>
<separator orientation="vertical"/>

View File

@ -105,7 +105,7 @@
<filter string="Year" icon="terp-hr" context="{'group_by':'year'}"/>
</group>
<newline/>
<group expand="0" string="Extended filters..." colspan="10" col="12" groups="base.group_extended">
<group expand="0" string="Extended filters..." groups="base.group_extended">
<filter string="Invoiced"
icon="terp-hr"
domain="[('state','=','invoiced')]"

View File

@ -22,7 +22,7 @@
<field name="holiday_status_id" widget="selection"/>
</group>
<newline />
<group expand="1" string="Group By..." colspan="11" col="11" groups="base.group_extended">
<group expand="1" string="Group By...">
<filter string="Department" icon="terp-sale" domain="[]" context="{'group_by':'department_id'}"/>
<filter string="Manager" icon="terp-sale" domain="[]" context="{'group_by':'manager_id'}"/>
<filter string="User" icon="terp-sale" domain="[]" context="{'group_by':'user_id'}"/>

View File

@ -60,8 +60,17 @@
domain="[('date','&lt;=', time.strftime('%%Y-%%m-%%d')), ('date','&gt;',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d'))]"
help="Leaves during last 7 days"/>
<separator orientation="vertical"/>
<field name="employee_id"/>
<field name="user_id" widget="selection"/>
<field name="employee_id"/>
<field name="user_id" widget="selection">
<filter icon="terp-hr"
string="My Leaves"
domain="[('user_id','=',uid)]"/>
</field>
</group>
<newline/>
<group expand="0" string="Extended options..." colspan="10" col="12">
<field name="holiday_status_id" widget="selection"/>
<field name="department_id" widget="selection"/>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="10" col="12">
@ -88,7 +97,6 @@
<field name="view_mode">tree,graph</field>
<field name="context">{'search_default_month':1,'search_default_User':1,'group_by_no_leaf':1,'group_by':[]}</field>
<field name="view_id" ref="view_hr_available_holidays_report_search"/>
</record>
<record model="ir.actions.act_window.view" id="action_hr_available_holidays_report_tree">

View File

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<data>
<record id="view_hr_holidays_report_tree" model="ir.ui.view">
<field name="name">hr.holidays.report.tree</field>
<field name="model">hr.holidays.report</field>
@ -77,7 +78,7 @@
</field>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="10" col="12">
<group expand="1" string="Group By...">
<filter string="Employee" name="Employee" icon="terp-hr" context="{'group_by':'employee_id'}"/>
<filter string="User" name="User" icon="terp-hr" context="{'group_by':'user_id'}"/>
<separator orientation="vertical"/>
@ -89,7 +90,8 @@
<filter string="Month" icon="terp-hr" context="{'group_by':'date'}"/>
<filter string="Year" icon="terp-hr" context="{'group_by':'year'}"/>
</group>
<group expand="0" string="Extended options..." colspan="10" col="12">
<newline/>
<group expand="0" string="Extended options..." groups="base.group_extended">
<filter icon="terp-hr"
string="Refused"
name="done"
@ -148,5 +150,6 @@
</graph>
</field>
</record>
</data>
</data>
</openerp>

View File

@ -25,7 +25,7 @@
'category': 'Generic Modules/Human Resources',
'description': """
Manages job positions and the recruitement process. It's integrated with the
survey module to allows you to define interview for different jobs.
survey module to allow you to define interview for different jobs.
This module is integrated with the mail gateway to automatically tracks email
sent to jobs@YOURCOMPANY.com. It's also integrated with the document management

View File

@ -232,7 +232,7 @@
help="My Department"/>
</field>
<newline/>
<group expand="1" string="Group By..." colspan="11" col="20">
<group expand="1" string="Group By...">
<filter string="Department" icon="terp-project" domain="[]" context="{'group_by':'department_id'}"/>
<filter string="Responsible" icon="terp-project" domain="[]" context="{'group_by':'user_id'}"/>
<separator orientation="vertical"/>

View File

@ -93,7 +93,7 @@
</field>
</group>
<newline/>
<group expand="1" string="Group By ..." colspan="10" col="12">
<group expand="1" string="Group By ...">
<filter string="User" name='User' icon="terp-hr" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Company" icon="terp-hr" domain="[]" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
<filter string="Partner" icon="terp-hr" domain="[]" context="{'group_by':'partner_id'}" />
@ -111,7 +111,7 @@
</group>
<newline/>
<group expand="0" string="Extended options..." colspan="10" col="12" groups="base.group_extended">
<group expand="0" string="Extended options..." groups="base.group_extended">
<filter icon="terp-hr"
string="Hired"
name="done"

View File

@ -25,9 +25,9 @@
'version': '1.0',
'category': 'Generic Modules/Human Resources',
'description': """
This module implement a timesheet system. Each employee can encode and
This module implements a timesheet system. Each employee can encode and
track their time spent on the different projects. A project is an
analytic account and the time spent on a project generate costs on
analytic account and the time spent on a project generates costs on
the analytic account.
Lots of reporting on time and employee tracking are provided.

View File

@ -69,7 +69,7 @@
<field name="account_id"/>
<field name="product_id"/>
</group>
<group expand="1" string="Group By..." colspan="10" col="12">
<group expand="1" string="Group By...">
<filter string="User" name="User" icon="terp-hr" context="{'group_by':'user_id'}"/>
<separator orientation="vertical"/>
<filter string="Account" icon="terp-hr" context="{'group_by':'account_id'}"/>
@ -81,7 +81,7 @@
<filter string="Year" icon="terp-hr" context="{'group_by':'name'}"/>
</group>
<newline/>
<group expand="0" string="Extended filters..." colspan="10" col="12" groups="base.group_extended">
<group expand="0" string="Extended filters..." groups="base.group_extended">
<field name="date"/>
<separator orientation="vertical"/>
<field name="invoice_id" widget="selection"/>
@ -450,7 +450,7 @@
<field name="general_account_id" widget="selection"/>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="4" col="20">
<group expand="1" string="Group By...">
<filter string="User" icon="terp-project" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Product" icon="terp-project" domain="[]" context="{'group_by':'product_id'}"/>
<filter string="Analytic Account" icon="terp-project" domain="[]" context="{'group_by':'analytic_account_id'}"/>

View File

@ -25,21 +25,21 @@
'version': '1.0',
'category': 'Generic Modules/Human Resources',
'description': """
This module help you easily encode and validate timesheet and attendances
This module helps you to easily encode and validate timesheet and attendances
within the same view. The upper part of the view is for attendances and
track (sign in/sign out) events. The lower part is for timesheet.
Others tabs contains statistics views to help you analyse your
Other tabs contains statistics views to help you analyse your
time or the time of your team:
* Time spent by day (with attendances)
* Time spent by project
This module also implement a complete timesheet validation process:
This module also implements a complete timesheet validation process:
* Draft sheet
* Confirmation at the end of the period by the employee
* Validation by the project manager
The validation can be configured in te company:
The validation can be configured in the company:
* Period size (day, week, month, year)
* Maximal difference between timesheet and attendances
""",

View File

@ -205,7 +205,7 @@
</field>
</group>
<newline/>
<group expand="1" string="Group By..." colspan="4" col="20" groups="base.group_extended">
<group expand="1" string="Group By...">
<filter string="Users" icon="terp-project" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Department" icon="terp-project" domain="[]" context="{'group_by':'department_id'}"/>
</group>

View File

@ -74,8 +74,9 @@
domain="[('user_id','=',False)]"/>
</field>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
</group>
<group expand="1" string="Group By..." colspan="10" col="12">
</group>
<newline/>
<group expand="1" string="Group By...">
<filter string="User" name="User" icon="terp-hr" context="{'group_by':'user_id'}"/>
<filter string="Product" icon="terp-hr" context="{'group_by':'product_id'}"/>
<separator orientation="vertical"/>
@ -92,7 +93,7 @@
<filter string="Year" icon="terp-hr" context="{'group_by':'year'}"/>
</group>
<newline/>
<group expand="0" string="Extended options..." colspan="10" col="12" groups="base.group_extended">
<group expand="0" string="Extended options..." groups="base.group_extended">
<filter icon="terp-hr"
string="New"
domain="[('state','=','new')]"/>

View File

@ -21,6 +21,5 @@
import idea
import wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -27,8 +27,8 @@
'description': """
This module allows your user to easily and efficiently participate in the innovation of the enterprise.
It allows everybody to express ideas about different subjects.
Then, others users can comment these ideas and vote for particular ideas.
Each idea as a score based on the different votes.
Then, other users can comment on these ideas and vote for particular ideas.
Each idea has a score based on the different votes.
The managers can obtain an easy view on best ideas from all the users.
Once installed, check the menu 'Ideas' in the 'Tools' main menu.""",
'author': 'Tiny',

View File

@ -26,7 +26,7 @@
After Installing this module,The Configuration wizard for accounting is launched.
* We have the account templates which can be helpful to generate Charts of Accounts.
* On that particular wizard,You will be asked to pass the name of the company,the chart template to follow,the no. of digits to generate the code for your account and Bank account,currency to create Journals.
* On that particular wizard,You will be asked to pass the name of the company,the chart template to follow,the no. of digits to generate the code for your account and Bank account,currency to create Journals.
Thus,the pure copy of Chart Template is generated.
* This is the same wizard that runs from Financial Management/Configuration/Financial Accounting/Financial Accounts/Generate Chart of Accounts from a Chart Template.

View File

@ -34,7 +34,7 @@
"name" : "Switzerland localisation corrected by Camptocamp",
"description" : """
Swiss localisation :
- DTA generation for a lot of paiment types
- DTA generation for a lot of payment types
- BVR management (number generation, report, etc..)
- Import account move from the bank file (like v11 etc..)
- Simplify the way you handle the bank statement for reconciliation

View File

@ -23,7 +23,7 @@
"name": "Lunch Module",
"author": "Tiny",
"Description": """
The lunch module is for keeping record of the order placing and payment of the orders.
The lunch module is for keeping record of the order placed and payment of the orders.
The products are defined under categories and the payment records are maintained user wise
Every user has a cashbox which keeps track of the amount paid for a particular order.

View File

@ -37,10 +37,12 @@
'update_xml': [
'marketing_campaign_view.xml',
'marketing_campaign_data.xml',
'marketing_campaign_workflow.xml',
'marketing_campaign_workflow.xml',
'report/campaign_analysis_view.xml',
],
'demo_xml': [],
'demo_xml': [
'marketing_campaign_demo.xml',
],
'installable': True,
'active': False,
}

View File

@ -25,6 +25,7 @@ from dateutil.relativedelta import relativedelta
from osv import fields, osv
import netsvc
import tools
_intervalTypes = {
'hours': lambda interval: relativedelta(hours=interval),
@ -39,12 +40,14 @@ class marketing_campaign(osv.osv): #{{{
_columns = {
'name': fields.char('Name', size=64, required=True),
'object_id': fields.many2one('ir.model', 'Objects', required=True),
'object_id': fields.many2one('ir.model', 'Objects', required=True,
help="Choose the Object on which you want \
this campaign to be run"),
'mode':fields.selection([('test', 'Test'),
('test_realtime', 'Realtime Time'),
('test_realtime', 'Realtime'),
('manual', 'Manual'),
('active', 'Active')],
'Mode'),
'Mode', required=True),
'state': fields.selection([('draft', 'Draft'),
('running', 'Running'),
('done', 'Done'),
@ -52,14 +55,16 @@ class marketing_campaign(osv.osv): #{{{
'State',),
'activity_ids': fields.one2many('marketing.campaign.activity',
'campaign_id', 'Activities'),
'fixed_cost': fields.float('Fixed Cost'),
'fixed_cost': fields.float('Fixed Cost', help="The fixed cost is cost\
you required for the campaign"),
}
_defaults = {
'state': lambda *a: 'draft',
'mode': lambda *a: 'test',
}
def state_running_set(self, cr, uid, ids, *args):
campaign = self.browse(cr, uid, ids[0])
if not campaign.activity_ids :
@ -72,8 +77,6 @@ class marketing_campaign(osv.osv): #{{{
segment_ids = self.pool.get('marketing.campaign.segment').search(cr, uid,
[('campaign_id', '=', campaign.id),
('state', '=', 'draft')])
if not segment_ids :
raise osv.except_osv("Error", "There is no associate semgnet for the campaign")
self.write(cr, uid, ids, {'state': 'running'})
return True
@ -102,7 +105,7 @@ class marketing_campaign_segment(osv.osv): #{{{
'object_id': fields.related('campaign_id','object_id',
type='many2one', relation='ir.model',
string='Object'),
'ir_filter_id': fields.many2one('ir.filters', 'Filter'),
'ir_filter_id': fields.many2one('ir.filters', 'Filter', help=""),
'sync_last_date': fields.datetime('Date'),
'sync_mode': fields.selection([('create_date', 'Create'),
('write_date', 'Write')],
@ -124,15 +127,17 @@ class marketing_campaign_segment(osv.osv): #{{{
def state_running_set(self, cr, uid, ids, *args):
segment = self.browse(cr, uid, ids[0])
curr_date = time.strftime('%Y-%m-%d %H:%M:%S')
vals = {'state': 'running'}
if not segment.date_run:
raise osv.except_osv("Error", "Segment can't be start before giving running date")
if segment.campaign_id.state != 'running' :
raise osv.except_osv("Error", "You have to start campaign first")
if (segment.date_run >= curr_date):
raise osv.except_osv("Error", "Segment cannot start before run date")
vals['date_run'] = segment.campaign_id.date_run and \
segment.campaign_id.date_run or \
time.strftime('%Y-%m-%d %H:%M:%S')
if not segment.sync_last_date:
self.write(cr, uid, ids, {'sync_last_date':curr_date})
self.write(cr, uid, ids, {'state': 'running','date_done': curr_date})
vals['sync_last_date']=curr_date
if not segment.date_done:
vals['date_done']= (datetime.now() + _intervalTypes['years'](1) \
).strftime('%Y-%m-%d %H:%M:%S')
self.write(cr, uid, ids, vals)
return True
def state_done_set(self, cr, uid, ids, *args):
@ -191,27 +196,34 @@ class marketing_campaign_activity(osv.osv): #{{{
_description = "Campaign Activity"
_columns = {
'name': fields.char('Name', size=64),
'campaign_id': fields.many2one('marketing.campaign', 'Campaign'),
'name': fields.char('Name', size=64, required=True),
'campaign_id': fields.many2one('marketing.campaign', 'Campaign',
required = True, ondelete='cascade'),
'object_id': fields.related('campaign_id','object_id',
type='many2one', relation='ir.model',
string='Object'),
'start': fields.boolean('Start'),
'condition': fields.text('Condition'),
'start': fields.boolean('Start',help= "Its necessary to start activity \
before running campaign"),
'condition': fields.char('Condition', size=256, required=True,
help="Condition that is to be tested before \
action is executed"),
'type': fields.selection([('email', 'E-mail'),
('paper', 'Paper'),
('action', 'Action'),
('subcampaign', 'Sub-Campaign')],
'Type', required=True),
'email_template_id': fields.many2one('poweremail.templates','Email Template'),
'report_id': fields.many2one('ir.actions.report.xml', 'Reports'),
'report_directory_id': fields.many2one('document.directory', 'Directory'),
'server_action_id': fields.many2one('ir.actions.server', string='Action'),
'report_id': fields.many2one('ir.actions.report.xml', 'Reports', ),
'report_directory_id': fields.many2one('document.directory','Directory',
help="Folder is used to store the generated reports"),
'server_action_id': fields.many2one('ir.actions.server', string='Action',
help= "Describes the action name.\n"
"eg:On which object which action to be taken on basis of which condition"),
'to_ids': fields.one2many('marketing.campaign.transition',
'activity_to_id',
'activity_from_id',
'Next Activities'),
'from_ids': fields.one2many('marketing.campaign.transition',
'activity_from_id',
'activity_to_id',
'Previous Activities'),
'subcampaign_id': fields.many2one('marketing.campaign', 'Sub-Campaign'),
'subcampaign_segment_id': fields.many2one('marketing.campaign.segment',
@ -220,7 +232,12 @@ class marketing_campaign_activity(osv.osv): #{{{
'revenue': fields.float('Revenue')
}
_defaults = {
'type': lambda *a: 'email',
'condition': lambda *a: 'True',
'object_id' : lambda obj, cr, uid, context : context.get('object_id',False),
}
def search(self, cr, uid, args, offset=0, limit=None, order=None,
context=None, count=False):
if context == None:
@ -237,10 +254,11 @@ class marketing_campaign_activity(osv.osv): #{{{
def process(self, cr, uid, act_id, wi_id, context={}):
activity = self.browse(cr, uid, act_id)
workitem = self.pool.get('marketing.campaign.workitem').browse(cr, uid, wi_id)
workitem_obj = self.pool.get('marketing.campaign.workitem')
workitem = workitem_obj.browse(cr, uid, wi_id)
if activity.type == 'paper' :
service = netsvc.LocalService('report.%s'%activity.report_id.report_name)
(report_data, format) = service.create(cr, uid, [activity.report_id.id], {}, {})
(report_data, format) = service.create(cr, uid, [], {}, {})
attach_vals = {
'name': '%s_%s_%s'%(activity.report_id.report_name,
activity.name,workitem.partner_id.name),
@ -251,7 +269,36 @@ class marketing_campaign_activity(osv.osv): #{{{
'file_type': format
}
self.pool.get('ir.attachment').create(cr, uid, attach_vals)
# elif activity.type == 'email' :
elif activity.type == 'email' :
context = {}
template = activity.email_template_id
accounts = template.enforce_from_account
if not template.enforce_from_account:
return {'error_msg' : "There is no account defined for the email"}
if not workitem.partner_id.email:
return {'error_msg' : "There is no email defined for the partner"}
vals = {
'pem_from': tools.ustr(accounts.name) + "<" + tools.ustr(accounts.email_id) + ">",
'pem_to': workitem.partner_id.email,
'pem_subject': template.def_subject,
'pem_body_text': template.def_body_text,
'pem_body_html': template.def_body_html,
'pem_account_id':accounts.id,
'state':'na',
'mail_type':'multipart/alternative' #Options:'multipart/mixed','multipart/alternative','text/plain','text/html'
}
# if accounts.use_sign:
# signature = self.pool.get('res.users').read(cr, uid, uid, ['signature'], context)['signature']
# if signature:
# vals['pem_body_text'] = tools.ustr(vals['pem_body_text'] or '') + signature
# vals['pem_body_html'] = tools.ustr(vals['pem_body_html'] or '') + signature
#Create partly the mail and later update attachments
mail_id = self.pool.get('poweremail.mailbox').create(cr, uid, vals, context)
elif activity.type == 'action' :
server_obj = self.pool.get('ir.actions.server')
server_obj.run(cr, uid, [activity.server_action_id.id], context)
#???
return True
marketing_campaign_activity()#}}}
@ -259,6 +306,7 @@ marketing_campaign_activity()#}}}
class marketing_campaign_transition(osv.osv): #{{{
_name = "marketing.campaign.transition"
_description = "Campaign Transition"
_rec_name = "interval_type"
_columns = {
'activity_from_id': fields.many2one('marketing.campaign.activity',
@ -297,7 +345,9 @@ class marketing_campaign_workitem(osv.osv): #{{{
'partner_id': fields.many2one('res.partner', 'Partner',required=True),
'state': fields.selection([('todo', 'ToDo'), ('inprogress', 'In Progress'),
('exception', 'Exception'), ('done', 'Done'),
('cancelled', 'Cancelled')], 'State')
('cancelled', 'Cancelled')], 'State'),
'error_msg' : fields.text('Error Message')
}
_defaults = {
'state': lambda *a: 'draft',
@ -324,7 +374,7 @@ class marketing_campaign_workitem(osv.osv): #{{{
def process(self, cr, uid, workitem_ids, context={}):
for wi in self.browse(cr, uid, workitem_ids):
if wi.state == 'todo' :# we searched the wi which are in todo state
if wi.state == 'todo':# we searched the wi which are in todo state
#then y v keep this filter again
eval_context = {
'pool': self.pool,
@ -332,21 +382,23 @@ class marketing_campaign_workitem(osv.osv): #{{{
'uid': uid,
'wi': wi,
'object': wi.activity_id,
'transition' : wi.activity_id.to_ids
'transition': wi.activity_id.to_ids
}
val = {}
exec wi.activity_id.condition.replace('\r','') in \
eval_context, val
if 'action' in val and val['action']:
expr = eval(str(wi.activity_id.condition), eval_context)
if expr:
try :
self.pool.get('marketing.campaign.activity').process(cr,
uid, wi.activity_id.id, wi.id, context)
self.write(cr, uid, wi.id, {'state':'done'})
self.process_chain(cr, uid, wi.id, context)
res = self.pool.get('marketing.campaign.activity').process(
cr, uid, wi.activity_id.id, wi.id, context)
if res :
self.write(cr, uid, wi.id, {'state': 'done'})
self.process_chain(cr, uid, wi.id, context)
else :
self.write(cr, uid, wi.id, {'state': 'exception',
'error_msg': res['error_msg']})
except Exception,e:
self.write(cr, uid, wi.id, {'state':'exception'})
self.write(cr, uid, wi.id, {'state': 'exception'})
else :
self.write(cr, uid, wi.id, {'state':'cancelled'})
self.write(cr, uid, wi.id, {'state': 'cancelled'})
return True
@ -357,5 +409,28 @@ class marketing_campaign_workitem(osv.osv): #{{{
self.process(cr, uid, workitem_ids, context)
marketing_campaign_workitem() #}}}
class poweremail_templates(osv.osv):
_inherit = "poweremail.templates"
_defaults = {
'object_name': lambda obj, cr, uid, context: context.get('object_id',False),
}
poweremail_templates()
class report_xml(osv.osv):
_inherit = 'ir.actions.report.xml'
def search(self, cr, uid, args, offset=0, limit=None, order=None, context=None, count=False):
if not context:
context = {}
if context and 'object_id' in context and context['object_id']:
model = self.pool.get('ir.model').browse(cr, uid,
context['object_id']).model
args.append(('model', '=', model))
return super(report_xml, self).search(cr, uid, args, offset, limit, order, context, count)
report_xml()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

View File

@ -0,0 +1,89 @@
<?xml version="1.0" ?>
<openerp>
<data>
<!-- Document directory -->
<record id="document_directory_marketingcampaign" model="document.directory">
<field eval="0" name="ressource_tree"/>
<field eval="[(6,0,[])]" name="group_ids"/>
<field name="user_id" ref="base.user_root"/>
<field eval="&quot;&quot;&quot;Marketing Campaign&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;[]&quot;&quot;&quot;" name="domain"/>
<field eval="&quot;&quot;&quot;directory&quot;&quot;&quot;" name="type"/>
</record>
<record id="document_directory_campaign1" model="document.directory">
<field eval="0" name="ressource_tree"/>
<field eval="[(6,0,[])]" name="group_ids"/>
<field name="user_id" ref="base.user_root"/>
<field eval="&quot;&quot;&quot;OpenERP OnDemand Free Trial 2010&quot;&quot;&quot;" name="name"/>
<field eval="&quot;&quot;&quot;[]&quot;&quot;&quot;" name="domain"/>
<field name="parent_id" ref="document_directory_marketingcampaign"/>
<field eval="&quot;&quot;&quot;ressource&quot;&quot;&quot;" name="type"/>
<field name="ressource_type_id" ref="model_marketing_campaign"/>
</record>
<!-- Power email tempalte -->
<record id="poweremail_templates_foropenerpondemandfreetrial0" model="poweremail.templates">
<field name="def_subject">Thanks for showing interest in OpenERP</field>
<field name="def_to">info@tinyerp.com</field>
<field eval="[(6,0,[])]" name="allowed_groups"/>
<field eval="0" name="auto_email"/>
<field model="ir.actions.act_window" name="ref_ir_act_window" search="[('name', '=', u'For OpenERP OnDemand Free Trial 2010 Mail Form')]"/>
<field eval="[(6,0,[])]" name="table_required_fields"/>
<field model="ir.values" name="ref_ir_value" search="[('name', '=', u'Send Mail (For OpenERP OnDemand Free Trial 2010)')]"/>
<field name="object_name" ref="crm.model_crm_lead"/>
<field eval="0" name="use_sign"/>
<field name="def_body_text">Hello,
Thanks for generous interest you have shown in the open ERP.
Regards,
OpenERP Team,</field>
<field name="template_language">mako</field>
<field eval="0" name="send_on_create"/>
<field name="name">For OpenERP OnDemand Free Trial 2010</field>
<field name="model_int_name">crm.lead</field>
<field eval="0" name="send_on_write"/>
</record>
<!-- Report -->
<record id="mc_crm_lead_demo_report" model="ir.actions.report.xml">
<field name="name">Marketing campaign demo report</field>
<field name="type">ir.actions.report.xml</field>
<field name="model">crm.lead</field>
<field name="report_name">crm.lead.demo</field>
<field name="report_rml">marketing_campaign/report/crm_lead_mc_demo_report.rml</field>
<field name="report_type">pdf</field>
</record>
<!-- Campaign -->
<record id="marketing_campaign_openerpondemandfreetrial0" model="marketing.campaign">
<field name="name">OpenERP OnDemand Free Trial 2010</field>
<field name="object_id" ref="crm.model_crm_lead"/>
</record>
<!-- Activity -->
<record id="marketing_campaign_activity_0" model="marketing.campaign.activity">
<field name="name">Propose a 1 month free trial for an OnDemand offer</field>
<field name="server_action_id" ref="base.action_start_configurator"/>
<field model="marketing.campaign" name="campaign_id" ref="marketing_campaign_openerpondemandfreetrial0"/>
<field name="report_directory_id" ref="document_directory_campaign1"/>
<field name="type">paper</field>
<field eval="1" name="start"/>
<field name="report_id" ref="mc_crm_lead_demo_report"/>
</record>
<record id="marketing_campaign_activity_1" model="marketing.campaign.activity">
<field name="name">Thanks for showing interest</field>
<field name="server_action_id" ref="base.action_start_configurator"/>
<field model="marketing.campaign" name="campaign_id" ref="marketing_campaign_openerpondemandfreetrial0"/>
</record>
<!-- Tranisition -->
<record id="marketing_campaign_transition_0" model="marketing.campaign.transition">
<field model="marketing.campaign.activity" name="activity_from_id" ref = "marketing_campaign_activity_0"/>
<field model="marketing.campaign.activity" name="activity_to_id" ref = "marketing_campaign_activity_1"/>
</record>
<!-- Segment -->
<record id="marketing_campaign_segment_bosslistusassociationslist0" model="marketing.campaign.segment">
<field eval="time.strftime('%Y-%m-%d %H:%M:%S')" name="date_run"/>
<field name="name">BossList US Associations List-0/90</field>
<field name="sync_mode">create_date</field>
<field name="campaign_id" ref="marketing_campaign_openerpondemandfreetrial0"/>
<field name="state">draft</field>
</record>
</data>
</openerp>

View File

@ -20,19 +20,20 @@
<field name="mode"/>
<field name="fixed_cost"/>
</group>
<field name="activity_ids" nolabel = "1" colspan="4">
<field name="activity_ids" nolabel = "1" colspan="4" default_get="{'object_id':object_id}">
<form string="Activities">
<field name="name" select="1" />
<field name="object_id" readonly="True"/>
<field name="start"/>
<field name="object_id" readonly="True"/>
<field name="variable_cost" select="1"/>
<field name="start"/>
<field name="condition" colspan="4"/>
<field name="variable_cost" select="1"/>
<field name="type"/>
<newline/>
<field name="type" colspan="4"/>
<group colspan="4" attrs="{'invisible':[('type','!=','email')]}" >
<field name="email_template_id" attrs="{'required':[('type','=','email')]}" />
</group>
<group colspan="4" attrs="{'invisible':[('type','!=','paper')]}" >
<field name="report_id" attrs="{'required':[('type','=','paper')]}" />
<field name="report_id" attrs="{'required':[('type','=','paper')]}"/>
<field name="report_directory_id" attrs="{'required':[('type','=','paper')]}" />
</group>
<group colspan="4" attrs="{'invisible':[('type','!=','action')]}" >
@ -42,14 +43,34 @@
<field name="subcampaign_id" attrs="{'required':[('type','=','subcampaign')]}" />
<field name="subcampaign_segment_id" attrs="{'required':[('type','=','subcampaign')]}" />
</group>
<field name="to_ids" nolabel="1" colspan="4" mode="tree" default_get="{'type_id':'activity_from_id','activity_id':active_id or False}">
<tree string="All Transitions" editable="bottom">
<field name="activity_from_id"/>
<field name="activity_to_id"/>
<field name="interval_nbr"/>
<field name="interval_type"/>
</tree>
</field>
<field name="to_ids" nolabel="1" colspan="4" mode="tree" default_get="{'type_id':'activity_from_id','activity_id':active_id or False}">
<form string="Out Transitions" >
<field name="activity_from_id" readonly="True"/>
<field name="activity_to_id"/>
<field name="interval_nbr"/>
<field name="interval_type"/>
</form>
<tree string="Out Transitions" editable="bottom">
<field name="activity_from_id"/>
<field name="activity_to_id"/>
<field name="interval_nbr"/>
<field name="interval_type"/>
</tree>
</field>
<field name="from_ids" nolabel="1" colspan="4" mode="tree" default_get="{'type_id':'activity_to_id','activity_id':active_id or False}">
<form string="In Transitions" >
<field name="activity_from_id"/>
<field name="activity_to_id" readonly="True"/>
<field name="interval_nbr"/>
<field name="interval_type"/>
</form>
<tree string="In Transitions" editable="bottom">
<field name="activity_from_id"/>
<field name="activity_to_id"/>
<field name="interval_nbr"/>
<field name="interval_type"/>
</tree>
</field>
</form>
<tree string="All Activities">
<field name="name" select="1"/>
@ -67,9 +88,9 @@
<separator string="Status" colspan="4" />
<group col="10" colspan="4">
<field name="state" readonly="1" select="2" nolabel="1"/>
<button name="state_running_set" string="Run" states="draft" />
<button name="state_done_set" string="Done" states="running" />
<button name="state_cancel_set" string="Cancelled" states="running"/>
<button name="state_running_set" string="Run" states="draft" icon="gtk-apply"/>
<button name="state_done_set" string="Done" states="running" icon="gtk-ok"/>
<button name="state_cancel_set" string="Cancelled" states="running" icon="gtk-cancel"/>
</group>
</form>
</field>
@ -96,13 +117,13 @@
<field name="type">diagram</field>
<field name="arch" type="xml">
<diagram string="Campaign Editor">
<node object="marketing.campaign.activity" shape="rectangle:type!='subcampaign'" bgcolor="gray:start==True">
<node object="marketing.campaign.activity" shape="rectangle:type=='subcampaign'" bgcolor="gray:start==True">
<field name="name"/>
<field name="type"/>
<field name="start" invisible="1"/>
<field name="condition"/>
</node>
<arrow object="marketing.campaign.transition" source="activity_from_id" destination="activity_to_id">
<arrow object="marketing.campaign.transition" source="activity_from_id" destination="activity_to_id" label="['interval_type']">
<field name="activity_from_id"/>
<field name="activity_to_id"/>
<field name="interval_nbr"/>
@ -112,6 +133,29 @@
</field>
</record>
<record id="view_marketing_campaign_search" model="ir.ui.view">
<field name="name">marketing.campaign.search</field>
<field name="model">marketing.campaign</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Campaigns">
<filter icon="terp-marketing" string="Draft" name = "draft" domain="[('state','=','draft')]"/>
<filter icon="terp-marketing" string="Running" domain="[('state','=','running')]"/>
<separator orientation="vertical"/>
<filter icon="terp-marketing" string="Test Mode" name = "test" domain="[('mode','=','test')]"/>
<filter icon="terp-marketing" string="Manual Mode" domain="[('mode','=','manual')]"/>
<separator orientation="vertical"/>
<field name="name" select="1"/>
<field name="object_id" select="1"/>
<newline/>
<group expand="1" string="Group By..." colspan="10" col="12">
<filter string="Object" name="Object" icon="terp-marketing" context="{'group_by':'object_id'}" />
<filter string="State" name="State" icon="terp-marketing" context="{'group_by':'state'}" />
</group>
</search>
</field>
</record>
<record model="ir.actions.act_window" id="action_marketing_campaign_form">
<field name="name">All Campaigns</field>
<field name="type">ir.actions.act_window</field>
@ -119,9 +163,12 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form,diagram</field>
<field name="view_id" ref="view_marketing_campaign_tree"/>
<field name="context">{'group_by': [], 'search_default_draft': 1, 'search_default_test': 1}</field>
<field name="search_view_id" ref="view_marketing_campaign_search"/>
</record>
<menuitem id="menu_marketing_campaign_form" parent="menu_marketing" action="action_marketing_campaign_form" sequence="20" />
<menuitem id="menu_marketing_campaign_form" parent="menu_marketing" action="action_marketing_campaign_form" sequence="10" />
<!--
======================
@ -143,7 +190,7 @@
<newline/>
<field name="ir_filter_id" select="1"/>
<newline/>
<field name="date_run" attrs="{'readonly':[('date_run','!=',False)]}"/>
<field name="date_run" attrs="{'readonly':[('date_run','!=',False),('state','=','running')]}"/>
<field name="date_done"/>
<separator string="Synchronization" colspan="4" />
<field name="sync_last_date"/>
@ -152,9 +199,9 @@
<separator string="Status" colspan="4" />
<group col="10" colspan="4">
<field name="state" readonly="1" select="2" nolabel="1"/>
<button name="state_running_set" string="Run" states="draft" />
<button name="state_done_set" string="Done" states="running" />
<button name="state_cancel_set" string="Cancelled" states="running" />
<button name="state_running_set" string="Run" states="draft" icon="gtk-apply"/>
<button name="state_done_set" string="Done" states="running" icon="gtk-ok"/>
<button name="state_cancel_set" string="Cancelled" states="running" icon="gtk-cancel"/>
</group>
</form>
</field>
@ -178,6 +225,32 @@
</field>
</record>
<record id="view_marketing_campaign_segment_search" model="ir.ui.view">
<field name="name">marketing.campaign.segment.search</field>
<field name="model">marketing.campaign.segment</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Segments">
<filter icon="terp-marketing" string="Draft" name="draft" domain="[('state','=','draft')]"/>
<filter icon="terp-marketing" string="Running" domain="[('state','=','running')]"/>
<separator orientation="vertical"/>
<filter icon="terp-marketing" string="Create Date" name="create_date" domain="[('sync_mode','=','create_date')]"/>
<filter icon="terp-marketing" string="Write Date" domain="[('sync_mode','=','write_date')]"/>
<separator orientation="vertical"/>
<field name="name" select="1"/>
<field name="object_id" select="1"/>
<field name="campaign_id" select="1"/>
<field name="date_run" select="1"/>
<newline/>
<group expand="1" string="Group By..." colspan="10" col="12">
<filter string="Campaign" name="Campaign" icon="terp-marketing" context="{'group_by':'campaign_id'}" />
<filter string="Date Run" name="Date Run" icon="terp-marketing" context="{'group_by':'date_run'}" />
<filter string="State" name="State" icon="terp-marketing" context="{'group_by':'state'}" />
</group>
</search>
</field>
</record>
+
<record model="ir.actions.act_window" id="action_marketing_campaign_segment_form">
<field name="name">All Segments</field>
<field name="type">ir.actions.act_window</field>
@ -185,9 +258,11 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_marketing_campaign_segment_tree"/>
<field name="search_view_id" ref="view_marketing_campaign_segment_search"/>
<field name="context">{'group_by': [], 'search_default_draft': 1, 'search_default_create_date': 1}</field>
</record>
<menuitem id="menu_marketing_campaign_segment_form" parent="menu_marketing" action="action_marketing_campaign_segment_form" sequence="10" />
<menuitem id="menu_marketing_campaign_segment_form" parent="menu_marketing" action="action_marketing_campaign_segment_form" sequence="20" />
<!--
======================
@ -204,8 +279,7 @@
<field name="name" select="1" />
<field name="start"/>
<field name="campaign_id" select="1"/>
<field name="object_id" readonly="True"/>
<field name="condition" colspan="4"/>
<field name="object_id" readonly="True"/>
<newline/>
<field name="type"/>
<group colspan="4" attrs="{'invisible':[('type','!=','email')]}" >
@ -222,14 +296,34 @@
<field name="subcampaign_id" attrs="{'required':[('type','=','subcampaign')]}" />
<field name="subcampaign_segment_id" attrs="{'required':[('type','=','subcampaign')]}" />
</group>
<field name="to_ids" nolabel="1" colspan="4" mode="tree,form">
<tree string="All Transitions" editable="bottom">
<field name="activity_from_id" />
<field name="activity_to_id" />
<field name="interval_nbr" />
<field name="interval_type"/>
</tree>
</field>
<field name="to_ids" nolabel="1" colspan="4" mode="tree" default_get="{'type_id':'activity_from_id','activity_id':active_id or False}">
<form string="Out Transitions" >
<field name="activity_from_id" readonly="True"/>
<field name="activity_to_id"/>
<field name="interval_nbr"/>
<field name="interval_type"/>
</form>
<tree string="Out Transitions" editable="bottom">
<field name="activity_from_id"/>
<field name="activity_to_id"/>
<field name="interval_nbr"/>
<field name="interval_type"/>
</tree>
</field>
<field name="from_ids" nolabel="1" colspan="4" mode="tree" default_get="{'type_id':'activity_to_id','activity_id':active_id or False}">
<form string="In Transitions" >
<field name="activity_from_id"/>
<field name="activity_to_id" readonly="True"/>
<field name="interval_nbr"/>
<field name="interval_type"/>
</form>
<tree string="In Transitions" editable="bottom">
<field name="activity_from_id"/>
<field name="activity_to_id"/>
<field name="interval_nbr"/>
<field name="interval_type"/>
</tree>
</field>
</form>
</field>
</record>
@ -306,6 +400,32 @@
</field>
</record>
<record id="view_marketing_campaign_workitem_search" model="ir.ui.view">
<field name="name">marketing.campaign.workitem.search</field>
<field name="model">marketing.campaign.workitem</field>
<field name="type">search</field>
<field name="arch" type="xml">
<search string="Workitems">
<filter icon="terp-marketing" string="To Do" name = "todo" domain="[('state','=','todo')]"/>
<filter icon="terp-marketing" string="In Progress" domain="[('state','=','inprogress')]"/>
<filter icon="terp-marketing" string="Exception" domain="[('state','=','exception')]"/>
<separator orientation="vertical"/>
<field name="segment_id" select="1"/>
<field name="object_id" select="1"/>
<field name="partner_id" select="1"/>
<field name="date" select="1"/>
<newline/>
<group expand="1" string="Group By..." colspan="10" col="12">
<filter string="Segment" name="Segment" icon="terp-marketing" context="{'group_by':'segment_id'}" />
<filter string="Activity" name="Activity" icon="terp-marketing" context="{'group_by':'activity_id'}" />
<separator orientation="vertical"/>
<filter string="Date" name="Date" icon="terp-marketing" context="{'group_by':'date'}" />
<filter string="State" name="State" icon="terp-marketing" context="{'group_by':'state'}" />
</group>
</search>
</field>
</record>
<record model="ir.actions.act_window" id="action_marketing_campaign_workitem">
<field name="name">All Workitems</field>
<field name="type">ir.actions.act_window</field>
@ -313,6 +433,8 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="view_marketing_campaign_workitem_tree"/>
<field name="search_view_id" ref="view_marketing_campaign_workitem_search"/>
<field name="context">{'group_by': [], 'search_default_todo': 1}</field>
</record>
<menuitem id="menu_action_marketing_campaign_workitem" parent="menu_marketing" action="action_marketing_campaign_workitem" sequence="30" groups="base.group_extended"/>

View File

@ -30,14 +30,14 @@
<field name="arch" type="xml">
<search string="Marketing Reports">
<group>
<filter icon="terp-account"
<filter icon="terp-marketing"
string="This Year"
domain="[('year','=',time.strftime('%%Y'))]"/>
<filter icon="terp-account"
<filter icon="terp-marketing"
string="This Month"
domain="[('month','=',time.strftime('%%m'))]"/>
<separator orientation="vertical"/>
<filter icon="terp-account"
<filter icon="terp-marketing"
string="Date"
domain="[('date','=',time.strftime('%%Y/%%m/%%d'))]"/>
<separator orientation="vertical"/>
@ -49,12 +49,12 @@
</group>
<newline/>
<group expand="1" string="Group By..." colspan="10" col="12">
<filter string="Campaign" name="Campaign" icon="terp-sale" context="{'group_by':'campaign_id'}" />
<filter string="Segment" name ="Segment" icon="terp-sale" context="{'group_by':'segment_id'}" />
<filter string="Partner" icon="terp-sale" context="{'group_by':'partner_id'}"/>
<filter string="Campaign" name="Campaign" icon="terp-marketing" context="{'group_by':'campaign_id'}" />
<filter string="Segment" name ="Segment" icon="terp-marketing" context="{'group_by':'segment_id'}" />
<filter string="Partner" icon="terp-marketing" context="{'group_by':'partner_id'}"/>
<separator orientation="vertical"/>
<filter string="Month" icon="terp-sale" context="{'group_by':'month'}"/>
<filter string="Year" icon="terp-sale" context="{'group_by':'year'}"/>
<filter string="Month" icon="terp-marketing" context="{'group_by':'month'}"/>
<filter string="Year" icon="terp-marketing" context="{'group_by':'year'}"/>
</group>
</search>
</field>

View File

@ -0,0 +1,32 @@
<?xml version="1.0"?>
<document filename="test.pdf">
<template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
<pageTemplate id="first">
<frame id="first" x1="57.0" y1="57.0" width="481" height="728"/>
</pageTemplate>
</template>
<stylesheet>
<blockTableStyle id="Standard_Outline">
<blockAlignment value="LEFT"/>
<blockValign value="TOP"/>
</blockTableStyle>
<initialize>
<paraStyle name="all" alignment="justify"/>
</initialize>
<paraStyle name="Standard" fontName="Helvetica"/>
<paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
<paraStyle name="Text body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
<paraStyle name="Caption" fontName="Helvetica-Oblique" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
<paraStyle name="Index" fontName="Helvetica"/>
<images/>
</stylesheet>
<story>
<para style="Standard">[[ repeatIn(objects,'lead') ]]</para>
<para style="Standard">
<font color="white"> </font>
</para>
<para style="Text body">Partner : [[ lead.company_id.partner_id.name ]]</para>
<para style="Standard">Company : [[ lead.company_id.parent_id.name ]]</para>
</story>
</document>

View File

@ -58,7 +58,7 @@
</group>
<newline/>
<group expand="1" string="Group By..." colspan="4" col="6">
<group expand="1" string="Group By...">
<filter string="Source Location" icon="terp-mrp" context="{'group_by':'location_src_id'}"/>
<filter string="Destination Location" icon="terp-mrp" context="{'group_by':'location_dest_id'}"/>
<filter string="Picking" icon="terp-mrp" context="{'group_by':'picking_id'}"/>
@ -72,7 +72,7 @@
<filter string="Year" icon="terp-mrp" context="{'group_by':'year'}"/>
</group>
<newline/>
<group expand="0" string="Extended options..." colspan="10" col="12" groups="base.group_extended">
<group expand="0" string="Extended options..." groups="base.group_extended">
<filter icon="terp-mrp" string="Draft" domain="[('state','=','draft')]"/>
<filter icon="terp-mrp" string="Picking Exception" domain="[('state','=','picking_except')]"/>
<separator orientation="vertical"/>

View File

@ -26,7 +26,7 @@
'category': 'Generic Modules/Base',
'description': """
This module shows the basic processes involved
in the selected modules and in the sequence these
in the selected modules and in the sequence they
occur
Note: This applies to the modules containing modulename_process_xml

View File

@ -18,11 +18,7 @@
<field name="name"/>
<field name="categ_id" widget="selection" operator="child_of"/>
<newline/>
<group expand="0" string="Extended filters..." groups="base.group_extended">
<field name="pricelist_id" widget="selection" context="{'pricelist': self}" />
</group>
<newline/>
<group expand='0' string='Group by...' groups="base.group_extended">
<group expand='1' string='Group by...' groups="base.group_extended">
<filter string='Category' icon="terp-stock" domain="[]" context="{'group_by' : 'categ_id'}" />
<separator orientation="vertical"/>
<filter string='Default UOM' icon="terp-stock" domain="[]" context="{'group_by' : 'uom_id'}" />
@ -30,7 +26,7 @@
<filter string='Type' icon="terp-stock" domain="[]" context="{'group_by' : 'type'}" />
</group>
<newline/>
<group col='8' colspan='14' expand="0" string="Extended options..." groups="base.group_extended">
<group expand="0" string="Extended options..." groups="base.group_extended">
<field name="pricelist_id" widget="selection" context="{'pricelist': self}" />
</group>
</search>
@ -143,7 +139,7 @@
</page>
<page string="Prices &amp; Suppliers">
<separator string=" Base Prices" colspan="4"/>
<separator string="Base Prices" colspan="4"/>
<field name="standard_price" attrs="{'readonly':[('cost_method','=','average')]}"/>
<field name="list_price"/>
<newline/>

View File

@ -26,7 +26,7 @@
'category': 'Custom',
'description': """
Adds a reporting menu in products that computes sales, purchases, margins
and others interesting indicators based on invoices. The wizard to launch
and other interesting indicators based on invoices. The wizard to launch
the report has several options to help you get the data you need.
""",
'author': 'Tiny',

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-08 12:59+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-05-25 16:49+0000\n"
"Last-Translator: Grzegorz Grzelak (Cirrus.pl) <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-17 03:55+0000\n"
"X-Launchpad-Export-Date: 2010-05-27 03:42+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_accounting
@ -23,6 +23,8 @@ msgid ""
"Profile you selected. You will be able to install them based on our "
"requirements."
msgstr ""
"Instaluj więcej modułów. Proponujemy moduły zalecane do profilu księgowego, "
"który wybrałeś. Będziesz mógł je instalować według naszych wskazań."
#. module: profile_accounting
#: constraint:ir.model:0
@ -35,7 +37,7 @@ msgstr ""
#. module: profile_accounting
#: view:profile.accounting.config.install_modules_wizard:0
msgid "Services Management"
msgstr ""
msgstr "Zarządzanie usługami"
#. module: profile_accounting
#: help:profile.accounting.config.install_modules_wizard,board_document:0
@ -45,51 +47,55 @@ msgid ""
"documents, printed reports, calendar system). It opens an FTP access for the "
"users to easily browse association's document."
msgstr ""
"System zarządzania dokumentami w OpenERP pozwala przechowywać, przeglądać, "
"automatycznie indeksować, przeszukiwać i podglądać wszystkie rodzaje "
"dokumentów (dokumenty wewnętrzne, drukowane raporty, kalendarze). Otwiera on "
"dla użytkowników dostęp FTP do łatwego przeglądania powiązanych dokumentów."
#. module: profile_accounting
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Nieprawidłowa nazwa modelu w definicji akcji."
#. module: profile_accounting
#: view:profile.accounting.config.install_modules_wizard:0
msgid "Resources Management"
msgstr ""
msgstr "Zarządzanie zasobami"
#. module: profile_accounting
#: field:profile.accounting.config.install_modules_wizard,account_payment:0
msgid "Suppliers Payment Management"
msgstr ""
msgstr "Zarządzanie płatnościami dla dostawców"
#. module: profile_accounting
#: field:profile.accounting.config.install_modules_wizard,account_asset:0
msgid "Asset Management"
msgstr ""
msgstr "Środki trwałe"
#. module: profile_accounting
#: field:profile.accounting.config.install_modules_wizard,account_analytic_plans:0
msgid "Multiple Analytic Plans"
msgstr ""
msgstr "Planowanie analityczne"
#. module: profile_accounting
#: model:ir.actions.act_window,name:profile_accounting.action_config_install_module
msgid "Accounting Profile : Install Extra Modules"
msgstr ""
msgstr "Profil księgowy: Instaluj dodatkowe moduły"
#. module: profile_accounting
#: field:profile.accounting.config.install_modules_wizard,hr_timesheet_invoice:0
msgid "Invoice on Analytic Entries"
msgstr ""
msgstr "Faktura z zapisów analitycznych"
#. module: profile_accounting
#: model:ir.module.module,description:profile_accounting.module_meta_information
msgid "Profile for Accounting"
msgstr ""
msgstr "Profil dla księgowości"
#. module: profile_accounting
#: help:profile.accounting.config.install_modules_wizard,account_budget:0
msgid "Helps you to manage financial and analytic budgets."
msgstr ""
msgstr "Pomaga zarządzać budżetami finansowymi i analitycznymi."
#. module: profile_accounting
#: constraint:ir.ui.view:0
@ -99,37 +105,37 @@ msgstr "XML niewłaściwy dla tej architektury wyświetlania!"
#. module: profile_accounting
#: field:profile.accounting.config.install_modules_wizard,name:0
msgid "Name"
msgstr ""
msgstr "Nazwa"
#. module: profile_accounting
#: field:profile.accounting.config.install_modules_wizard,account_budget:0
msgid "Budgets"
msgstr ""
msgstr "Budżety"
#. module: profile_accounting
#: view:profile.accounting.config.install_modules_wizard:0
msgid "Install"
msgstr ""
msgstr "Instaluj"
#. module: profile_accounting
#: view:profile.accounting.config.install_modules_wizard:0
msgid "Install Extra Module"
msgstr ""
msgstr "Instaluj dodatkowe moduły"
#. module: profile_accounting
#: model:ir.module.module,shortdesc:profile_accounting.module_meta_information
msgid "Accounting only profile"
msgstr ""
msgstr "Profil tylko księgowy"
#. module: profile_accounting
#: field:profile.accounting.config.install_modules_wizard,account_analytic_analysis:0
msgid "Analytic Accounting"
msgstr ""
msgstr "Księgowość analityczna"
#. module: profile_accounting
#: field:profile.accounting.config.install_modules_wizard,board_document:0
msgid "Document Management"
msgstr ""
msgstr "Zarządzanie dokumentami"
#. module: profile_accounting
#: model:ir.model,name:profile_accounting.model_profile_accounting_config_install_modules_wizard
@ -139,4 +145,4 @@ msgstr ""
#. module: profile_accounting
#: view:profile.accounting.config.install_modules_wizard:0
msgid "Cancel"
msgstr ""
msgstr "Anuluj"

View File

@ -7,24 +7,24 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-09-08 13:28+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
"PO-Revision-Date: 2010-05-25 16:49+0000\n"
"Last-Translator: Grzegorz Grzelak (Cirrus.pl) <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-17 04:16+0000\n"
"X-Launchpad-Export-Date: 2010-05-27 03:42+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: profile_manufacturing
#: field:profile.manufacturing.config.install_modules_wizard,mrp_operation:0
msgid "Manufacturing Operations"
msgstr ""
msgstr "Operacje produkcyjne"
#. module: profile_manufacturing
#: model:ir.module.module,description:profile_manufacturing.module_meta_information
msgid "Profile for manufacturing industries"
msgstr ""
msgstr "Profil dla firm produkcyjnych"
#. module: profile_manufacturing
#: constraint:ir.model:0
@ -37,22 +37,22 @@ msgstr ""
#. module: profile_manufacturing
#: field:profile.manufacturing.config.install_modules_wizard,mrp_jit:0
msgid "Just in Time Scheduling"
msgstr ""
msgstr "Planowanie natychmiastowe (JiT)"
#. module: profile_manufacturing
#: field:profile.manufacturing.config.install_modules_wizard,sale_journal:0
msgid "Manage by Journals"
msgstr ""
msgstr "Zarządzanie wg dzienników"
#. module: profile_manufacturing
#: view:profile.manufacturing.config.install_modules_wizard:0
msgid "Relationship Management"
msgstr ""
msgstr "Zarządzanie relacjami"
#. module: profile_manufacturing
#: help:profile.manufacturing.config.install_modules_wizard,portal:0
msgid "This module allows you to manage a Portal system."
msgstr ""
msgstr "Ten moduł pozwoli ci zarządzać systemem portalu."
#. module: profile_manufacturing
#: help:profile.manufacturing.config.install_modules_wizard,board_document:0
@ -62,6 +62,10 @@ msgid ""
"documents, printed reports, calendar system). It opens an FTP access for the "
"users to easily browse association's document."
msgstr ""
"System zarządzania dokumentami w OpenERP pozwala przechowywać, przeglądać, "
"automatycznie indeksować, przeszukiwać i podglądać wszystkie rodzaje "
"dokumentów (dokumenty wewnętrzne, drukowane raporty, kalendarze). Otwiera on "
"dla użytkowników dostęp FTP do łatwego przeglądania powiązanych dokumentów."
#. module: profile_manufacturing
#: help:profile.manufacturing.config.install_modules_wizard,sale_journal:0
@ -70,17 +74,20 @@ msgid ""
"journals. You can define journals for trucks, salesman, departments, "
"invoicing date delivery period, etc."
msgstr ""
"Ten moduł pozwala zarządzać sprzedażą, fakturowaniem i pobieraniem produktów "
"przez dzinniki. Możesz definiować dzienniki dla ciężarówek, sprzedawców, "
"działów, dat fakturowania, okresów dostaw itp."
#. module: profile_manufacturing
#: constraint:ir.actions.act_window:0
msgid "Invalid model name in the action definition."
msgstr ""
msgstr "Nieprawidłowa nazwa modelu w definicji akcji."
#. module: profile_manufacturing
#: model:ir.actions.act_window,name:profile_manufacturing.action_config_install_module
#: view:profile.manufacturing.config.install_modules_wizard:0
msgid "Manufacturing Profile: Install Extra Modules"
msgstr ""
msgstr "Profil produkcyjny: Instaluj dodatkowe moduły"
#. module: profile_manufacturing
#: help:profile.manufacturing.config.install_modules_wizard,mrp_jit:0
@ -89,6 +96,9 @@ msgid ""
"and faster for real time stock computation but, in counter-part, it manages "
"less efficiently priorities in procurements."
msgstr ""
"Moduł JIT pozwala działać planiście bez jego uruchamiania. Jest to szybsze i "
"łatwiejsze dla obliczeń zapasów w czasie rzeczywistym, ale nieefektywne w "
"zarządzaniu priorytetami w nabyciach."
#. module: profile_manufacturing
#: help:profile.manufacturing.config.install_modules_wizard,mrp_operation:0
@ -97,11 +107,15 @@ msgid ""
"work order/operation. You will be able to planify, analyse the cost, check "
"times, ... on all operations of each manufacturing order"
msgstr ""
"Ten moduł pozwala nie tylko zarządzać produkcją przez zamówienia produkcji, "
"ale również przez zamówienia czynności/operacje. Będziesz mógł planować, "
"analizować koszt, sprawdzać czas, ... dla wszystkich operacji w każdym "
"zamówieniu produkcyjnym"
#. module: profile_manufacturing
#: field:profile.manufacturing.config.install_modules_wizard,board_document:0
msgid "Document Management"
msgstr ""
msgstr "Zarządzanie dokumentami"
#. module: profile_manufacturing
#: field:profile.manufacturing.config.install_modules_wizard,portal:0
@ -111,7 +125,7 @@ msgstr ""
#. module: profile_manufacturing
#: view:profile.manufacturing.config.install_modules_wizard:0
msgid "Stock & Manufacturing"
msgstr ""
msgstr "Zapasy i Produkcja"
#. module: profile_manufacturing
#: help:profile.manufacturing.config.install_modules_wizard,mrp_repair:0
@ -119,6 +133,8 @@ msgid ""
"Allow to manage product repairs. Handle the guarantee limit date and the "
"invoicing of products and services."
msgstr ""
"Pozwala zarządzać naprawami produktów. Obsługuje czasy gwarancji i "
"fakturowanie produktów i usług."
#. module: profile_manufacturing
#: constraint:ir.ui.view:0
@ -132,16 +148,20 @@ msgid ""
"manufacturing profile you selected. You will be able to install them based "
"on our requirements."
msgstr ""
"Instaluj więcej modułów. Proponujemy moduły zalecane do profilu "
"produkcyjnego, który wybrałeś. Będziesz mógł je instalować według naszych "
"wskazań."
#. module: profile_manufacturing
#: help:profile.manufacturing.config.install_modules_wizard,mrp_subproduct:0
msgid "This module allows you to add sub poducts in mrp bom."
msgstr ""
"Ten moduł pozwala dodać produkty uboczne w zestawieniu materiałowym MRP."
#. module: profile_manufacturing
#: model:ir.module.module,shortdesc:profile_manufacturing.module_meta_information
msgid "Manufacturing industry profile"
msgstr ""
msgstr "Profil firm produkcyjnych"
#. module: profile_manufacturing
#: model:ir.model,name:profile_manufacturing.model_profile_manufacturing_config_install_modules_wizard
@ -155,26 +175,28 @@ msgid ""
"opportunities tracking, shared calendar, jobs tracking, bug tracker, and so "
"on."
msgstr ""
"To instaluje funkcjonalność relacji z klientami jak: obsługa sygnałów i "
"szans, współdzielone kalendarze, obsadzanie stanowisk, obsługa błędów itp."
#. module: profile_manufacturing
#: view:profile.manufacturing.config.install_modules_wizard:0
msgid "Install"
msgstr ""
msgstr "Instaluj"
#. module: profile_manufacturing
#: field:profile.manufacturing.config.install_modules_wizard,sale_crm:0
msgid "CRM and Calendars"
msgstr ""
msgstr "CRM i kalendarze"
#. module: profile_manufacturing
#: field:profile.manufacturing.config.install_modules_wizard,mrp_repair:0
msgid "Repair"
msgstr ""
msgstr "Naprawa"
#. module: profile_manufacturing
#: help:profile.manufacturing.config.install_modules_wizard,sale_margin:0
msgid "Display margins on the sale order form."
msgstr ""
msgstr "Wyświetlaj marże na formularzu zamówienia sprzedaży."
#. module: profile_manufacturing
#: help:profile.manufacturing.config.install_modules_wizard,point_of_sale:0
@ -184,26 +206,30 @@ msgid ""
"a perfect ergonomy with touchscreen materials and payment processing "
"hardware."
msgstr ""
"Ten moduł pozwala obsługiwać punkt sprzedaży. Zawiera podstawową formę "
"operacji punktu sprzedaży. Musisz sprawdzić jeszcze nasz punkt sprzedaży dla "
"sprzedawcy (frontend), zby się przekonać o ergonomii ekranu dotykowego i "
"urządzeń do obsługi płatności."
#. module: profile_manufacturing
#: field:profile.manufacturing.config.install_modules_wizard,mrp_subproduct:0
msgid "Mrp Sub Product"
msgstr ""
msgstr "Produkt uboczny MRP"
#. module: profile_manufacturing
#: view:profile.manufacturing.config.install_modules_wizard:0
msgid "Sales Management"
msgstr ""
msgstr "Sprzedaż"
#. module: profile_manufacturing
#: field:profile.manufacturing.config.install_modules_wizard,warning:0
msgid "Warning"
msgstr ""
msgstr "Ostrzeżenie"
#. module: profile_manufacturing
#: field:profile.manufacturing.config.install_modules_wizard,sale_margin:0
msgid "Margins on Sales Order"
msgstr ""
msgstr "Marże w zamówieniu sprzedaży"
#. module: profile_manufacturing
#: help:profile.manufacturing.config.install_modules_wizard,stock_location:0
@ -214,18 +240,23 @@ msgid ""
"managing a manufacturing chain, a quality control location, product that you "
"rent, etc."
msgstr ""
"Pozwala zarządzać zaawansowaną logistyką z różnymi strefami. Możesz "
"zdefiniować, według produktu: domyślną strefę, ścieżkę stref dla różnych "
"operacji, itp. Moduł ten jest zwykle stosowany do: lokalizacji produktów, "
"zarządzania łańcuchem produkcyjnym, stref kontroli jakości, produktów "
"wypożyczanych, itp."
#. module: profile_manufacturing
#: view:profile.manufacturing.config.install_modules_wizard:0
msgid "Cancel"
msgstr ""
msgstr "Anuluj"
#. module: profile_manufacturing
#: field:profile.manufacturing.config.install_modules_wizard,point_of_sale:0
msgid "Point of Sale"
msgstr ""
msgstr "Punkt sprzedaży"
#. module: profile_manufacturing
#: field:profile.manufacturing.config.install_modules_wizard,stock_location:0
msgid "Advanced Locations"
msgstr ""
msgstr "Zaawansowane strefy"

View File

@ -28,7 +28,7 @@
"category" : "Generic Modules/Projects & Services",
"depends" : ["product", "analytic", "process", "mail_gateway"],
"description": """Project management module that track multi-level projects, tasks,
works done on tasks, eso. It is able to render planning, order tasks, eso.
work done on tasks, eso. It is able to render planning, order tasks, eso.
""",
"init_xml" : [],
"update_xml": [

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2010-05-13 17:05+0000\n"
"PO-Revision-Date: 2010-05-25 15:03+0000\n"
"Last-Translator: Grzegorz Grzelak (Cirrus.pl) <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-05-14 04:55+0000\n"
"X-Launchpad-Export-Date: 2010-05-27 03:42+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project
@ -1130,7 +1130,7 @@ msgstr "Błąd ! Nie możesz tworzyć rekurencyjnych projektów."
#. module: project
#: field:project.task,date_deadline:0
msgid "Deadline"
msgstr "Ostateczny czas ukończenia"
msgstr "Termin"
#. module: project
#: wizard_field:project.task.delegate,init,user_id:0

View File

@ -55,10 +55,10 @@
<field name="arch" type="xml">
<search string="Tasks Analysis">
<group>
<filter icon="terp-project" string="Last 365 Days"
<filter icon="gtk-media-rewind" string="Last 365 Days"
domain="[('date_start','&lt;=', time.strftime('%%Y-%%m-%%d')),('date_start','&gt;',(datetime.date.today()-datetime.timedelta(days=365)).strftime('%%Y-%%m-%%d'))]"
help="Tasks performed in last 365 Days"/>
<filter icon="terp-project" string="Last 30 Days"
<filter icon="gtk-media-rewind" string="Last 30 Days"
name="month"
domain="[('date_start','&lt;=', time.strftime('%%Y-%%m-%%d')), ('date_start','&gt;',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%%Y-%%m-%%d'))]"
help="Tasks performed in last 30 days"/>
@ -98,13 +98,9 @@
</field>
<field name="project_id" widget="selection">
<filter icon="terp-project"
string="My Task"
help="My Tasks"
string="My Projects"
help="My Projects"
domain="[('project_id','=',context.get('project_id', False)]"/>
<filter icon="terp-project"
string="Non assigned tasks to projects"
help ="Non assigned tasks to projects"
domain="[('project_id','=',False"/>
</field>
</group>
<group expand="1" string="Group By..." colspan="10" col="11">
@ -220,7 +216,7 @@
</record>
<!-- Views and action for project dashboard -->
<record id="view_task_by_days_vs_planned_hours_tree" model="ir.ui.view">
<record id="view_task_by_days_vs_planned_hours_tree" model="ir.ui.view">
<field name="name">task.by.days.vs.planned.hours.tree</field>
<field name="model">task.by.days.vs.planned.hours</field>
<field name="type">tree</field>
@ -252,5 +248,6 @@
<field name="view_mode">graph,tree</field>
<field name="view_id" ref="view_task_by_days_vs_planned_hours_graph"/>
</record>
</data>
</openerp>

View File

@ -7,13 +7,13 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2009-08-28 16:01+0000\n"
"PO-Revision-Date: 2009-12-22 14:25+0000\n"
"PO-Revision-Date: 2010-05-25 10:02+0000\n"
"Last-Translator: Grzegorz Grzelak (Cirrus.pl) <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2010-04-17 04:15+0000\n"
"X-Launchpad-Export-Date: 2010-05-27 03:42+0000\n"
"X-Generator: Launchpad (build Unknown)\n"
#. module: project_gtd
@ -37,7 +37,7 @@ msgstr ""
#. module: project_gtd
#: model:ir.actions.act_window,name:project_gtd.act_timebox_tasks_my_deadline_open
msgid "My Deadlines"
msgstr ""
msgstr "Moje terminy"
#. module: project_gtd
#: selection:project.gtd.timebox,type:0
@ -83,7 +83,7 @@ msgstr "Nieprawidłowa nazwa modelu w definicji akcji."
#. module: project_gtd
#: field:project.gtd.timebox,context4_id:0
msgid "Context 4"
msgstr ""
msgstr "Kontekst 4"
#. module: project_gtd
#: wizard_field:project.gtd.timebox.fill,init,timebox_to_id:0
@ -110,7 +110,7 @@ msgstr ""
#. module: project_gtd
#: model:ir.module.module,shortdesc:project_gtd.module_meta_information
msgid "Getting Things Done - Time Management Module"
msgstr ""
msgstr "GTD - personalny moduł zarządzania czasem"
#. module: project_gtd
#: model:ir.actions.act_window,name:project_gtd.act_timebox_tasks
@ -140,7 +140,7 @@ msgstr ""
#. module: project_gtd
#: model:ir.actions.act_window,name:project_gtd.act_timebox_tasks_my_pending
msgid "My Pending Tasks"
msgstr ""
msgstr "Moje zadania oczekujące"
#. module: project_gtd
#: view:project.gtd.timebox:0
@ -166,17 +166,17 @@ msgstr ""
#. module: project_gtd
#: field:project.gtd.timebox,context1_id:0
msgid "Context 1"
msgstr ""
msgstr "Kontekst 1"
#. module: project_gtd
#: field:project.gtd.timebox,context2_id:0
msgid "Context 2"
msgstr ""
msgstr "Kontekst 2"
#. module: project_gtd
#: field:project.gtd.timebox,context3_id:0
msgid "Context 3"
msgstr ""
msgstr "Kontekst 3"
#. module: project_gtd
#: wizard_button:project.gtd.timebox.fill,init,process:0
@ -186,12 +186,12 @@ msgstr ""
#. module: project_gtd
#: field:project.gtd.timebox,context5_id:0
msgid "Context 5"
msgstr ""
msgstr "Kontekst 5"
#. module: project_gtd
#: field:project.gtd.timebox,context6_id:0
msgid "Context 6"
msgstr ""
msgstr "Kontekst 6"
#. module: project_gtd
#: model:ir.actions.act_window,name:project_gtd.open_gtd_context_tree
@ -244,18 +244,18 @@ msgstr "Kontekst"
#. module: project_gtd
#: model:ir.actions.act_window,name:project_gtd.act_timebox_tasks_my_open
msgid "My Open Tasks"
msgstr ""
msgstr "Moje otwarte zadania"
#. module: project_gtd
#: model:ir.ui.menu,name:project_gtd.menu_open_gtd_time
#: model:ir.ui.menu,name:project_gtd.menu_open_time
msgid "Time Management"
msgstr ""
msgstr "Zarządzanie czasem"
#. module: project_gtd
#: view:project.task:0
msgid "Getting Things Done"
msgstr ""
msgstr "GTD - planowanie osobiste"
#. module: project_gtd
#: field:project.gtd.timebox,task1_ids:0

View File

@ -34,13 +34,11 @@ from tools.translate import _
class project_issue(osv.osv):
_inherit = 'project.issue'
_columns = {
'timesheet_ids' : fields.one2many('hr.analytic.timesheet', 'issue_id', 'Timesheets'),
'analytic_account_id' : fields.many2one('account.analytic.account', 'Analytic Account',
domain="[('partner_id', '=', partner_id)]",
required=True),
'analytic_account_id': fields.related('project_id','category_id',string='Analytic Account')
}
project_issue()
class account_analytic_line(osv.osv):
_inherit = 'account.analytic.line'
@ -53,10 +51,8 @@ account_analytic_line()
class hr_analytic_issue(osv.osv):
_inherit = 'hr.analytic.timesheet'
_columns = {
'issue_id' : fields.many2one('project.issue', 'Issue'),
}
hr_analytic_issue()

View File

@ -9,11 +9,11 @@
<field name="arch" type="xml">
<notebook colspan="4">
<page string="Worklogs">
<separator string="Timesheets" colspan="4" />
<field name="analytic_account_id" invisible="1"/>
<field name="timesheet_ids" colspan="4" nolabel="1" context="{'default_user_id' : user_id, 'default_account_id' : analytic_account_id}">
<tree editable="top" string="Timesheet">
<field name="create_date" string="Date" />
<field name="user_id" readonly="1" />
<field name="date"/>
<field name="user_id"/>
<field name="account_id" invisible="0" domain="[('partner_id', '=', parent.partner_id)]" on_change="on_change_account_id(account_id)"/>
<field name="name"/>
<field name="unit_amount" on_change="on_change_unit_amount(product_id, unit_amount, product_uom_id)" widget="float_time"/>

View File

@ -29,7 +29,7 @@
Long Term Project management module that track planning, scheduling, resources allocation.
Mainly used with Big project management.
- Project Phases will be maintain by Manager of the project
- Project Phases will be maintained by Manager of the project
- Compute Phase Scheduling: Compute start date and end date of the phases which are in draft,open and pending state of the project given.
If no project given then all the draft,open and pending states phases will be taken
- Compute Task Scheduling: This works same as the scheduler button on project.phase. It takes the project as arguement and computes all the open,draft and pending tasks

Some files were not shown because too many files have changed in this diff Show More