[MERGE] branch merged with lp:openobject-addons

bzr revid: mtr@tinyerp.com-20111007072212-r7z3d7y0g4m9jstm
This commit is contained in:
Meera Trambadia (OpenERP)
2011-10-07 12:52:12 +05:30
241 changed files with 1539 additions and 1488 deletions
+1 -1
View File
@@ -22,7 +22,7 @@
"name" : "Accounting and Financial Management",
"version" : "1.1",
"author" : "OpenERP SA",
"category": 'Finance',
"category": 'Accounting & Finance',
'complexity': "normal",
"description": """
Accounting and Financial Management.
-20
View File
@@ -43,26 +43,6 @@
</field>
</record>
<record id="view_account_modules_installer" model="ir.ui.view">
<field name="name">account.installer.modules.form</field>
<field name="model">base.setup.installer</field>
<field name="type">form</field>
<field name="inherit_id" ref="base_setup.view_base_setup_installer"/>
<field name="arch" type="xml">
<data>
<xpath expr="//group[@name='account_accountant']" position="replace">
<newline/>
<separator string="Accounting &amp; Finance Features" colspan="4"/>
<field name="account_followup"/>
<field name="account_payment"/>
<field name="account_analytic_plans"/>
<field name="account_anglo_saxon"/>
<field name="account_asset"/>
</xpath>
</data>
</field>
</record>
<record id="action_account_configuration_installer" model="ir.actions.act_window">
<field name="name">Install your Chart of Accounts</field>
<field name="type">ir.actions.act_window</field>
+41 -31
View File
@@ -23,8 +23,10 @@ import time
from datetime import datetime
from operator import itemgetter
from lxml import etree
import netsvc
from osv import fields, osv
from osv import fields, osv, orm
from tools.translate import _
import decimal_precision as dp
import tools
@@ -970,7 +972,6 @@ class account_move_line(osv.osv):
fields = {}
flds = []
title = _("Accounting Entries") #self.view_header_get(cr, uid, view_id, view_type, context)
xml = '''<?xml version="1.0"?>\n<tree string="%s" editable="top" refresh="5" on_write="on_create_write" colors="red:state==\'draft\';black:state==\'valid\'">\n\t''' % (title)
ids = journal_pool.search(cr, uid, [])
journals = journal_pool.browse(cr, uid, ids, context=context)
@@ -982,14 +983,14 @@ class account_move_line(osv.osv):
for field in journal.view_id.columns_id:
if not field.field in fields:
fields[field.field] = [journal.id]
fld.append((field.field, field.sequence, field.name))
fld.append((field.field, field.sequence))
flds.append(field.field)
common_fields[field.field] = 1
else:
fields.get(field.field).append(journal.id)
common_fields[field.field] = common_fields[field.field] + 1
fld.append(('period_id', 3, _('Period')))
fld.append(('journal_id', 10, _('Journal')))
fld.append(('period_id', 3))
fld.append(('journal_id', 10))
flds.append('period_id')
flds.append('journal_id')
fields['period_id'] = all_journal
@@ -1001,62 +1002,71 @@ class account_move_line(osv.osv):
'tax_code_id': 50,
'move_id': 40,
}
for field_it in fld:
field = field_it[0]
document = etree.Element('tree', string=title, editable="top",
refresh="5", on_write="on_create_write",
colors="red:state=='draft';black:state=='valid'")
fields_get = self.fields_get(cr, uid, flds, context)
for field, _seq in fld:
if common_fields.get(field) == total:
fields.get(field).append(None)
# if field=='state':
# state = 'colors="red:state==\'draft\'"'
attrs = []
# if field=='state':
# state = 'colors="red:state==\'draft\'"'
f = etree.SubElement(document, 'field', name=field)
if field == 'debit':
attrs.append('sum = "%s"' % _("Total debit"))
f.set('sum', _("Total debit"))
elif field == 'credit':
attrs.append('sum = "%s"' % _("Total credit"))
f.set('sum', _("Total credit"))
elif field == 'move_id':
attrs.append('required = "False"')
f.set('required', 'False')
elif field == 'account_tax_id':
attrs.append('domain="[(\'parent_id\', \'=\' ,False)]"')
attrs.append("context=\"{'journal_id': journal_id}\"")
f.set('domain', "[('parent_id', '=' ,False)]")
f.set('context', "{'journal_id': journal_id}")
elif field == 'account_id' and journal.id:
attrs.append('domain="[(\'journal_id\', \'=\', journal_id),(\'type\',\'&lt;&gt;\',\'view\'), (\'type\',\'&lt;&gt;\',\'closed\')]" on_change="onchange_account_id(account_id, partner_id)"')
f.set('domain', "[('journal_id', '=', journal_id),('type','!=','view'), ('type','!=','closed')]")
f.set('on_change', 'onchange_account_id(account_id, partner_id)')
elif field == 'partner_id':
attrs.append('on_change="onchange_partner_id(move_id, partner_id, account_id, debit, credit, date, journal_id)"')
f.set('on_change', 'onchange_partner_id(move_id, partner_id, account_id, debit, credit, date, journal_id)')
elif field == 'journal_id':
attrs.append("context=\"{'journal_id': journal_id}\"")
f.set('context', "{'journal_id': journal_id}")
elif field == 'statement_id':
attrs.append("domain=\"[('state', '!=', 'confirm'),('journal_id.type', '=', 'bank')]\"")
f.set('domain', "[('state', '!=', 'confirm'),('journal_id.type', '=', 'bank')]")
elif field == 'date':
attrs.append('on_change="onchange_date(date)"')
f.set('on_change', 'onchange_date(date)')
elif field == 'analytic_account_id':
attrs.append('''groups="analytic.group_analytic_accounting"''') # Currently it is not working due to framework problem may be ..
# Currently it is not working due to being executed by superclass's fields_view_get
# f.set('groups', 'analytic.group_analytic_accounting')
pass
if field in ('amount_currency', 'currency_id'):
attrs.append('on_change="onchange_currency(account_id, amount_currency, currency_id, date, journal_id)"')
attrs.append('''attrs="{'readonly': [('state', '=', 'valid')]}"''')
f.set('on_change', 'onchange_currency(account_id, amount_currency, currency_id, date, journal_id)')
f.set('attrs', "{'readonly': [('state', '=', 'valid')]}")
if field in widths:
attrs.append('width="'+str(widths[field])+'"')
f.set('width', str(widths[field]))
if field in ('journal_id',):
attrs.append("invisible=\"context.get('journal_id', False)\"")
f.set("invisible", "context.get('journal_id', False)")
elif field in ('period_id',):
attrs.append("invisible=\"context.get('period_id', False)\"")
f.set("invisible", "context.get('period_id', False)")
else:
attrs.append("invisible=\"context.get('visible_id') not in %s\"" % (fields.get(field)))
xml += '''<field name="%s" %s/>\n''' % (field,' '.join(attrs))
f.set('invisible', "context.get('visible_id') not in %s" % (fields.get(field)))
xml += '''</tree>'''
result['arch'] = xml
result['fields'] = self.fields_get(cr, uid, flds, context)
orm.setup_modifiers(f, fields_get[field], context=context,
in_tree_view=True)
result['arch'] = etree.tostring(document, pretty_print=True)
result['fields'] = fields_get
return result
def _check_moves(self, cr, uid, context=None):
+1 -1
View File
@@ -1196,7 +1196,7 @@
<field name="date"/>
<field name="account_id"/>
<field name="partner_id">
<filter help="Next Partner Entries to reconcile" name="next_partner" string="Next Partner to reconcile" context="{'next_partner_only': 1}" icon="terp-gtk-jump-to-ltr" domain="[('account_id.reconcile','=',True),('reconcile_id','=',False)]"/>
<filter help="Next Partner Entries to reconcile" name="next_partner" context="{'next_partner_only': 1}" icon="terp-gtk-jump-to-ltr" domain="[('account_id.reconcile','=',True),('reconcile_id','=',False)]"/>
</field>
</group>
<newline/>
-22
View File
@@ -224,26 +224,4 @@ class account_installer(osv.osv_memory):
account_installer()
class account_installer_modules(osv.osv_memory):
_inherit = 'base.setup.installer'
_columns = {
'account_analytic_plans': fields.boolean('Multiple Analytic Plans',
help="Allows invoice lines to impact multiple analytic accounts "
"simultaneously."),
'account_payment': fields.boolean('Suppliers Payment Management',
help="Streamlines invoice payment and creates hooks to plug "
"automated payment systems in."),
'account_followup': fields.boolean('Followups Management',
help="Helps you generate reminder letters for unpaid invoices, "
"including multiple levels of reminding and customized "
"per-partner policies."),
'account_anglo_saxon': fields.boolean('Anglo-Saxon Accounting',
help="This module will support the Anglo-Saxons accounting methodology by "
"changing the accounting logic with stock transactions."),
'account_asset': fields.boolean('Assets Management',
help="Helps you to manage your assets and their depreciation entries."),
}
account_installer_modules()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+1 -1
View File
@@ -22,7 +22,7 @@
"name" : "Accountant Access",
"version" : "1.1",
"author" : "OpenERP SA",
"category": 'Finance',
"category": 'Hidden',
'complexity': "normal",
"description": """
Accounting Access Rights.
@@ -23,7 +23,7 @@
{
'name' : 'Analytic Account View',
'version' : '1.1',
'category' : 'Finance',
'category' : 'Hidden',
'complexity': "normal",
'description': """
This module is for modifying account analytic view to show important data to project manager of services companies.
@@ -22,7 +22,7 @@
{
'name' : 'Account Analytic Defaults',
'version' : '1.0',
'category' : 'Finance',
'category' : 'Hidden',
'complexity': "normal",
'description': """Set default values for your analytic accounts
Allows to automatically select analytic accounts based on criterions:
+2 -2
View File
@@ -21,9 +21,9 @@
{
'name' : 'Manage multiple plans in Analytic Accounting',
'name' : 'Multiple Analytic Plans',
'version' : '1.0',
'category' : 'Finance',
'category' : 'Accounting & Finance',
'complexity': "normal",
'description': """
This module allows to use several analytic plans, according to the general journal.
+2 -2
View File
@@ -19,7 +19,7 @@
##############################################################################
{
"name" : "Stock Accounting for Anglo-Saxon countries",
"name" : "Anglo-Saxon Accouting",
"version" : "1.2",
"author" : "OpenERP SA, Veritos",
"website" : "http://tinyerp.com - http://veritos.nl",
@@ -36,7 +36,7 @@ when the invoice is created to transfer this amount to the debtor or creditor ac
Secondly, price differences between actual purchase price and fixed product standard price are booked on a separate account""",
"images" : ["images/account_anglo_saxon.jpeg"],
"depends" : ["product", "purchase"],
"category" : "Warehouse",
"category" : "Accounting & Finance",
"init_xml" : [],
"demo_xml" : [],
"update_xml" : ["product_view.xml",],
+3 -3
View File
@@ -20,16 +20,16 @@
##############################################################################
{
"name" : "Asset management",
"name" : "Assets Management",
"version" : "1.0",
"depends" : ["account"],
"author" : "Tiny",
"author" : "OpenERP S.A.",
"description": """Financial and accounting asset management.
This Module manages the assets owned by a company or an individual. It will keep track of depreciation's occurred on
those assets. And it allows to create Move's of the depreciation lines.
""",
"website" : "http://www.openerp.com",
"category" : "Generic Modules/Accounting",
"category" : "Accounting & Finance",
"init_xml" : [
],
"demo_xml" : [ 'account_asset_demo.xml'
+2 -2
View File
@@ -21,9 +21,9 @@
{
'name': 'Budget Management',
'name': 'Budgets',
'version': '1.0',
'category': 'Finance',
'category': 'Project Management',
'complexity': "normal",
'description': """
This module allows accountants to manage analytic and crossovered budgets.
+1 -1
View File
@@ -23,7 +23,7 @@
"name" : "Cancel Entries",
"version" : "1.1",
"author" : "OpenERP SA",
"category": 'Finance',
"category": 'Hidden',
'complexity': "normal",
"description": """
Allows cancelling accounting entries.
+1 -1
View File
@@ -23,7 +23,7 @@
{
'name': 'Charts of Accounts',
'version': '1.1',
'category': 'Finance',
'category': 'Hidden',
'description': """
Remove minimal account chart.
=============================
+1 -1
View File
@@ -23,7 +23,7 @@
"name" : "Account CODA - import bank statements from coda file",
"version" : "1.0",
"author" : "OpenERP SA",
"category" : "Finance",
"category" : "Hidden",
'complexity': "normal",
"description": """
Module provides functionality to import bank statements from coda files.
+2 -2
View File
@@ -20,9 +20,9 @@
##############################################################################
{
'name': 'Reminders',
'name': 'Followups Management',
'version': '1.0',
'category': 'Finance',
'category': 'Accounting & Finance',
'complexity': "normal",
'description': """
Modules to automate letters for unpaid invoices, with multi-level recalls.
+1 -1
View File
@@ -23,7 +23,7 @@
{
'name': 'Improve Invoice Layout',
'version': '1.0',
'category': 'Finance',
'category': 'Hidden',
'complexity': "easy",
'description': """
This module provides some features to improve the layout of the invoices.
@@ -10,7 +10,7 @@
<field name="type">form</field>
<field name="arch" type="xml">
<field name="name" position="before">
<field name="state" select="1" on_change="onchange_invoice_line_view(state)" />
<field name="state" on_change="onchange_invoice_line_view(state)" />
<field name="sequence"/>
</field>
</field>
@@ -23,6 +23,7 @@
<field name="type">tree</field>
<field name="arch" type="xml">
<xpath expr="/tree/field[@name='name']" position="before">
<field name="state" invisible="1"/>
<field name="sequence" string="Seq."/>
</xpath>
</field>
+2 -2
View File
@@ -20,10 +20,10 @@
##############################################################################
{
"name": "Payment Management",
"name": "Suppliers Payment Management",
"version": "1.1",
"author": "OpenERP SA",
"category": "Finance",
"category": "Accounting & Finance",
'complexity': "easy",
"description": """
Module to manage invoice payment.
+1 -1
View File
@@ -22,7 +22,7 @@
{
'name': 'Entries Sequence Numbering',
'version': '1.1',
'category': 'Finance',
'category': 'Hidden',
'complexity': "easy",
'description': """
This module maintains internal sequence number for accounting entries.
+1 -1
View File
@@ -32,7 +32,7 @@ Account Voucher module includes all the basic requirements of Voucher Entries fo
* Voucher Receipt
* Cheque Register
""",
"category" : "Finance",
"category" : "Hidden",
"website" : "http://tinyerp.com",
"images" : ["images/customer_payment.jpeg","images/journal_voucher.jpeg","images/sales_receipt.jpeg","images/supplier_voucher.jpeg"],
"depends" : ["account"],
+1 -1
View File
@@ -24,7 +24,7 @@
"version": "1.1",
"author" : "OpenERP SA",
"website" : "http://www.openerp.com",
"category" : "Finance",
"category" : "Hidden",
"depends" : ["base", "decimal_precision"],
"description": """
Module for defining analytic accounting object.
@@ -22,7 +22,7 @@
{
'name': 'Analytic Journal Billing Rate, Define the default invoicing rate for a specific journal',
'version': '1.0',
'category': 'Human Resources',
'category': 'Hidden',
'description': """
This module allows you to define what is the default invoicing rate for a specific journal on a given account.
==============================================================================================================
+1 -1
View File
@@ -23,7 +23,7 @@
{
'name': 'Human Resources',
'version': '1.0',
'category': 'Generic Modules/Others',
'category': 'Hidden',
'description': """
This module allows you to define what is the default function of a specific user on a given account.
====================================================================================================
+1 -1
View File
@@ -24,7 +24,7 @@
{
'name': 'Database Anonymization',
'version': '1.0',
'category': 'Tools',
'category': 'Hidden',
'complexity': "easy",
'description': """
This module allows you to anonymize a database.
-1
View File
@@ -18,6 +18,5 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
import profile_association
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+1 -2
View File
@@ -23,8 +23,7 @@
{
'name': 'Association profile',
'version': '0.1',
'category': 'General',
'category': 'Profile',
'category': 'Vertical Applications',
'complexity': "normal",
'description': """
This module is to configure modules related to an association.
-53
View File
@@ -1,53 +0,0 @@
# -*- 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 lxml import etree
from osv import fields, osv
class profile_association_config_install_modules_wizard(osv.osv_memory):
_inherit = 'base.setup.installer'
_columns = {
'hr_expense':fields.boolean('Resources Management: Expenses Tracking', help="Tracks and manages employee expenses, and can "
"automatically re-invoice clients if the expenses are "
"project-related."),
'event_project':fields.boolean('Event Management: Events', help="Helps you to manage and organize your events."),
'project_gtd':fields.boolean('Getting Things Done',
help="GTD is a methodology to efficiently organise yourself and your tasks. This module fully integrates GTD principle with OpenERP's project management."),
'wiki': fields.boolean('Wiki', help="Lets you create wiki pages and page groups in order "
"to keep track of business knowledge and share it with "
"and between your employees."),
}
# Will be removed when rd-v61-al-config-depends will be done
def fields_view_get(self, cr, user, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
res = super(profile_association_config_install_modules_wizard, self).fields_view_get(cr, user, view_id, view_type, context, toolbar=toolbar, submenu=submenu)
doc = etree.XML(res['arch'])
for module in ['project_gtd','hr_expense']:
count = 0
for node in doc.xpath("//field[@name='%s']" % (module)):
count = count + 1
if count > 1:
node.set('invisible', '1')
res['arch'] = etree.tostring(doc)
return res
profile_association_config_install_modules_wizard()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
@@ -1,24 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="view_confirm_install_module_form" model="ir.ui.view">
<field name="name">Association Application Configuration</field>
<field name="model">base.setup.installer</field>
<field name="type">form</field>
<field name="inherit_id" ref="base_setup.view_base_setup_installer"/>
<field name="arch" type="xml">
<data>
<xpath expr="//group[@name='association']" position="replace">
<newline/>
<separator string="Associations Features" colspan="4" />
<field name="project_gtd" />
<field name="wiki" />
<field name="event_project" />
<field name="hr_expense" />
</xpath>
</data>
</field>
</record>
<menuitem
name="Association"
id="base.menu_association"
+1 -1
View File
@@ -23,7 +23,7 @@
{
'name': 'Auction Management',
'version': '1.0',
'category': 'General',
'category': 'Vertical Applications',
'complexity': "normal",
'description': """
This module manages the records of artists, auction articles, buyers and sellers.
+1 -1
View File
@@ -23,7 +23,7 @@
{
'name': 'Audit Trail',
'version': '1.0',
'category': 'Tools',
'category': 'Hidden',
'description': """
This module lets administrator track every user operation on all the objects of the system.
===========================================================================================
+1 -1
View File
@@ -23,7 +23,7 @@
{
'name': 'OpenID',
'version': '2.0',
'category': 'Authentification',
'category': 'Hidden',
'description': """Allow users to login through OpenID.""",
'author': 'OpenERP s.a.',
'maintainer': 'OpenERP s.a.',
+1 -1
View File
@@ -28,7 +28,7 @@ import werkzeug.urls
import werkzeug.exceptions
from openerp.modules.registry import RegistryManager
import web.common.dispatch as openerpweb
import web.common.http as openerpweb
from openid import oidutil
from openid.store import memstore
+1 -3
View File
@@ -22,9 +22,7 @@
{
'name': 'Action Rule',
'version': '1.0',
'category': 'Tools',
'complexity': "expert",
'category': 'Generic Modules/Others',
'category': 'Hidden',
'description': """
This module allows to implement action rules for any object.
============================================================
+1 -1
View File
@@ -34,7 +34,7 @@ It supports:
- Recurring events
- Invitations to people""",
"author" : "OpenERP SA",
'category': 'Tools',
'category': 'Hidden',
'website': 'http://www.openerp.com',
"init_xml" : [
'base_calendar_data.xml'
+1 -1
View File
@@ -23,7 +23,7 @@
{
'name': 'Base Contact',
'version': '1.0',
'category': 'Tools',
'category': 'Hidden',
'complexity': "expert",
'description': """
This module allows you to manage your contacts entirely.
+1 -1
View File
@@ -24,7 +24,7 @@
"author" : ['OpenERP SA', "FS3"],
"maintainer" : "OpenERP SA",
"website" : "http://www.openerp.com",
"category" : "Tools",
"category" : "Hidden",
'complexity': "easy",
"description": """
Replaces cleartext passwords in the database with a secure hash
+25 -8
View File
@@ -8,19 +8,19 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-06-06 18:09+0000\n"
"Last-Translator: doingit.cl <Unknown>\n"
"PO-Revision-Date: 2011-10-03 17:17+0000\n"
"Last-Translator: David Acevedo Toledo <Unknown>\n"
"Language-Team: Spanish (Chile) <es_CL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-09-05 05:58+0000\n"
"X-Generator: Launchpad (build 13830)\n"
"X-Launchpad-Export-Date: 2011-10-04 05:02+0000\n"
"X-Generator: Launchpad (build 14071)\n"
#. module: base_crypt
#: sql_constraint:res.users:0
msgid "You can not have two users with the same login !"
msgstr ""
msgstr "¡No puede tener dos usuarios con el mismo nombre!"
#. module: base_crypt
#: model:ir.model,name:base_crypt.model_res_users
@@ -31,18 +31,19 @@ msgstr "res.users"
#: constraint:res.users:0
msgid "The chosen company is not in the allowed companies for this user"
msgstr ""
"La compañía seleccionada no está autorizada como compañía para este usuario"
"La compañía seleccionada no está dentro de las compañías autorizadas para "
"este usuario"
#. module: base_crypt
#: code:addons/base_crypt/crypt.py:132
#, python-format
msgid "Please specify the password !"
msgstr ""
msgstr "¡Por favor, escriba una contraseña!"
#. module: base_crypt
#: model:ir.module.module,shortdesc:base_crypt.module_meta_information
msgid "Base - Password Encryption"
msgstr ""
msgstr "Base - Encriptación de la Contraseña"
#. module: base_crypt
#: code:addons/base_crypt/crypt.py:132
@@ -70,3 +71,19 @@ msgid ""
"unless you are using a secure protocol such as XML-RPCS.\n"
" "
msgstr ""
"Este módulo sustituye la contraseña escrita en texto plano por una "
"codificada,\n"
"previniendo que alguien pueda leer la contraseña original.\n"
"Para un usuario existente, el sustitución de la contraseña en texto plano se "
"realiza la primera vez\n"
"que el usuario se conecte después de instalar base_crypt.\n"
"Después de instalar este módulo los usuarios no podrán recuperar su "
"contraseña olvidada,\n"
"un administrador tendrá que cambiarla por una nueva.\n"
"\n"
"Nota: instalar este módulo no significa que pueda ignorar las medidas "
"básicas de seguridad,\n"
"como la contraseña que es enviada por el cliente que sigue sin ser "
"codificada en la red,\n"
"a menos que utilice un protocolo seguro como XML-RPCS.\n"
" "
+85
View File
@@ -0,0 +1,85 @@
# Serbian Latin translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-10-05 13:25+0000\n"
"Last-Translator: Milan Milosevic <Unknown>\n"
"Language-Team: Serbian Latin <sr@latin@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-10-06 04:36+0000\n"
"X-Generator: Launchpad (build 14085)\n"
#. module: base_crypt
#: sql_constraint:res.users:0
msgid "You can not have two users with the same login !"
msgstr "Ne možete imati dva korisnika sa istom prijavom!"
#. module: base_crypt
#: model:ir.model,name:base_crypt.model_res_users
msgid "res.users"
msgstr "res.users"
#. module: base_crypt
#: constraint:res.users:0
msgid "The chosen company is not in the allowed companies for this user"
msgstr "Odabrana firma nije u dozvoljena firmama za ovog korisnika"
#. module: base_crypt
#: code:addons/base_crypt/crypt.py:132
#, python-format
msgid "Please specify the password !"
msgstr "Molimo odredite lozinku"
#. module: base_crypt
#: model:ir.module.module,shortdesc:base_crypt.module_meta_information
msgid "Base - Password Encryption"
msgstr "Baza - Šifrovanje lozinke"
#. module: base_crypt
#: code:addons/base_crypt/crypt.py:132
#, python-format
msgid "Error"
msgstr "Greška"
#. module: base_crypt
#: model:ir.module.module,description:base_crypt.module_meta_information
msgid ""
"This module replaces the cleartext password in the database with a password "
"hash,\n"
"preventing anyone from reading the original password.\n"
"For your existing user base, the removal of the cleartext passwords occurs "
"the first time\n"
"a user logs into the database, after installing base_crypt.\n"
"After installing this module it won't be possible to recover a forgotten "
"password for your\n"
"users, the only solution is for an admin to set a new password.\n"
"\n"
"Note: installing this module does not mean you can ignore basic security "
"measures,\n"
"as the password is still transmitted unencrypted on the network (by the "
"client),\n"
"unless you are using a secure protocol such as XML-RPCS.\n"
" "
msgstr ""
"Ovaj modul zamenjuje vidljivu lozinku u bazi podataka znacima,\n"
"što onemogućava bilo koga da pročita originalnu lozinku.\n"
"Što se tiče Vaše baze podataka, ukidanje vidljive lozinke dešava se prvi put "
"pošto se korisnik prijavi u bazu podataka, po instalaciji base_crypt.\n"
"Po instalaciji ovog modula neće biti moguće izmeniti zaboravljenu lozinku za "
"Vaše korisnike, jedino rešenje će biti da im administrator postavi novu "
"lozinku.\n"
"\n"
"Beleška: Instaliranje ovog modula ne znači da možete ignorisati osnovne "
"sigurnosne mere,\n"
"budući da se lozinka i dalje prenosi nešifrovana u mreži (od strane "
"klijenta),\n"
"ukoliko ne koristite siguran protokol kao XML-RPCS.\n"
" "
+1 -1
View File
@@ -21,7 +21,7 @@
{
'name': 'Create IBAN bank accounts',
'version': '1.0',
'category': 'Finance',
'category': 'Hidden',
'complexity': "easy",
'description': """
This module installs the base for IBAN (International Bank Account Number) bank accounts and checks for its validity.
+15 -10
View File
@@ -8,19 +8,19 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2010-12-23 15:48+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"PO-Revision-Date: 2011-10-05 13:32+0000\n"
"Last-Translator: Milan Milosevic <Unknown>\n"
"Language-Team: Serbian latin <sr@latin@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-09-05 04:58+0000\n"
"X-Generator: Launchpad (build 13830)\n"
"X-Launchpad-Export-Date: 2011-10-06 04:36+0000\n"
"X-Generator: Launchpad (build 14085)\n"
#. module: base_iban
#: model:ir.module.module,shortdesc:base_iban.module_meta_information
msgid "Create IBAN bank accounts"
msgstr "Kreiraj IBAN nalog banke"
msgstr "Napravi IBAN nalog banke"
#. module: base_iban
#: code:addons/base_iban/base_iban.py:120
@@ -28,7 +28,7 @@ msgstr "Kreiraj IBAN nalog banke"
msgid ""
"The IBAN does not seems to be correct. You should have entered something "
"like this %s"
msgstr "IBAN izgleda da nije ispravan. TRebas uneti nesto nalik na %s"
msgstr "IBAN izgleda da nije ispravan. Trebalo je uneti nešto kao %s"
#. module: base_iban
#: model:res.partner.bank.type.field,name:base_iban.bank_zip_field
@@ -43,7 +43,7 @@ msgstr "Međunarodni broj Bankovnog računa"
#. module: base_iban
#: model:ir.model,name:base_iban.model_res_partner_bank
msgid "Bank Accounts"
msgstr "Bankovni Računi"
msgstr "Bankovni računi"
#. module: base_iban
#: model:res.partner.bank.type.field,name:base_iban.bank_country_field
@@ -64,7 +64,7 @@ msgstr "iban"
#: code:addons/base_iban/base_iban.py:121
#, python-format
msgid "The IBAN is invalid, It should begin with the country code"
msgstr "IBAN je neispravan, trebalo bi da pocinje sa kodom zemlje"
msgstr "IBAN je neispravan, trebalo bi da počinje sa kodom zemlje"
#. module: base_iban
#: field:res.partner.bank,iban:0
@@ -74,7 +74,7 @@ msgstr "IBAN"
#. module: base_iban
#: model:res.partner.bank.type,name:base_iban.bank_iban
msgid "IBAN Account"
msgstr "IBAN konto"
msgstr "IBAN račun"
#. module: base_iban
#: model:ir.module.module,description:base_iban.module_meta_information
@@ -85,11 +85,16 @@ msgid ""
"\n"
" "
msgstr ""
"\n"
"Ovaj modul instalira bazu za IBAN (Međunarodni broj bankovnog računa) "
"bankovne račune i proverava im validnost.\n"
"\n"
" "
#. module: base_iban
#: model:res.partner.bank.type.field,name:base_iban.bank_acc_number_field
msgid "acc_number"
msgstr "Broj konta"
msgstr "acc_number"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "Nevažeći XML za pregled arhitekture"
+1 -1
View File
@@ -22,7 +22,7 @@
{
'name': 'Module Technical Guide in Restructured Text ',
'version': '1.0',
'category': 'Tools',
'category': 'Hidden',
'description': """
This module generates the Technical Guides of selected modules in Restructured Text format (RST).
=================================================================================================
+1 -1
View File
@@ -23,7 +23,7 @@
{
'name': 'Base module quality - To check the quality of other modules' ,
'version': '1.0',
'category': 'Tools',
'category': 'Hidden',
'description': """
The aim of this module is to check the quality of other modules.
================================================================
+1 -1
View File
@@ -23,7 +23,7 @@
{
'name': 'Module Record',
'version': '1.0',
'category': 'Tools',
'category': 'Hidden',
'description': """
This module allows you to create a new module without any development.
======================================================================
+56 -36
View File
@@ -8,24 +8,24 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2010-12-23 10:53+0000\n"
"Last-Translator: qdp (OpenERP) <qdp-launchpad@tinyerp.com>\n"
"PO-Revision-Date: 2011-10-05 13:53+0000\n"
"Last-Translator: Milan Milosevic <Unknown>\n"
"Language-Team: Serbian <sr@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-09-05 05:10+0000\n"
"X-Generator: Launchpad (build 13830)\n"
"X-Launchpad-Export-Date: 2011-10-06 04:36+0000\n"
"X-Generator: Launchpad (build 14085)\n"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_objects,info,category:0
msgid "Category"
msgstr "Категорија"
msgstr "Kategorija"
#. module: base_module_record
#: wizard_view:base_module_record.module_record_objects,save:0
msgid "Information"
msgstr "Informacija"
msgstr "Informacije"
#. module: base_module_record
#: wizard_view:base_module_record.module_record_objects,save:0
@@ -34,9 +34,9 @@ msgid ""
"publish it on OpenERP.com, in the 'Modules' section. You can do it through "
"the website or using features of the 'base_module_publish' module."
msgstr ""
"Ako mislite da vas modul moze zainteresovati i druge ljude, mozete ga "
"publikovati na OpenERP.com u sekciji 'Moduli'. To mozete uciniti preko "
"websajta ili koristeci mogucnosti modula 'base_module_publish' ."
"Ako mislite da Vaš modul može zainteresovati i druge ljude, Voleli bismo da "
"ga objabvite na OpenERP.com u sekciji 'Moduli'. To možete učiniti preko "
"vebsajta ili koristeći mogućnosti modula 'base_module_publish' ."
#. module: base_module_record
#: wizard_button:base_module_record.module_record_data,info,end:0
@@ -48,7 +48,7 @@ msgstr "Kraj"
#: wizard_view:base_module_record.module_record_data,init:0
#: wizard_view:base_module_record.module_record_objects,init:0
msgid "Choose objects to record"
msgstr "Izaberi objekat za cuvanje"
msgstr "Izaberi stavke za čuvanje"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_objects,info,author:0
@@ -58,13 +58,13 @@ msgstr "Autor"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_objects,info,directory_name:0
msgid "Directory Name"
msgstr "Ime Direktorijuma"
msgstr "Ime fascikle"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_data,init,filter_cond:0
#: wizard_field:base_module_record.module_record_objects,init,filter_cond:0
msgid "Records only"
msgstr "Samo Zapisi"
msgstr "Samo zapisi"
#. module: base_module_record
#: model:ir.model,name:base_module_record.model_ir_module_record
@@ -74,12 +74,12 @@ msgstr "ir.module.record"
#. module: base_module_record
#: selection:base_module_record.module_record_objects,info,data_kind:0
msgid "Demo Data"
msgstr "Demo Podaci"
msgstr "Demo podaci"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_objects,save,module_filename:0
msgid "Filename"
msgstr "Ime Fajla"
msgstr "Ime datoteke"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_objects,info,version:0
@@ -92,7 +92,7 @@ msgstr "Verzija"
#: wizard_view:base_module_record.module_record_data,save_yaml:0
#: wizard_view:base_module_record.module_record_objects,init:0
msgid "Objects Recording"
msgstr "Objekti se Snimaju"
msgstr "Zapisi stavki"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_data,init,check_date:0
@@ -107,29 +107,29 @@ msgstr "Zapis od Datuma"
#: wizard_view:base_module_record.module_record_objects,save:0
#: wizard_view:base_module_record.module_record_objects,save_yaml:0
msgid "Module Recording"
msgstr "Snimanje Modula"
msgstr "Zapisivanje modula"
#. module: base_module_record
#: model:ir.actions.wizard,name:base_module_record.wizard_base_module_record_objects
#: model:ir.ui.menu,name:base_module_record.menu_wizard_base_module_record_objects
msgid "Export Customizations As a Module"
msgstr "Izvezi Podesavanja kao Modul"
msgstr "Izvezi podešavanja kao modul"
#. module: base_module_record
#: wizard_view:base_module_record.module_record_objects,save:0
msgid "Thanks in advance for your contribution."
msgstr "Hvala unaprijed na Vašem Doprinosu"
msgstr "Hvala unapred na Vašem doprinosu"
#. module: base_module_record
#: help:base_module_record.module_record_data,init,objects:0
#: help:base_module_record.module_record_objects,init,objects:0
msgid "List of objects to be recorded"
msgstr "Lista Objekata za zapis"
msgstr "Spisak stavki za zapis"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_objects,info,description:0
msgid "Full Description"
msgstr "Puni Opis"
msgstr "Puni opis"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_objects,info,name:0
@@ -140,63 +140,63 @@ msgstr "Naziv Modula"
#: wizard_field:base_module_record.module_record_data,init,objects:0
#: wizard_field:base_module_record.module_record_objects,init,objects:0
msgid "Objects"
msgstr "Objekti"
msgstr "Stavka"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_objects,save,module_file:0
#: wizard_field:base_module_record.module_record_objects,save_yaml,yaml_file:0
msgid "Module .zip File"
msgstr ".zip datoteka Modula"
msgstr ".zip datoteka modula"
#. module: base_module_record
#: wizard_view:base_module_record.module_record_objects,save:0
msgid "Module successfully created !"
msgstr "Modul uspješno kreiran !"
msgstr "Modul uspešno napravljen !"
#. module: base_module_record
#: wizard_view:base_module_record.module_record_objects,save_yaml:0
msgid "YAML file successfully created !"
msgstr "YAML fajl je uspesno kreiran !"
msgstr "YAML datoteka uspešno napravljena !"
#. module: base_module_record
#: wizard_view:base_module_record.module_record_data,info:0
#: wizard_view:base_module_record.module_record_data,save_yaml:0
msgid "Result, paste this to your module's xml"
msgstr "Rezultat, zalepi ovo u tvoj xml modul"
msgstr "Rezultat, zalepite ovo u Vaš xml modul"
#. module: base_module_record
#: selection:base_module_record.module_record_data,init,filter_cond:0
#: selection:base_module_record.module_record_objects,init,filter_cond:0
msgid "Created"
msgstr "Kreirano"
msgstr "Napravljeno"
#. module: base_module_record
#: wizard_view:base_module_record.module_record_data,end:0
#: wizard_view:base_module_record.module_record_objects,end:0
msgid "Thanks For using Module Recorder"
msgstr "Hvala što ste koristili Snimač Modula"
msgstr "Hvala što ste koristili Zapisivač modula"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_objects,info,website:0
msgid "Documentation URL"
msgstr "URL Dokumentacije"
msgstr "URL Dokumentacija"
#. module: base_module_record
#: selection:base_module_record.module_record_data,init,filter_cond:0
#: selection:base_module_record.module_record_objects,init,filter_cond:0
msgid "Modified"
msgstr "Izmenjen"
msgstr "Izmenjeno"
#. module: base_module_record
#: wizard_button:base_module_record.module_record_data,init,record:0
#: wizard_button:base_module_record.module_record_objects,init,record:0
msgid "Record"
msgstr "Snima"
msgstr "Zapis"
#. module: base_module_record
#: model:ir.module.module,shortdesc:base_module_record.module_meta_information
msgid "Module Record"
msgstr "Snimanje Modula"
msgstr "Zapisivanje modula"
#. module: base_module_record
#: wizard_button:base_module_record.module_record_objects,info,save:0
@@ -207,13 +207,13 @@ msgstr "Nastavi"
#: model:ir.actions.wizard,name:base_module_record.wizard_base_module_record_data
#: model:ir.ui.menu,name:base_module_record.menu_wizard_base_module_record_data
msgid "Export Customizations As Data File"
msgstr "Eksportuj POdesavanja kao Data fajl"
msgstr "Izvezi podešavanja kao data datoteku"
#. module: base_module_record
#: code:addons/base_module_record/wizard/base_module_save.py:129
#, python-format
msgid "Error"
msgstr "Greska"
msgstr "Greška"
#. module: base_module_record
#: selection:base_module_record.module_record_objects,info,data_kind:0
@@ -224,12 +224,12 @@ msgstr "Obični podaci"
#: wizard_button:base_module_record.module_record_data,end,end:0
#: wizard_button:base_module_record.module_record_objects,end,end:0
msgid "OK"
msgstr "U redu"
msgstr "OK"
#. module: base_module_record
#: model:ir.ui.menu,name:base_module_record.menu_wizard_base_mod_rec
msgid "Module Creation"
msgstr "Kreacija Modula"
msgstr "Pravljenje Modula"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_objects,info,data_kind:0
@@ -239,7 +239,7 @@ msgstr "Tip Podataka"
#. module: base_module_record
#: wizard_view:base_module_record.module_record_objects,info:0
msgid "Module Information"
msgstr "Informacija o Modulu"
msgstr "Informacija o modulu"
#. module: base_module_record
#: wizard_field:base_module_record.module_record_data,init,info_yaml:0
@@ -296,6 +296,26 @@ msgid ""
"module.\n"
" "
msgstr ""
"\n"
"Ovaj modul omogućava da napravite novi modul bez ikakvog razvoja.\n"
"Zapisuje sve operacije na stavkama za vreme sesija zapisivanaj i\n"
"pravi .ZIP modul. Tako da možete napraviti sopstvene module direknto iz\n"
"OpenERP klijenta.\n"
"\n"
"Ova verzija radi za pravljenje i izmenu postojećih zapisa. Iznova "
"obračunava\n"
"međuzavisnosti i veze između svih tipova vidžeta (man2one, many2many, ...).\n"
"\n"
"Ovo bi trebalo da Vam pomogne da lako pravite ponovo upotrebljive module, "
"koje možete ponovo objaviti,\n"
"za korisnička podešavanja i demo/testiranje podataka.\n"
"\n"
"Kako ga koristiti:\n"
"Pokrenite Administration/Customization/Module Creation/Export Customizations "
"kao pomoćni modul.\n"
"Izaberite datum i vreme kao kriterijume za zapis i stavke za zapis i "
"zapišite modul.\n"
" "
#~ msgid ""
#~ "The Object name must start with x_ and not contain any special character !"
+2 -2
View File
@@ -21,9 +21,9 @@
{
'name': 'Statistical Report Creator',
'name': 'Query Builder',
'version': '1.0',
'category': 'Tools',
'category': 'Advanced Reporting',
'complexity': "expert",
'description': """
This module allows you to create any statistic report on several objects.
+2 -2
View File
@@ -21,9 +21,9 @@
{
'name': 'OpenOffice Report Designer Interface',
'name': 'OpenOffice Report Designer',
'version': '0.1',
'category': 'Tools',
'category': 'Advanced Reporting',
'complexity': "normal",
'description': """
This module is used along with OpenERP OpenOffice Plugin.
+1 -1
View File
@@ -23,7 +23,7 @@
{
'name': 'Base Setup',
'version': '1.0',
'category': 'Tools',
'category': 'Hidden',
'complexity': "easy",
'description': """
This module helps to configure the system at the installation of a new database.
+277 -101
View File
@@ -20,123 +20,300 @@
##############################################################################
import pytz
import simplejson
import cgi
import pooler
import tools
from osv import fields, osv
from tools.translate import _
from lxml import etree
#Application and feature chooser, this could be done by introspecting ir.modules
DEFAULT_MODULES = {
'Customer Relationship Management' : ['crm',],
'Sales Management' : ['sale',],
'Project Management' : ['project',],
'Knowledge Management' : ['document',],
'Warehouse Management' : ['stock',],
'Manufacturing' : ['mrp', 'procurement'],
'Accounting & Finance' : ['account'],
'Purchase Management' : ['purchase'],
'Human Resources' : ['hr',],
'Point of Sales' : ['pos',],
'Marketing' : ['marketing',],
}
class base_setup_installer(osv.osv_memory):
_name = 'base.setup.installer'
_inherit = 'res.config.installer'
_install_if = {
('sale','crm'): ['sale_crm'],
('sale','project'): ['project_mrp'],
}
_columns = {
# Generic modules
'crm':fields.boolean('Customer Relationship Management',
help="Helps you track and manage relations with customers such as"
" leads, requests or issues. Can automatically send "
"reminders, escalate requests or trigger business-specific "
"actions based on standard events."),
'sale':fields.boolean('Sales Management',
help="Helps you handle your quotations, sale orders and invoicing"
"."),
'project':fields.boolean('Project Management',
help="Helps you manage your projects and tasks by tracking them, "
"generating plannings, etc..."),
'knowledge':fields.boolean('Knowledge Management',
help="Lets you install addons geared towards sharing knowledge "
"with and between your employees."),
'stock':fields.boolean('Warehouse Management',
help="Helps you manage your inventory and main stock operations: delivery orders, receptions, etc."),
'mrp':fields.boolean('Manufacturing',
help="Helps you manage your manufacturing processes and generate "
"reports on those processes."),
'account_voucher':fields.boolean('Invoicing & Payments',
help="Allows you to create your invoices and track the payments. It is an easier version of the accounting module for managers who are not accountants."),
'account_accountant':fields.boolean('Accounting & Finance',
help="Helps you handle your accounting needs, if you are not an accountant, we suggest you to install only the Invoicing "),
'purchase':fields.boolean('Purchase Management',
help="Helps you manage your purchase-related processes such as "
"requests for quotations, supplier invoices, etc..."),
'hr':fields.boolean('Human Resources',
help="Helps you manage your human resources by encoding your employees structure, generating work sheets, tracking attendance and more."),
'point_of_sale':fields.boolean('Point of Sales',
help="Helps you get the most out of your points of sales with "
"fast sale encoding, simplified payment mode encoding, "
"automatic picking lists generation and more."),
'marketing':fields.boolean('Marketing',
help="Helps you manage your marketing campaigns step by step."),
'profile_tools':fields.boolean('Extra Tools',
help="Lets you install various interesting but non-essential tools "
"like Survey, Lunch and Ideas box."),
'report_designer':fields.boolean('Advanced Reporting',
help="Lets you install various tools to simplify and enhance "
"OpenERP's report creation."),
# Vertical modules
'product_expiry':fields.boolean('Food Industry',
help="Installs a preselected set of OpenERP applications "
"which will help you manage your industry."),
'association':fields.boolean('Associations',
help="Installs a preselected set of OpenERP "
"applications which will help you manage your association "
"more efficiently."),
'auction':fields.boolean('Auction Houses',
help="Installs a preselected set of OpenERP "
"applications selected to help you manage your auctions "
"as well as the business processes around them."),
'selection' : fields.text('Selection'),
}
def fields_get(self, cr, uid, fields=None, context=None):
if context is None:
context = {}
if fields is None:
fields = {}
fields = {}
category_proxy = self.pool.get('ir.module.category')
domain = [('parent_id', '=', False),
('name', '!=', 'Uncategorized'),
('visible', '=', True)]
category_ids = category_proxy.search(cr, uid, domain, context=context)
for category in category_proxy.browse(cr, uid, category_ids, context=context):
category_name = 'category_%d' % (category.id,)
fields[category_name] = {
'type' : 'boolean',
'string' : category.name,
'name' : category_name,
'help' : category.description,
}
module_proxy = self.pool.get('ir.module.module')
module_ids = module_proxy.search(cr, uid, [], context=context)
for module in module_proxy.browse(cr, uid, module_ids, context=context):
module_name = 'module_%d' % (module.id,)
module_is_installed = module.state == 'installed'
fields[module_name] = {
'type' : 'boolean',
'string' : module.shortdesc,
'name' : module_name,
'help' : module.description,
}
return fields
def default_get(self, cr, uid, fields=None, context=None):
if context is None:
context = {}
if fields is None:
fields = {}
result = {}
if 'dont_compute_virtual_attributes' not in context:
module_proxy = self.pool.get('ir.module.module')
module_ids = module_proxy.search(cr, uid, [], context=context)
for module in module_proxy.browse(cr, uid, module_ids, context=context):
result['module_%d' % (module.id,)] = module.state == 'installed'
cat_proxy = self.pool.get('ir.module.category')
cat_ids = cat_proxy.search(cr, uid, [], context=context)
for cat in cat_proxy.browse(cr, uid, cat_ids, context=context):
m = DEFAULT_MODULES.get(cat.name,[])
r = module_proxy.search(cr, uid, [('state','=','installed'),('name','in',m)])
result['category_%d' % (cat.id,)] = bool(r)
return result
def fields_view_get(self, cr, uid, view_id=None, view_type='from', context=None, toolbar=False, submenu=False):
def in_extended_view_group(cr, uid, context=None):
try:
model, group_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'base', 'group_extended')
except ValueError:
return False
return group_id in self.pool.get('res.users').read(cr, uid, uid, ['groups_id'], context=context)['groups_id']
result = super(base_setup_installer, self).fields_view_get(cr, uid, view_id, view_type, context, toolbar, submenu)
module_category_proxy = self.pool.get('ir.module.category')
domain = [('parent_id', '=', False),
('name', '!=', 'Uncategorized'),
('visible', '=', True)]
module_category_ids = module_category_proxy.search(cr, uid, domain, context=context, order='sequence asc')
arch = ['<form string="%s">' % _('Automatic Base Setup')]
arch.append('<separator string="%s" colspan="4" />' % _('Install Applications'))
module_proxy = self.pool.get('ir.module.module')
extended_view = in_extended_view_group(cr, uid, context=context)
for module_category in module_category_proxy.browse(cr, uid, module_category_ids, context=context):
domain = [('category_id', '=', module_category.id)]
if not extended_view:
domain.append(('complexity', '!=', 'expert'))
modules = module_proxy.browse(cr, uid, module_proxy.search(cr, uid, domain, context=context), context=context)
if not modules:
continue
m = DEFAULT_MODULES.get(module_category.name, [])
r = module_proxy.search(cr, uid, [('state', '=', 'installed'),('name', 'in', m)], context=context)
readonly = bool(r)
attributes = {
'name' : 'category_%d' % (module_category.id,),
'on_change' : 'on_change_%s_%d(category_%d)' % ('category', module_category.id, module_category.id,),
}
if readonly:
attributes['modifiers'] = simplejson.dumps({'readonly' : True})
arch.append("""<field %s />""" % (" ".join(["%s='%s'" % (key, value,)
for key, value in attributes.iteritems()]),))
# Compute the modules to show
for module_category in module_category_proxy.browse(cr, uid, module_category_ids, context=context):
domain = [('category_id', '=', module_category.id)]
if not extended_view:
domain.append(('complexity', '!=', 'expert'))
default_modules = DEFAULT_MODULES.get(module_category.name, False)
if default_modules:
domain.append(('name', 'not in', default_modules))
modules = module_proxy.browse(cr, uid, module_proxy.search(cr, uid, domain, context=context), context=context)
if not modules:
continue
modifiers = {
'invisible' : [('category_%d' % (module_category.id), '=', False)],
}
module_modifiers = dict(modifiers)
arch.append("""<separator string="%s Features" colspan="4" modifiers='%s'/>""" % (
cgi.escape(module_category.name),
simplejson.dumps(modifiers))
)
for module in modules:
#module_modifiers['readonly'] = module.state == 'installed'
arch.append("""<field name="module_%d" modifiers='%s' />""" % (
module.id,
simplejson.dumps(module_modifiers))
)
arch.append(
'<separator colspan="4" />'
'<group colspan="4" col="2">'
'<button special="cancel" string="Cancel" icon="gtk-cancel" />'
'<button string="Install Modules" type="object" name="apply_cb" icon="gtk-apply" />'
'</group>'
)
arch.append('</form>')
result['arch'] = ''.join(arch)
return result
def __getattr__(self, name):
if name.startswith('on_change_category_'):
def proxy(cr, uid, ids, value, context=None):
item = 'category_%s' % name[len('on_change_category_'):]
return self._on_change_selection(cr, uid, ids, item, value, context=context)
return proxy
return getattr(super(base_setup_installer, self), name)
def _on_change_selection(self, cr, uid, ids, item, value, context=None):
if not isinstance(item, basestring) or not value:
return {}
if item.startswith('category_') or item.startswith('module_'):
object_name, identifier = item.split('_')
else:
return {}
values = {
}
def _if_knowledge(self, cr, uid, ids, context=None):
if self.pool.get('res.users').browse(cr, uid, uid, context=context)\
.view == 'simple':
return ['document_ftp']
return None
#if object_name == 'category':
# module_ids = self.pool.get('ir.module.module').search(cr, uid, [('category_id', '=', int(identifier))], context=context)
# for module_id in module_ids:
# values['module_%d' % module_id] = 1
def _if_misc_tools(self, cr, uid, ids, context=None):
return ['profile_tools']
return {'value': values}
def onchange_moduleselection(self, cr, uid, ids, *args, **kargs):
value = {}
# Calculate progress
closed, total = self.get_current_progress(cr, uid)
progress = round(100. * closed / (total + len(filter(None, args))))
value.update({'progress':progress})
if progress < 10.:
progress = 10.
return {'value':value}
def create(self, cr, uid, values, context=None):
to_install = {'categories' : [], 'modules' : []}
for key, value in values.iteritems():
if value == 1 and (key.startswith('module_') or key.startswith('category_')):
kind, identifier = key.split('_')
if kind == 'category':
to_install['categories'].append(long(identifier))
if kind == 'module':
to_install['modules'].append(long(identifier))
values = {
'selection' : simplejson.dumps(to_install),
}
context.update(dont_compute_virtual_attributes=True)
return super(base_setup_installer, self).create(cr, uid, values, context=context)
def apply_cb(self, cr, uid, ids, context=None):
category_proxy = self.pool.get('ir.module.category')
for installer in self.browse(cr, uid, ids, context=context):
to_install = simplejson.loads(installer.selection)
proxy = self.pool.get('ir.module.module')
module_ids = proxy.search(cr, uid, [('id', 'in', to_install['modules'])], context=context)
modules = set(record['name']
for record in proxy.read(cr, uid, module_ids, ['name'], context=context))
category_ids = category_proxy.search(cr, uid, [('id', 'in', to_install['categories'])], context=context)
selected_categories = set(record['name']
for record in category_proxy.read(cr, uid, category_ids, ['name'], context=context))
# FIXME: Use a workaround, but can do better
for category_name, default_modules in DEFAULT_MODULES.iteritems():
if category_name in selected_categories:
modules.update(default_modules)
# Special Cases:
# * project_mrp: the dependencies are sale, project, procurement, mrp_jit
if 'sale' in modules and 'project' in modules:
modules.add('project_mrp')
need_update = False
module_ids = proxy.search(cr, uid, [('name', 'in', list(modules))], context=context)
if module_ids:
proxy.state_update(cr, uid, module_ids, 'to install', ['uninstalled'], context=context)
need_update = True
category_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'base', 'module_category_hidden_link')
while True and category_id:
cr.execute("select id, name from ir_module_module m where category_id = %s \
and (select count(d.id) from ir_module_module_dependency d \
where d.module_id = m.id) = (select count(d.id) from \
ir_module_module_dependency d inner join ir_module_module m2 on d.name = m2.name \
where d.module_id=m.id and m2.state in %s ) and state = %s",
(category_id[1], ('installed', 'to install', 'to upgrade', ), 'uninstalled',))
inner_modules = [name for _, name in cr.fetchall()]
module_ids = proxy.search(cr, uid, [('name', 'in', inner_modules)], context=context)
if not module_ids:
break
modules.update(inner_modules)
proxy.state_update(cr, uid, module_ids, 'to install', ['uninstalled'], context=context)
need_update = True
def execute(self, cr, uid, ids, context=None):
module_pool = self.pool.get('ir.module.module')
modules_selected = []
datas = self.read(cr, uid, ids, context=context)[0]
for mod in datas.keys():
if mod in ('id', 'progress'):
continue
if datas[mod] == 1:
modules_selected.append(mod)
module_ids = module_pool.search(cr, uid, [('name', 'in', modules_selected)], context=context)
need_install = False
for module in module_pool.browse(cr, uid, module_ids, context=context):
if module.state == 'uninstalled':
module_pool.state_update(cr, uid, [module.id], 'to install', ['uninstalled'], context)
need_install = True
cr.commit()
elif module.state == 'installed':
domain = [('name', 'in', list(modules)),
('state', '=', 'installed')]
for module in proxy.browse(cr, uid, proxy.search(cr, uid, domain, context=context), context):
cr.execute("update ir_actions_todo set state='open' \
from ir_model_data as data where data.res_id = ir_actions_todo.id \
and ir_actions_todo.type='special'\
and data.model = 'ir.actions.todo' and data.module=%s", (module.name, ))
if need_install:
self.pool = pooler.restart_pool(cr.dbname, update_module=True)[1]
return
from ir_model_data as data where data.res_id = ir_actions_todo.id \
and ir_actions_todo.type='special'\
and data.model = 'ir.actions.todo' and data.module=%s", (module.name, ))
if need_update:
cr.commit()
self.pool = pooler.restart_pool(cr.dbname, update_module=True)[1]
if 'html' in context:
return {'type' : 'ir.actions.reload'}
else:
return {'type' : 'ir.actions.act_window_close'}
#Migrate data from another application Conf wiz
@@ -158,11 +335,10 @@ class product_installer(osv.osv_memory):
_name = 'product.installer'
_inherit = 'res.config'
_columns = {
'customers': fields.selection([('create','Create'), ('import','Import')], 'Customers', size=32, required=True, help="Import or create customers"),
'customers': fields.selection([('create','Create'), ('import','Import')], 'Customers', size=32, required=True, help="Import or create customers"),
}
_defaults = {
'customers': 'create',
'customers': 'create',
}
def execute(self, cr, uid, ids, context=None):
+27 -79
View File
@@ -1,87 +1,35 @@
<openerp>
<data>
<record id="view_base_setup_installer" model="ir.ui.view">
<field name="name">base.setup.installer.view</field>
<field name="model">base.setup.installer</field>
<field name="type">form</field>
<field name="inherit_id" ref="base.res_config_installer"/>
<field name="arch" type="xml">
<data>
<form position="attributes">
<attribute name="string">Install Applications</attribute>
</form>
<xpath expr="//label[@string='description']" position="attributes">
<attribute name="string">Select the Applications you want your system to cover. If you are not sure about your exact needs at this stage, you can easily install them later.</attribute>
</xpath>
<xpath expr="//separator[@string=&quot;vsep&quot;]" position="attributes">
<attribute name="string"/>
<attribute name="rowspan">15</attribute>
</xpath>
<xpath expr="//button[@string='Install Modules']" position="attributes">
<attribute name="string">Install</attribute>
</xpath>
<separator string="title" position="attributes">
<attribute name="string">Install Applications</attribute>
</separator>
<group colspan="8">
<field name="crm" />
<field name="sale" />
<field name="project" />
<field name="knowledge" />
<field name="stock" />
<field name="mrp" />
<field name="account_voucher" />
<field name="account_accountant" />
<field name="purchase" />
<field name="hr" />
<field name="profile_tools" />
<field name="marketing" groups="base.group_extended" />
<field name="point_of_sale"/>
<field name="report_designer" groups="base.group_extended" />
<separator string="Install Specific Industry Applications" colspan="4"/>
<field name="association" />
<field name="auction" />
<field name="product_expiry" />
<group name="crm"/>
<group name="sale"/>
<group name="project"/>
<group name="knowledge"/>
<group name="mrp"/>
<group name="account_accountant"/>
<group name="purchase"/>
<group name="hr"/>
<group name="profile_tools"/>
<group name="marketing"/>
<group name="report_designer"/>
<group name="association"/>
</group>
</data>
</field>
</record>
<record id="action_base_setup_installer" model="ir.actions.act_window">
<field name="name">Install Applications</field>
<field name="type">ir.actions.act_window</field>
<field name="res_model">base.setup.installer</field>
<field name="view_id" ref="view_base_setup_installer"/>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record id="base_setup_installer_todo" model="ir.actions.todo">
<field name="action_id" ref="action_base_setup_installer"/>
<field name="category_id" ref="base.category_administration_config"/>
<field name="sequence">2</field>
</record>
<record model="ir.actions.act_window" id="action_base_setup_installer_beta">
<field name="name">Install Applications</field>
<field name="res_model">base.setup.installer</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="target">new</field>
</record>
<record id="action_start_configurator" model="ir.actions.server">
<field name="name">Start Configuration</field>
<field name="model_id" ref="base.model_ir_actions_todo"/>
<field name="state">code</field>
<field name="code" eval="'# obj is a browse_record and will provide stupid ids to method\n' 'action = pool.get(\'ir.actions.todo\').action_launch(cr, uid, ' + str([ref('base_setup_installer_todo')]) + ', context=context)'"/>
</record>
<menuitem name="Add More Features" action="action_start_configurator" id="menu_view_base_module_configuration" parent="base.menu_config" type="server" icon="STOCK_EXECUTE" sequence="100"/>
<record id="base_setup_installer_todo" model="ir.actions.todo">
<field name="action_id" ref="action_base_setup_installer_beta" />
<field name="category_id" ref="base.category_administration_config"/>
<field name="sequence">2</field>
</record>
<record id="action_start_configurator" model="ir.actions.server">
<field name="name">Start Configuration</field>
<field name="model_id" ref="base.model_ir_actions_todo"/>
<field name="state">code</field>
<field name="code" eval="'# obj is a browse_record and will provide stupid ids to method\n' 'action = pool.get(\'ir.actions.todo\').action_launch(cr, uid, ' + str([ref('base_setup_installer_todo')]) + ', context=context)'"/>
</record>
<menuitem name="Add More Features" action="action_start_configurator" id="menu_view_base_module_configuration" parent="base.menu_config" type="server" icon="STOCK_EXECUTE" sequence="100"/>
<record id="ir_ui_view_sc_configuration" model="ir.ui.view_sc">
<field name="name">Add More Features</field>
<field name="resource">ir.ui.menu</field>
<field name="user_id" ref="base.user_root"/>
<field name="res_id" ref="menu_view_base_module_configuration" />
</record>
<!-- Import or create customers configartion view -->
<record id="action_import_create_installer" model="ir.actions.act_window">
+1 -1
View File
@@ -23,7 +23,7 @@
"name":"Server Object Synchronization",
"version":"0.1",
"author":"OpenERP SA",
"category":"Tools",
"category":"Hidden",
"description": """
Synchronization with all objects.
=================================
+1 -1
View File
@@ -4,7 +4,7 @@
"author": "OpenERP SA",
"version": "1.0",
"depends": ["base"],
"category" : "Tools",
"category" : "Hidden",
'complexity': "easy",
'description': """
Common base for tools modules.
+32
View File
@@ -0,0 +1,32 @@
# Spanish (Chile) translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-10-03 16:53+0000\n"
"Last-Translator: David Acevedo Toledo <Unknown>\n"
"Language-Team: Spanish (Chile) <es_CL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-10-04 05:02+0000\n"
"X-Generator: Launchpad (build 14071)\n"
#. module: base_tools
#: model:ir.module.module,shortdesc:base_tools.module_meta_information
msgid "Common base for tools modules"
msgstr "Base común para módulos de herramientas"
#. module: base_tools
#: model:ir.module.module,description:base_tools.module_meta_information
msgid ""
"\n"
" "
msgstr ""
"\n"
" "
+6 -6
View File
@@ -8,19 +8,19 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-04-05 04:40+0000\n"
"Last-Translator: kaneolopa <Unknown>\n"
"PO-Revision-Date: 2011-10-06 13:41+0000\n"
"Last-Translator: Milan Milosevic <Unknown>\n"
"Language-Team: Serbian Latin <sr@latin@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-09-05 05:58+0000\n"
"X-Generator: Launchpad (build 13830)\n"
"X-Launchpad-Export-Date: 2011-10-07 04:36+0000\n"
"X-Generator: Launchpad (build 14085)\n"
#. module: base_tools
#: model:ir.module.module,shortdesc:base_tools.module_meta_information
msgid "Common base for tools modules"
msgstr "Česti moduli za osnovne alate"
msgstr "Uobičajena osnova za alatne module"
#. module: base_tools
#: model:ir.module.module,description:base_tools.module_meta_information
@@ -28,5 +28,5 @@ msgid ""
"\n"
" "
msgstr ""
"modul: osnovni_alati\n"
"modul: base_tools\n"
" "
+1 -1
View File
@@ -22,7 +22,7 @@
{
'name': 'VAT Number Validation',
'version': '1.0',
'category': 'Finance',
'category': 'Hidden',
'complexity': "easy",
'description': """
VAT validation for Partners' VAT numbers
+15 -9
View File
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2010-12-23 15:36+0000\n"
"Last-Translator: Olivier Dony (OpenERP) <Unknown>\n"
"PO-Revision-Date: 2011-10-06 13:45+0000\n"
"Last-Translator: Milan Milosevic <Unknown>\n"
"Language-Team: Serbian latin <sr@latin@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-09-05 05:10+0000\n"
"X-Generator: Launchpad (build 13830)\n"
"X-Launchpad-Export-Date: 2011-10-07 04:36+0000\n"
"X-Generator: Launchpad (build 14085)\n"
#. module: base_vat
#: code:addons/base_vat/base_vat.py:87
@@ -23,7 +23,7 @@ msgstr ""
msgid ""
"The Vat does not seems to be correct. You should have entered something like "
"this %s"
msgstr "PDV izgleda da nije korektan. Trebas upisati nesto kao %s"
msgstr "PDV izgleda da nije korektan. Trebalo je uneti nešto kao %s"
#. module: base_vat
#: model:ir.module.module,description:base_vat.module_meta_information
@@ -38,22 +38,28 @@ msgid ""
"countries.\n"
" "
msgstr ""
"\n"
" Omogući PDV brojeve za partnera. Proverite validnost tog PDV broja.\n"
"\n"
" Ovaj modul prati metode opisane na http://sima-pc.com/nif.php za\n"
" proveru validnosti PDV broja pripisane partnerima u evropskim zemljama.\n"
" "
#. module: base_vat
#: model:ir.module.module,shortdesc:base_vat.module_meta_information
msgid "Base VAT - To check VAT number validity"
msgstr "Osnovni PDV - Za Proveru validnosti PDV cifre"
msgstr "Osnovni PDV - Za Proveru validnosti PDV broja"
#. module: base_vat
#: constraint:res.partner:0
msgid "Error ! You can not create recursive associated members."
msgstr ""
msgstr "Greška ! Ne možete da pravite rekurzivne povezane članove."
#. module: base_vat
#: code:addons/base_vat/base_vat.py:88
#, python-format
msgid "The VAT is invalid, It should begin with the country code"
msgstr "PDV je neispravan, trebalo bi da zapocne sa kodom zemlje"
msgstr "PDV je neispravan, trebalo bi da počinje kodom zemlje"
#. module: base_vat
#: help:res.partner,vat_subjected:0
@@ -61,7 +67,7 @@ msgid ""
"Check this box if the partner is subjected to the VAT. It will be used for "
"the VAT legal statement."
msgstr ""
"Cekiraj ovu kucicu ukoliko je PDV naslovljen na partnera. On ce koristiti "
"Označi ovu kućicu ukoliko je PDV naslovljen na partnera. Biće korišćen za "
"zakonsku PDV izjavu."
#. module: base_vat
+1 -1
View File
@@ -22,7 +22,7 @@
{
'name': 'Dashboard Creator',
'version': '1.0',
'category': 'Tools',
'category': 'Hidden',
'complexity': "normal",
'description': """
Lets the user create a custom dashboard.
+395
View File
@@ -0,0 +1,395 @@
# Spanish (Chile) translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2011-10-03 16:58+0000\n"
"Last-Translator: David Acevedo Toledo <Unknown>\n"
"Language-Team: Spanish (Chile) <es_CL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-10-04 05:01+0000\n"
"X-Generator: Launchpad (build 14071)\n"
#. module: board
#: view:res.log.report:0
msgid " Year "
msgstr " Año "
#. module: board
#: model:ir.model,name:board.model_board_menu_create
msgid "Menu Create"
msgstr "Crear menú"
#. module: board
#: view:board.note:0
#: field:board.note.type,name:0
#: model:ir.model,name:board.model_board_note_type
msgid "Note Type"
msgstr "Tipo de nota"
#. module: board
#: view:board.note:0
#: field:board.note,user_id:0
msgid "Author"
msgstr "Autor"
#. module: board
#: model:ir.module.module,shortdesc:board.module_meta_information
msgid "Dashboard main module"
msgstr "Módulo principal de tableros"
#. module: board
#: view:res.users:0
msgid "Latest Connections"
msgstr "Últimas conexiones"
#. module: board
#: code:addons/board/wizard/board_menu_create.py:45
#, python-format
msgid "User Error!"
msgstr "¡Error de usuario!"
#. module: board
#: view:board.board:0
#: model:ir.actions.act_window,name:board.open_board_administration_form
#: model:ir.ui.menu,name:board.menu_board_admin
msgid "Administration Dashboard"
msgstr "Tablero de Administración"
#. module: board
#: view:board.note:0
#: field:board.note,note:0
#: model:ir.model,name:board.model_board_note
msgid "Note"
msgstr "Nota"
#. module: board
#: view:board.note:0
#: view:res.log.report:0
msgid "Group By..."
msgstr "Agrupar por..."
#. module: board
#: model:ir.model,name:board.model_board_board
msgid "Board"
msgstr "Tablero"
#. module: board
#: view:board.board:0
#: model:ir.actions.act_window,name:board.board_weekly_res_log_report_action
#: view:res.log.report:0
msgid "Weekly Global Activity"
msgstr "Actividad global semanal"
#. module: board
#: field:board.board.line,name:0
msgid "Title"
msgstr "Título"
#. module: board
#: field:res.log.report,nbr:0
msgid "# of Entries"
msgstr "Nº de entradas"
#. module: board
#: view:res.log.report:0
#: field:res.log.report,month:0
msgid "Month"
msgstr "Mes"
#. module: board
#: model:ir.actions.act_window,name:board.dashboard_open
msgid "Open Dashboard"
msgstr "Abrir tablero"
#. module: board
#: view:board.board:0
#: model:ir.actions.act_window,name:board.board_monthly_res_log_report_action
#: view:res.log.report:0
msgid "Monthly Activity per Document"
msgstr "Actividad mensual por documento"
#. module: board
#: view:res.log.report:0
msgid "Log Analysis"
msgstr "Análisis de registro"
#. module: board
#: model:ir.actions.act_window,name:board.action_view_board_list_form
#: model:ir.ui.menu,name:board.menu_view_board_form
msgid "Dashboard Definition"
msgstr "Definición de tablero"
#. module: board
#: selection:res.log.report,month:0
msgid "March"
msgstr "Marzo"
#. module: board
#: selection:res.log.report,month:0
msgid "August"
msgstr "Agosto"
#. module: board
#: view:board.board:0
#: model:ir.actions.act_window,name:board.action_user_connection_tree
msgid "User Connections"
msgstr "Conexiones de usuario"
#. module: board
#: field:res.log.report,creation_date:0
msgid "Creation Date"
msgstr "Fecha de Creación"
#. module: board
#: model:ir.actions.act_window,name:board.action_view_board_note_form
#: model:ir.ui.menu,name:board.menu_view_board_note_form
msgid "Publish a note"
msgstr "Publicar una nota"
#. module: board
#: view:board.menu.create:0
msgid "Menu Information"
msgstr "Información del menú"
#. module: board
#: selection:res.log.report,month:0
msgid "June"
msgstr "Junio"
#. module: board
#: field:board.note,type:0
msgid "Note type"
msgstr "Tipo de nota"
#. module: board
#: field:board.board,line_ids:0
msgid "Action Views"
msgstr "Vistas de acciones"
#. module: board
#: model:ir.model,name:board.model_res_log_report
msgid "Log Report"
msgstr "Informe de registro"
#. module: board
#: view:board.note:0
#: field:board.note,date:0
msgid "Date"
msgstr "Fecha"
#. module: board
#: selection:res.log.report,month:0
msgid "July"
msgstr "Julio"
#. module: board
#: view:res.log.report:0
msgid "Extended Filters..."
msgstr "Filtros extendidos..."
#. module: board
#: view:res.log.report:0
#: field:res.log.report,day:0
msgid "Day"
msgstr "Dia"
#. module: board
#: view:board.menu.create:0
msgid "Create Menu For Dashboard"
msgstr "Crear menú para tablero"
#. module: board
#: selection:res.log.report,month:0
msgid "February"
msgstr "Febrero"
#. module: board
#: selection:res.log.report,month:0
msgid "October"
msgstr "Octubre"
#. module: board
#: model:ir.model,name:board.model_board_board_line
msgid "Board Line"
msgstr "Línea tablero"
#. module: board
#: field:board.menu.create,menu_parent_id:0
msgid "Parent Menu"
msgstr "Menú padre"
#. module: board
#: view:res.log.report:0
msgid " Month-1 "
msgstr " Mes-1 "
#. module: board
#: selection:res.log.report,month:0
msgid "January"
msgstr "Enero"
#. module: board
#: view:board.note:0
msgid "Notes"
msgstr "Notas"
#. module: board
#: selection:res.log.report,month:0
msgid "November"
msgstr "Noviembre"
#. module: board
#: help:board.board.line,sequence:0
msgid ""
"Gives the sequence order when displaying a list of "
"board lines."
msgstr ""
"Indica el orden de secuencia cuando se muestra una lista de líneas de "
"tablero."
#. module: board
#: selection:res.log.report,month:0
msgid "April"
msgstr "Abril"
#. module: board
#: view:board.board:0
#: field:board.board,name:0
#: field:board.board.line,board_id:0
#: model:ir.ui.menu,name:board.admin_menu_dasboard
#: model:ir.ui.menu,name:board.menu_dasboard
msgid "Dashboard"
msgstr "Tablero"
#. module: board
#: model:ir.module.module,description:board.module_meta_information
msgid "Base module for all dashboards."
msgstr "Módulo base para todos los tableros."
#. module: board
#: field:board.board.line,action_id:0
msgid "Action"
msgstr "Acción."
#. module: board
#: field:board.board.line,position:0
msgid "Position"
msgstr "Posición"
#. module: board
#: view:res.log.report:0
msgid "Model"
msgstr "Modelo"
#. module: board
#: field:board.menu.create,menu_name:0
msgid "Menu Name"
msgstr "Nombre del menú"
#. module: board
#: view:board.board:0
#: model:ir.actions.act_window,name:board.action_latest_activities_tree
msgid "Latest Activities"
msgstr "Últimas actividades"
#. module: board
#: selection:board.board.line,position:0
msgid "Left"
msgstr "Izquieda"
#. module: board
#: field:board.board,view_id:0
msgid "Board View"
msgstr "Vista de tablero"
#. module: board
#: selection:board.board.line,position:0
msgid "Right"
msgstr "Derecha"
#. module: board
#: field:board.board.line,width:0
msgid "Width"
msgstr "Ancho"
#. module: board
#: view:res.log.report:0
msgid " Month "
msgstr " Mes "
#. module: board
#: field:board.board.line,sequence:0
msgid "Sequence"
msgstr "Secuencia"
#. module: board
#: selection:res.log.report,month:0
msgid "September"
msgstr "Septiembre"
#. module: board
#: selection:res.log.report,month:0
msgid "December"
msgstr "Diciembre"
#. module: board
#: view:board.board:0
#: view:board.menu.create:0
msgid "Create Menu"
msgstr "Crear Menú"
#. module: board
#: field:board.board.line,height:0
msgid "Height"
msgstr "Alto"
#. module: board
#: model:ir.actions.act_window,name:board.action_board_menu_create
msgid "Create Board Menu"
msgstr "Crear menú del tablero"
#. module: board
#: selection:res.log.report,month:0
msgid "May"
msgstr "Mayo"
#. module: board
#: field:res.log.report,res_model:0
msgid "Object"
msgstr "Objeto"
#. module: board
#: view:res.log.report:0
#: field:res.log.report,name:0
msgid "Year"
msgstr "Año"
#. module: board
#: view:board.menu.create:0
msgid "Cancel"
msgstr "Cancelar"
#. module: board
#: view:board.board:0
msgid "Dashboard View"
msgstr "Vista de tablero"
#. module: board
#: code:addons/board/wizard/board_menu_create.py:46
#, python-format
msgid "Please Insert Dashboard View(s) !"
msgstr "¡Por favor inserte alguna vista de tablero!"
#. module: board
#: view:board.note:0
#: field:board.note,name:0
msgid "Subject"
msgstr "Asunto"
+1 -1
View File
@@ -49,7 +49,7 @@ To access OpenERP Calendar using WebCal to remote site use the URL like:
DATABASE_NAME: Name of database on which OpenERP Calendar is created
CALENDAR_NAME: Name of calendar to access
""",
'category': 'Tools',
'category': 'Hidden',
"author" : "OpenERP SA",
'website': 'http://www.openerp.com',
"init_xml" : ["caldav_data.xml"],
+1 -1
View File
@@ -21,7 +21,7 @@
"name" : "Claim from Delivery",
"version" : "1.0",
"author" : "OpenERP SA",
"category" : "Warehouse",
"category" : "Hidden",
"depends" : ["base", "crm_claim", "stock"],
"init_xml" : [],
"demo_xml" : [],
+6 -6
View File
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
"PO-Revision-Date: 2010-12-24 13:20+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"PO-Revision-Date: 2011-10-06 14:05+0000\n"
"Last-Translator: Milan Milosevic <Unknown>\n"
"Language-Team: Serbian latin <sr@latin@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-09-05 05:48+0000\n"
"X-Generator: Launchpad (build 13830)\n"
"X-Launchpad-Export-Date: 2011-10-07 04:36+0000\n"
"X-Generator: Launchpad (build 14085)\n"
#. module: claim_from_delivery
#: model:ir.actions.act_window,name:claim_from_delivery.action_claim_from_delivery
@@ -25,9 +25,9 @@ msgstr "Zahtev"
#. module: claim_from_delivery
#: model:ir.module.module,description:claim_from_delivery.module_meta_information
msgid "Create Claim from delivery order:\n"
msgstr "Kreiraj Zahtev iz Naloga Isporuke\n"
msgstr "Napravi zahtev iz naloga isporuke\n"
#. module: claim_from_delivery
#: model:ir.module.module,shortdesc:claim_from_delivery.module_meta_information
msgid "Claim from delivery"
msgstr "Zatraži od isporuke"
msgstr "Zahtev od isporuke"
-1
View File
@@ -25,7 +25,6 @@ import crm_segmentation
import crm_meeting
import crm_lead
import crm_phonecall
import crm_installer
import report
import wizard
import res_partner
+1 -1
View File
@@ -23,7 +23,7 @@
{
'name': 'Customer & Supplier Relationship Management',
'version': '1.0',
'category': 'Sales',
'category': 'Customer Relationship Management',
'complexity': "easy",
'description': """
The generic OpenERP Customer Relationship Management.
-59
View File
@@ -1,59 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 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 lxml import etree
from osv import fields, osv
class crm_installer(osv.osv_memory):
_inherit = 'base.setup.installer'
_columns = {
'name': fields.char('Name', size=64),
'crm_helpdesk': fields.boolean('Helpdesk', help="Manages a Helpdesk service."),
'crm_fundraising': fields.boolean('Fundraising', help="This may help associations in their fundraising process and tracking."),
'crm_claim': fields.boolean('Claims', help="Manages the suppliers and customers claims, including your corrective or preventive actions."),
'import_sugarcrm': fields.boolean('Import Data from SugarCRM', help="Help you to import and update data from SugarCRM to OpenERP"),
'crm_caldav': fields.boolean('Calendar Synchronizing', help="Helps you to synchronize the meetings with other calendar clients and mobiles."),
'sale_crm': fields.boolean('Opportunity to Quotation', help="Create a Quotation from an Opportunity."),
'fetchmail': fields.boolean('Fetch Emails', help="Allows you to receive E-Mails from POP/IMAP server."),
'thunderbird': fields.boolean('Thunderbird Plug-In', help="Allows you to link your e-mail to OpenERP's documents. You can attach it to any existing one in OpenERP or create a new one."),
'outlook': fields.boolean('MS-Outlook Plug-In', help="Allows you to link your e-mail to OpenERP's documents. You can attach it to any existing one in OpenERP or create a new one."),
'wiki_sale_faq': fields.boolean('Sale FAQ', help="Helps you manage wiki pages for Frequently Asked Questions on Sales Application."),
'import_google': fields.boolean('Google Import', help="Imports contacts and events from your google account."),
}
def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
res = super(crm_installer, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar,submenu=False)
#Checking sale module is installed or not
cr.execute("SELECT * from ir_module_module where state='installed' and name = 'sale'")
count = cr.fetchall()
if count:
doc = etree.XML(res['arch'])
nodes = doc.xpath("//field[@name='sale_crm']")
for node in nodes:
node.set('invisible', '0')
node.set('modifiers', '{}')
res['arch'] = etree.tostring(doc)
return res
crm_installer()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-24
View File
@@ -1,29 +1,5 @@
<openerp>
<data>
<record id="view_crm_installer" model="ir.ui.view">
<field name="name">crm.installer.view</field>
<field name="model">base.setup.installer</field>
<field name="type">form</field>
<field name="inherit_id" ref="base_setup.view_base_setup_installer"/>
<field name="arch" type="xml">
<data>
<xpath expr="//group[@name='crm']" position="replace">
<newline/>
<separator string="Customer Relationship Management Features" colspan="4"/>
<field name="crm_claim" groups="base.group_extended"/>
<field name="crm_helpdesk" groups="base.group_extended"/>
<field name="crm_fundraising" groups="base.group_extended"/>
<field name="wiki_sale_faq" groups="base.group_extended"/>
<field name="sale_crm" invisible="1" groups="base.group_extended"/>
<field name="crm_caldav"/>
<field name="import_sugarcrm"/>
<field name="fetchmail"/>
<field name="thunderbird"/>
<field name="outlook"/>
</xpath>
</data>
</field>
</record>
<record model="ir.actions.act_window" id="crm_case_section_view_form_installer">
<field name="name">Define Sales Team</field>
+5 -17
View File
@@ -1,21 +1,9 @@
- |
In order to test the CRM in OpenERP,
I will do a customer qualification process that
starts with a fist contact with a customer (a lead), which will be converted to a
business opportunity and a partner.
-
In order to test the CRM in OpenERP, I will do a customer qualification
process that starts with a fist contact with a customer (a lead), which will
be converted to a business opportunity and a partner.
-
I check installer report.
-
!record {model: base.setup.installer , id: base_action_rule_0_1}:
name: Test_action
-
I create the view at the time of setup.
-
!python {model: base.setup.installer}: |
self.fields_view_get(cr, uid,view_id=None, view_type='form', context=None, toolbar=False, submenu=False)
- |
In order to test the flow, I create a two new users "user_crm" and
I assign the group "salesman".
I create a two new users "user_crm" and I assign the group "salesman".
-
!record {model: res.users, id: res_users_usercrm0}:
company_id: base.main_company
+2 -3
View File
@@ -22,10 +22,9 @@
{
'name': 'Extended Module to Add CalDav feature on Meeting',
'name': 'Calendar Synchronizing',
'version': '1.1',
'category': 'Sales',
'category': 'Generic Modules/CRM & SRM',
'category': 'Customer Relationship Management',
'complexity': "normal",
'description': """
Caldav features in Meeting.
+10 -7
View File
@@ -8,19 +8,19 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
"PO-Revision-Date: 2010-12-23 10:47+0000\n"
"Last-Translator: qdp (OpenERP) <qdp-launchpad@tinyerp.com>\n"
"PO-Revision-Date: 2011-10-06 14:03+0000\n"
"Last-Translator: Milan Milosevic <Unknown>\n"
"Language-Team: Serbian <sr@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-09-05 05:55+0000\n"
"X-Generator: Launchpad (build 13830)\n"
"X-Launchpad-Export-Date: 2011-10-07 04:36+0000\n"
"X-Generator: Launchpad (build 14085)\n"
#. module: crm_caldav
#: model:ir.actions.act_window,name:crm_caldav.action_caldav_browse
msgid "Caldav Browse"
msgstr ""
msgstr "Pretraži CalDav"
#. module: crm_caldav
#: model:ir.model,name:crm_caldav.model_crm_meeting
@@ -30,7 +30,7 @@ msgstr "Sastanak"
#. module: crm_caldav
#: model:ir.module.module,shortdesc:crm_caldav.module_meta_information
msgid "Extended Module to Add CalDav feature on Meeting"
msgstr ""
msgstr "Produženi modul za dodavanje CalDav funkcije u sastancima"
#. module: crm_caldav
#: model:ir.module.module,description:crm_caldav.module_meta_information
@@ -39,8 +39,11 @@ msgid ""
" New Features in Meeting:\n"
" * Share meeting with other calendar clients like sunbird\n"
msgstr ""
"\n"
" Nove funkcije u sastancima\n"
" *Podeli sastanke s drugim kalendarskim klijentima poput sunbird-a\n"
#. module: crm_caldav
#: model:ir.ui.menu,name:crm_caldav.menu_caldav_browse
msgid "Synchronyze this calendar"
msgstr ""
msgstr "Sinhronisanje ovog kalendara"
+2 -2
View File
@@ -21,9 +21,9 @@
{
'name': 'Customer & Supplier Claims Management',
'name': 'Claims',
'version': '1.0',
'category': 'Sales',
'category': 'Customer Relationship Management',
'complexity': "easy",
'description': """
This modules allows you to track your customers/suppliers claims and grievances.
+2 -2
View File
@@ -21,8 +21,8 @@
{
'category': 'Sales',
'name': 'CRM Fundraising',
'category': 'Customer Relationship Management',
'name': 'Fundraising',
'version': '1.0',
'complexity': "easy",
'description': """
+2 -2
View File
@@ -21,8 +21,8 @@
{
'category': 'Sales',
'name': 'CRM Helpdesk',
'category': 'Customer Relationship Management',
'name': 'Helpdesk',
'version': '1.0',
'complexity': "easy",
'description': """
+1 -1
View File
@@ -23,7 +23,7 @@
{
'name': 'Partner Geo-Localization',
'version': '1.0',
'category': 'Sales',
'category': 'Hidden',
'complexity': "normal",
'description': """
This is the module used by OpenERP SA to redirect customers to its partners, based on geolocalization.
+2 -2
View File
@@ -21,9 +21,9 @@
{
'name': 'CRM Profiling Management - To Perform Segmentation within Partners',
'name': 'Profiling Tools',
'version': '1.3',
'category': 'Sales',
'category': 'Marketing',
'complexity': "easy",
'description': """
This module allows users to perform segmentation within partners.
+1 -1
View File
@@ -30,7 +30,7 @@ The decimal precision is configured per company.
"author": "OpenERP SA",
"version": "0.1",
"depends": ["base"],
"category" : "Tools",
"category" : "Hidden",
'complexity': "easy",
"init_xml": [],
"update_xml": [
+13 -13
View File
@@ -8,30 +8,30 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
"PO-Revision-Date: 2010-12-23 16:14+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"PO-Revision-Date: 2011-10-06 14:01+0000\n"
"Last-Translator: Milan Milosevic <Unknown>\n"
"Language-Team: Serbian latin <sr@latin@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-09-05 05:47+0000\n"
"X-Generator: Launchpad (build 13830)\n"
"X-Launchpad-Export-Date: 2011-10-07 04:36+0000\n"
"X-Generator: Launchpad (build 14085)\n"
#. module: decimal_precision
#: field:decimal.precision,digits:0
msgid "Digits"
msgstr "Brojevi"
msgstr "Cifara"
#. module: decimal_precision
#: view:decimal.precision:0
msgid "Decimal Precision"
msgstr "Decimalna Preiznost"
msgstr "Decimalna preciznost"
#. module: decimal_precision
#: model:ir.actions.act_window,name:decimal_precision.action_decimal_precision_form
#: model:ir.ui.menu,name:decimal_precision.menu_decimal_precision_form
msgid "Decimal Accuracy Definitions"
msgstr "Definicija Decimalne Preciznosti"
msgstr "Definicije decimalne preciznosti"
#. module: decimal_precision
#: model:ir.module.module,description:decimal_precision.module_meta_information
@@ -44,26 +44,26 @@ msgid ""
"The decimal precision is configured per company.\n"
msgstr ""
"\n"
"Ovaj modul vam omogucava za zaokruzujete cene na potrebne vrednosti za "
"nekoliko nacina\n"
"koriscenja: Racunanje, prodaja, nabavka ...\n"
"Ovaj modul Vam omogućava podešavanje preciznosti cena za različite načine\n"
"upotrebe: računanje, prodaja, nabavka ... \n"
"\n"
"Preciznost definisete za celo preduzece.\n"
"Preciznost je definisana po pojedinačnom preduzeću.\n"
#. module: decimal_precision
#: field:decimal.precision,name:0
msgid "Usage"
msgstr "Koriscenje"
msgstr "Upotreba"
#. module: decimal_precision
#: sql_constraint:decimal.precision:0
msgid "Only one value can be defined for each given usage!"
msgstr ""
"Samo jedna vrednost može biti definisana za svaku pojedinačnu upotrebu!"
#. module: decimal_precision
#: model:ir.module.module,shortdesc:decimal_precision.module_meta_information
msgid "Decimal Precision Configuration"
msgstr "Podesavanje Decimalne Preciznosti"
msgstr "Podešavanje decimalne preciznosti"
#. module: decimal_precision
#: model:ir.model,name:decimal_precision.model_decimal_precision
+2 -2
View File
@@ -21,9 +21,9 @@
{
'name': 'Carriers and Deliveries',
'name': 'Delivery Costs',
'version': '1.0',
'category': 'Warehouse',
'category': 'Sales Management',
'complexity': "normal",
'description': """
Allows you to add delivery methods in sale orders and picking.
+1 -2
View File
@@ -23,8 +23,7 @@
{
'name': 'Integrated Document Management System',
'version': '2.1',
'category': 'Tools',
'category': 'Generic Modules/Others',
'category': 'Knowledge Management',
'complexity': "normal",
'description': """
This is a complete document management system.
+2 -2
View File
@@ -21,9 +21,9 @@
{
'name': 'Integrated FTP Server with Document Management System',
'name': 'Shared Repositories (FTP)',
'version': '1.99',
'category': 'Tools',
'category': 'Knowledge Management',
'complexity': "normal",
'description': """
This is a support FTP Interface with document management system.
+1 -1
View File
@@ -23,7 +23,7 @@
{
'name': 'Support for iCal based on Document Management System',
'version': '1.0',
'category': 'Tools',
'category': 'Hidden',
'complexity': "normal",
'description': """
Allows to synchronise calendars with others applications.
+2 -2
View File
@@ -29,10 +29,10 @@
##############################################################################
{
"name" : "WebDAV server for Document Management",
"name" : "Shared Repositories (WebDAV)",
"version" : "2.3",
"author" : "OpenERP SA",
"category" : "Tools",
"category" : "Knowledge Management",
'complexity': "normal",
"website": "http://www.openerp.com",
"description": """
+2 -2
View File
@@ -21,11 +21,11 @@
##############################################################################
{
"name" : "Email Templates",
"name" : "Automated E-Mails",
"version" : "1.1",
"author" : "Openlabs",
"website" : "http://openerp.com",
"category" : "Tools",
"category" : "Marketing",
'complexity': "expert",
"depends" : ['mail'],
"description": """
+1 -1
View File
@@ -23,7 +23,7 @@
{
'name': 'Event',
'version': '0.1',
'category': 'Tools',
'category': 'Hidden',
'complexity': "easy",
'description': """
Organization and management of Events.
+1 -1
View File
@@ -22,7 +22,7 @@
{
'name': 'Event Project - Create Retro-Planning to manage your Events',
'version': '0.1',
'category': 'Tools',
'category': 'Hidden/Link',
'complexity': "easy",
'description': """
Organization and management of events.
+2 -2
View File
@@ -21,11 +21,11 @@
##############################################################################
{
"name" : "Automated Email Retriever",
"name" : "Fetch Emails",
"version" : "1.0",
"depends" : ["base", 'mail'],
"author" : "OpenERP SA",
"category": 'Tools',
"category": 'Customer Relationship Management',
"description": """
Retrieve incoming email on POP / IMAP servers
=============================================
+37 -21
View File
@@ -25,6 +25,14 @@ from imaplib import IMAP4
from imaplib import IMAP4_SSL
from poplib import POP3
from poplib import POP3_SSL
try:
import cStringIO as StringIO
except ImportError:
import StringIO
import zipfile
import base64
import addons
import netsvc
from osv import osv, fields
@@ -46,11 +54,12 @@ class fetchmail_server(osv.osv):
('draft', 'Not Confirmed'),
('done', 'Confirmed'),
], 'State', select=True, readonly=True),
'server' : fields.char('Server Name', size=256, required=True, readonly=True, help="Hostname or IP of the mail server", states={'draft':[('readonly', False)]}),
'port' : fields.integer('Port', required=True, readonly=True, states={'draft':[('readonly', False)]}),
'server' : fields.char('Server Name', size=256, readonly=True, help="Hostname or IP of the mail server", states={'draft':[('readonly', False)]}),
'port' : fields.integer('Port', readonly=True, states={'draft':[('readonly', False)]}),
'type':fields.selection([
('pop', 'POP Server'),
('imap', 'IMAP Server'),
('local', 'Local Server'),
], 'Server Type', select=True, required=True, readonly=False),
'is_ssl':fields.boolean('SSL/TLS', help="Connections are encrypted with SSL/TLS through a dedicated port (default: IMAPS=993, POP3S=995)"),
'attach':fields.boolean('Keep Attachments', help="Whether attachments should be downloaded. "
@@ -58,8 +67,8 @@ class fetchmail_server(osv.osv):
'original':fields.boolean('Keep Original', help="Whether a full original copy of each email should be kept for reference"
"and attached to each processed message. This will usually double the size of your message database."),
'date': fields.datetime('Last Fetch Date', readonly=True),
'user' : fields.char('Username', size=256, required=True, readonly=True, states={'draft':[('readonly', False)]}),
'password' : fields.char('Password', size=1024, required=True, readonly=True, states={'draft':[('readonly', False)]}),
'user' : fields.char('Username', size=256, readonly=True, states={'draft':[('readonly', False)]}),
'password' : fields.char('Password', size=1024, readonly=True, states={'draft':[('readonly', False)]}),
'action_id':fields.many2one('ir.actions.server', 'Server Action', help="Optional custom server action to trigger for each incoming mail, "
"on the record that was created or updated by this mail"),
'object_id': fields.many2one('ir.model', "Create a New Record", required=True, help="Process each incoming mail as part of a conversation "
@@ -69,6 +78,8 @@ class fetchmail_server(osv.osv):
'priority': fields.integer('Server Priority', readonly=True, states={'draft':[('readonly', False)]}, help="Defines the order of processing, "
"lower values mean higher priority"),
'message_ids': fields.one2many('mail.message', 'fetchmail_server_id', 'Messages', readonly=True),
'configuration' : fields.text('Configuration'),
'script' : fields.char('Script', readonly=True, size=64),
}
_defaults = {
'state': "draft",
@@ -76,31 +87,36 @@ class fetchmail_server(osv.osv):
'active': True,
'priority': 5,
'attach': True,
'script': '/mail/static/scripts/openerp_mailgate.py',
}
def default_get(self, cr, uid, fields, context=None):
if context is None:
context = {}
result = super(fetchmail_server, self).default_get(cr, uid, fields, context=context)
model = context.pop('fetchmail_model', False) or False
if isinstance(model, basestring):
model_id = self.pool.get('ir.model').search(cr, uid, [('model', '=', model)], context=context)
result.update(
object_id = model_id[0],
)
return result
def onchange_server_type(self, cr, uid, ids, server_type=False, ssl=False):
def onchange_server_type(self, cr, uid, ids, server_type=False, ssl=False, object_id=False):
port = 0
values = {}
if server_type == 'pop':
port = ssl and 995 or 110
elif server_type == 'imap':
port = ssl and 993 or 143
return {'value':{'port':port}}
else:
values['server'] = ''
values['port'] = port
conf = {
'dbname' : cr.dbname,
'uid' : uid,
'model' : 'MODELNAME',
}
if object_id:
m = self.pool.get('ir.model')
r = m.read(cr,uid,[object_id],['model'])
conf['model']=r[0]['model']
values['configuration'] = """Use the below script with the following command line options with your Mail Transport Agent (MTA)
openerp_mailgate.py -u %(uid)d -p PASSWORD -o %(model)s -d %(dbname)s --host=HOSTNAME --port=PORT
""" % conf
return {'value':values}
def set_draft(self, cr, uid, ids, context=None):
self.write(cr, uid, ids , {'state':'draft'})
+15 -10
View File
@@ -25,29 +25,34 @@
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Incoming Mail Server">
<group col="6" colspan="4">
<group colspan="4" col="6">
<field name="name" select="1"/>
<field name="type" select="1" on_change="onchange_server_type(type, is_ssl)"/>
<field name="type" select="1" on_change="onchange_server_type(type, is_ssl, object_id)"/>
<field name="date" select="1"/>
</group>
<notebook colspan="4">
<page string="Server &amp; Login">
<group col="4" colspan="2">
<group col="4" colspan="2" attrs="{'invisible' : [('type', '=', 'local')]}">
<separator string="Server Information" colspan="2"/>
<field name="server" colspan="4"/>
<field name="port" />
<field name="server" colspan="4" attrs="{'required' : [('type', '!=', 'local')]}" />
<field name="port" required="1" attrs="{'required' : [('type', '!=', 'local')]}" />
<field name="is_ssl" select="1" on_change="onchange_server_type(type, is_ssl)"/>
</group>
<group col="2" colspan="2">
<group col="2" colspan="2" attrs="{'invisible' : [('type', '=', 'local')]}">
<separator string="Login Information" colspan="2"/>
<field name="user" />
<field name="password" password="True" />
<field name="user" attrs="{'required' : [('type', '!=', 'local')]}"/>
<field name="password" password="True" attrs="{'required' : [('type', '!=', 'local')]}"/>
</group>
<group col="2" colspan="2">
<separator string="Actions to Perform on Incoming Mails" colspan="2"/>
<field name="object_id"/>
<field name="object_id" on_change="onchange_server_type(type, is_ssl, object_id)"/>
<field name="action_id" groups="base.group_extended"/>
</group>
<group attrs="{'invisible' : [('type', '!=', 'local')]}" colspan="4" col="4">
<separator string="Configuration" colspan="4"/>
<field name="configuration" colspan="4"/>
<field name="script" colspan="4" widget="url"/>
</group>
</page>
<page string="Advanced" groups="base.group_extended">
<group colspan="2" col="2">
@@ -59,7 +64,7 @@
</group>
</page>
</notebook>
<group col="6" colspan="4">
<group colspan="4" col="6" attrs="{'invisible' : [('type', '=', 'local')]}">
<field name="state"/>
<button string="Reset Confirmation" type="object" name="set_draft" icon="gtk-convert" states="done"/>
<button string="Test &amp; Confirm" type="object" name="button_confirm_login" states="draft" icon="gtk-apply"/>
+1 -1
View File
@@ -24,7 +24,7 @@
"version" : "1.0",
"depends" : ["fetchmail", "crm"],
"author" : "OpenERP SA",
"category": 'Tools',
"category": 'Hidden/Link',
"description": """
""",
'website': 'http://www.openerp.com',
+1 -1
View File
@@ -24,7 +24,7 @@
"version" : "1.0",
"depends" : ["fetchmail", "crm_claim"],
"author" : "OpenERP SA",
"category": 'Tools',
"category": 'Hidden/Link',
"description": """
""",
'website': 'http://www.openerp.com',
@@ -24,7 +24,7 @@
"version" : "1.0",
"depends" : ["fetchmail", "hr_recruitment"],
"author" : "OpenERP SA",
"category": 'Tools',
"category": 'Hidden/Link',
"description": """
""",
'website': 'http://www.openerp.com',
@@ -24,7 +24,7 @@
"version" : "1.0",
"depends" : ["fetchmail", "project_issue"],
"author" : "OpenERP SA",
"category": 'Tools',
"category": 'Hidden/Link',
"description": """
""",
'website': 'http://www.openerp.com',
+2 -2
View File
@@ -23,8 +23,8 @@
{
'name': 'Google user',
'version': '1.0',
'category': 'Generic Modules/Others',
'description': """The module adds google user in res user""",
'category': 'Hidden',
'description': """The module adds google user in res user""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
'depends': ['base'],
+1 -3
View File
@@ -23,9 +23,7 @@
{
'name': 'Google Map',
'version': '1.0',
'category': 'Tools',
'complexity': "easy",
'category': 'Generic Modules/Others',
'category': 'Hidden',
'description': """
The module adds Google Map field in partner address.
====================================================
+11 -11
View File
@@ -8,26 +8,26 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
"PO-Revision-Date: 2010-12-23 16:09+0000\n"
"Last-Translator: OpenERP Administrators <Unknown>\n"
"PO-Revision-Date: 2011-10-06 13:57+0000\n"
"Last-Translator: Milan Milosevic <Unknown>\n"
"Language-Team: Serbian latin <sr@latin@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2011-09-05 04:55+0000\n"
"X-Generator: Launchpad (build 13830)\n"
"X-Launchpad-Export-Date: 2011-10-07 04:36+0000\n"
"X-Generator: Launchpad (build 14085)\n"
#. module: google_map
#: view:res.partner:0
#: view:res.partner.address:0
msgid "Map"
msgstr "mapa"
msgstr "Karta"
#. module: google_map
#: view:res.partner:0
#: view:res.partner.address:0
msgid "Street2 : "
msgstr "Ulica2 "
msgstr "Ulica2 : "
#. module: google_map
#: model:ir.actions.wizard,name:google_map.wizard_google_map
@@ -41,19 +41,19 @@ msgid ""
"so that we can directly open google map from the\n"
"url widget."
msgstr ""
"Ovaj Modul ubacuje sliku google map u partnerovoj adresi\n"
"tako da mozemo direktno da otvorimo google map iz tog\n"
"prozora."
"Ovaj Modul dodaje google map polje u partnerovoj adresi\n"
"tako da možemo direktno otvoriti google map iz\n"
"url vidžeta."
#. module: google_map
#: model:ir.module.module,shortdesc:google_map.module_meta_information
msgid "Google Map"
msgstr ""
msgstr "Google Map"
#. module: google_map
#: model:ir.model,name:google_map.model_res_partner_address
msgid "Partner Addresses"
msgstr "Adresa Partnera"
msgstr "Partnerove adrese"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "Nevažeći XML za pregled arhitekture"
+1 -2
View File
@@ -21,9 +21,8 @@
import hr_department
import hr
import installer
import report
import wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-23
View File
@@ -1,29 +1,6 @@
<openerp>
<data>
<record id="view_hr_installer" model="ir.ui.view">
<field name="name">hr.installer.view</field>
<field name="model">base.setup.installer</field>
<field name="type">form</field>
<field name="inherit_id" ref="base_setup.view_base_setup_installer"/>
<field name="arch" type="xml">
<data>
<xpath expr="//group[@name='hr']" position="replace">
<newline/>
<separator string="Human Resources Features" colspan="4"/>
<field name="hr_holidays"/>
<field name="hr_expense"/>
<field name="hr_recruitment"/>
<field name="hr_timesheet_sheet"/>
<field name="hr_contract"/>
<field name="hr_attendance"/>
<field name="hr_evaluation"/>
<field name="hr_payroll"/>
<field name="hr_payroll_account" groups="base.group_extended"/>
</xpath>
</data>
</field>
</record>
<record id="category_hr_management_config" model="ir.actions.todo.category">
<field name="name">HR Management</field>
-52
View File
@@ -1,52 +0,0 @@
# -*- coding: utf-8 -*-
##############################################################################
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2004-2009 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 hr_installer(osv.osv_memory):
_inherit = 'base.setup.installer'
_columns = {
# Human Resources Management
'hr_holidays': fields.boolean('Leaves Management',
help="Tracks employee leaves, allocation requests and planning."),
'hr_expense': fields.boolean('Expenses',
help="Tracks and manages employee expenses, and can "
"automatically re-invoice clients if the expenses are "
"project-related."),
'hr_recruitment': fields.boolean('Recruitment Process',
help="Helps you manage and streamline your recruitment process."),
'hr_timesheet_sheet':fields.boolean('Timesheets',
help="Tracks and helps employees encode and validate timesheets "
"and attendances."),
'hr_contract': fields.boolean("Employee's Contracts",
help="Extends employee profiles to help manage their contracts."),
'hr_evaluation': fields.boolean('Periodic Evaluations',
help="Lets you create and manage the periodic evaluation and "
"performance review of employees."),
'hr_attendance': fields.boolean('Attendances',
help="Simplifies the management of employee's attendances."),
'hr_payroll': fields.boolean('Payroll',
help="Generic Payroll system."),
'hr_payroll_account': fields.boolean('Payroll Accounting',
help="Generic Payroll system Integrated with Accountings."),
}
hr_installer()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+1 -1
View File
@@ -21,7 +21,7 @@
{
'name': 'Attendances Of Employees',
'name': 'Attendances',
'version': '1.1',
'category': 'Human Resources',
'complexity': "easy",
+1 -1
View File
@@ -21,7 +21,7 @@
{
'name': 'Human Resources Contracts',
'name': "Employee's Contracts",
'version': '1.0',
'category': 'Human Resources',
'complexity': "easy",
+1 -1
View File
@@ -20,7 +20,7 @@
##############################################################################
{
"name" : "Human Resources Evaluation",
"name" : "Periodic Evaluations",
"version": "0.1",
"author": "OpenERP SA",
"category": "Human Resources",

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