[MERGE]: Merged with trunk-server
bzr revid: uco@tinyerp.com-20100827044722-bjv1qkqkh7tjc5v7
This commit is contained in:
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.4\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
|
||||
"PO-Revision-Date: 2010-08-25 06:11+0000\n"
|
||||
"PO-Revision-Date: 2010-08-26 06:44+0000\n"
|
||||
"Last-Translator: Goran Kliska <gkliska@gmail.com>\n"
|
||||
"Language-Team: openerp-translators\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-26 03:53+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-27 03:37+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
"Language: hr\n"
|
||||
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.4\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
|
||||
"PO-Revision-Date: 2010-08-25 06:04+0000\n"
|
||||
"PO-Revision-Date: 2010-08-26 06:37+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <Unknown>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-26 03:53+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-27 03:37+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: base
|
||||
|
||||
@@ -8,13 +8,13 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-server\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
|
||||
"PO-Revision-Date: 2010-08-25 05:58+0000\n"
|
||||
"PO-Revision-Date: 2010-08-26 06:47+0000\n"
|
||||
"Last-Translator: Harry (Open ERP) <hmo@tinyerp.com>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-26 03:53+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-27 03:37+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: base
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: pt_BR\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
|
||||
"PO-Revision-Date: 2010-08-25 06:15+0000\n"
|
||||
"PO-Revision-Date: 2010-08-26 06:38+0000\n"
|
||||
"Last-Translator: OpenERP Administrators <Unknown>\n"
|
||||
"Language-Team: <pt@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: 2010-08-26 03:53+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-27 03:37+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: base
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
|
||||
"PO-Revision-Date: 2010-08-25 05:46+0000\n"
|
||||
"PO-Revision-Date: 2010-08-26 06:50+0000\n"
|
||||
"Last-Translator: Anders Wallenquist <anders.wallenquist@vertel.se>\n"
|
||||
"Language-Team: <>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-26 03:53+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-27 03:37+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: base
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.0\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
|
||||
"PO-Revision-Date: 2010-08-25 06:01+0000\n"
|
||||
"PO-Revision-Date: 2010-08-26 06:41+0000\n"
|
||||
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-26 03:53+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-27 03:37+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: base
|
||||
|
||||
@@ -7,13 +7,13 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 5.0.4\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2009-12-18 08:39+0000\n"
|
||||
"PO-Revision-Date: 2010-08-25 06:08+0000\n"
|
||||
"PO-Revision-Date: 2010-08-26 06:49+0000\n"
|
||||
"Last-Translator: Eleanor Chen <chenyueg@gmail.com>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-26 03:53+0000\n"
|
||||
"X-Launchpad-Export-Date: 2010-08-27 03:38+0000\n"
|
||||
"X-Generator: Launchpad (build Unknown)\n"
|
||||
|
||||
#. module: base
|
||||
|
||||
@@ -64,20 +64,30 @@ class ir_translation(osv.osv):
|
||||
|
||||
def _auto_init(self, cr, context={}):
|
||||
super(ir_translation, self)._auto_init(cr, context)
|
||||
|
||||
# FIXME: there is a size limit on btree indexed values so we can't index src column with normal btree.
|
||||
cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = %s', ('ir_translation_ltns',))
|
||||
if not cr.fetchone():
|
||||
cr.execute('CREATE INDEX ir_translation_ltns ON ir_translation (lang, type, name, src)')
|
||||
if cr.fetchone():
|
||||
#temporarily removed: cr.execute('CREATE INDEX ir_translation_ltns ON ir_translation (name, lang, type, src)')
|
||||
cr.execute('DROP INDEX ir_translation_ltns')
|
||||
cr.commit()
|
||||
cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = %s', ('ir_translation_lts',))
|
||||
if cr.fetchone():
|
||||
#temporarily removed: cr.execute('CREATE INDEX ir_translation_lts ON ir_translation (lang, type, src)')
|
||||
cr.execute('DROP INDEX ir_translation_lts')
|
||||
cr.commit()
|
||||
|
||||
# add separate hash index on src (no size limit on values), as postgres 8.1+ is able to combine separate indexes
|
||||
cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = %s', ('ir_translation_src_hash_idx',))
|
||||
if not cr.fetchone():
|
||||
cr.execute('CREATE INDEX ir_translation_src_hash_idx ON ir_translation using hash (src)')
|
||||
|
||||
cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = %s', ('ir_translation_ltn',))
|
||||
if not cr.fetchone():
|
||||
cr.execute('CREATE INDEX ir_translation_ltn ON ir_translation (lang, type, name)')
|
||||
cr.execute('CREATE INDEX ir_translation_ltn ON ir_translation (name, lang, type)')
|
||||
cr.commit()
|
||||
|
||||
cr.execute('SELECT indexname FROM pg_indexes WHERE indexname = %s', ('ir_translation_lts',))
|
||||
if not cr.fetchone():
|
||||
cr.execute('CREATE INDEX ir_translation_lts ON ir_translation (lang, type, src)')
|
||||
cr.commit()
|
||||
|
||||
|
||||
@tools.cache(skiparg=3, multi='ids')
|
||||
def _get_ids(self, cr, uid, name, tt, lang, ids):
|
||||
|
||||
+1
-1
@@ -108,7 +108,7 @@ class ExportService(object):
|
||||
def __init__(self, name, audience=''):
|
||||
ExportService._services[name] = self
|
||||
self.__name = name
|
||||
self._logger.info("Exported service registered: %s" % name)
|
||||
self._logger.debug("Registered an exported service: %s" % name)
|
||||
|
||||
def joinGroup(self, name):
|
||||
ExportService._groups.setdefault(name, {})[self.__name] = self
|
||||
|
||||
@@ -71,7 +71,7 @@ class expression(object):
|
||||
raise ValueError('Bad domain expression: %r' % (exp,))
|
||||
self.__exp = exp
|
||||
self.__field_tables = {} # used to store the table to use for the sql generation. key = index of the leaf
|
||||
self.__all_tables = []
|
||||
self.__all_tables = set()
|
||||
self.__joins = []
|
||||
self.__main_table = None # 'root' table. set by parse()
|
||||
self.__DUMMY_LEAF = (1, '=', 1) # a dummy leaf that must not be parsed or sql generated
|
||||
@@ -106,7 +106,7 @@ class expression(object):
|
||||
return [(left, 'in', rg(ids, table, parent or table._parent_name))]
|
||||
|
||||
self.__main_table = table
|
||||
self.__all_tables.append(table)
|
||||
self.__all_tables.add(table)
|
||||
|
||||
i = -1
|
||||
while i + 1<len(self.__exp):
|
||||
@@ -129,7 +129,7 @@ class expression(object):
|
||||
working_table = main_table.pool.get(main_table._inherit_fields[fargs[0]][0])
|
||||
if working_table not in self.__all_tables:
|
||||
self.__joins.append('%s.%s=%s.%s' % (working_table._table, 'id', main_table._table, main_table._inherits[working_table._name]))
|
||||
self.__all_tables.append(working_table)
|
||||
self.__all_tables.add(working_table)
|
||||
main_table = working_table
|
||||
|
||||
field = working_table._columns.get(fargs[0], False)
|
||||
|
||||
+16
-7
@@ -2101,7 +2101,7 @@ class orm(orm_template):
|
||||
if groupby:
|
||||
if groupby and isinstance(groupby, list):
|
||||
groupby = groupby[0]
|
||||
tables, where_clause = self._inherits_join_calc(groupby,tables,where_clause)
|
||||
tables, where_clause, qfield = self._inherits_join_calc(groupby,tables,where_clause)
|
||||
|
||||
if len(where_clause):
|
||||
where_clause = ' where '+string.join(where_clause, ' and ')
|
||||
@@ -2192,6 +2192,9 @@ class orm(orm_template):
|
||||
:param tables: list of table._table names enclosed in double quotes as returned
|
||||
by _where_calc()
|
||||
:param where_clause: current list of WHERE clause params
|
||||
:return: (table, where_clause, qualified_field) where ``table`` and ``where_clause`` are the updated
|
||||
versions of the parameters, and ``qualified_field`` is the qualified name of ``field``
|
||||
in the form ``table.field``, to be referenced in queries.
|
||||
"""
|
||||
current_table = self
|
||||
while field in current_table._inherit_fields and not field in current_table._columns:
|
||||
@@ -2199,7 +2202,7 @@ class orm(orm_template):
|
||||
parent_table = self.pool.get(parent_model_name)
|
||||
self._inherits_join_add(parent_model_name, tables, where_clause)
|
||||
current_table = parent_table
|
||||
return (tables, where_clause)
|
||||
return (tables, where_clause, '"%s".%s' % (current_table._table, field))
|
||||
|
||||
def _parent_store_compute(self, cr):
|
||||
if not self._parent_store:
|
||||
@@ -2466,15 +2469,24 @@ class orm(orm_template):
|
||||
elif not f.required and f_pg_notnull == 1:
|
||||
cr.execute('ALTER TABLE "%s" ALTER COLUMN "%s" DROP NOT NULL' % (self._table, k))
|
||||
cr.commit()
|
||||
|
||||
# Verify index
|
||||
indexname = '%s_%s_index' % (self._table, k)
|
||||
cr.execute("SELECT indexname FROM pg_indexes WHERE indexname = %s and tablename = %s", (indexname, self._table))
|
||||
res2 = cr.dictfetchall()
|
||||
if not res2 and f.select:
|
||||
cr.execute('CREATE INDEX "%s_%s_index" ON "%s" ("%s")' % (self._table, k, self._table, k))
|
||||
cr.commit()
|
||||
if f._type == 'text':
|
||||
# FIXME: for fields.text columns we should try creating GIN indexes instead (seems most suitable for an ERP context)
|
||||
logger.notifyChannel('orm', netsvc.LOG_WARNING, "Adding (b-tree) index for text column '%s' in table '%s'."\
|
||||
"This is probably useless (does not work for fulltext search) and prevents INSERTs of long texts because there is a length limit for indexable btree values!\n"\
|
||||
"Use a search view instead if you simply want to make the field searchable." % (k, f._type, self._table))
|
||||
if res2 and not f.select:
|
||||
cr.execute('DROP INDEX "%s_%s_index"' % (self._table, k))
|
||||
cr.commit()
|
||||
logger.notifyChannel('orm', netsvc.LOG_WARNING, "Dropping index for column '%s' of type '%s' in table '%s' as it is not required anymore" % (k, f._type, self._table))
|
||||
|
||||
if isinstance(f, fields.many2one):
|
||||
ref = self.pool.get(f._obj)._table
|
||||
if ref != 'ir_actions':
|
||||
@@ -3824,11 +3836,8 @@ class orm(orm_template):
|
||||
elif (o in self._inherit_fields):
|
||||
parent_obj = self.pool.get(self._inherit_fields[o][0])
|
||||
if getattr(parent_obj._columns[o], '_classic_read'):
|
||||
# Allowing inherits'ed field for server side sorting
|
||||
inherited_tables, inherit_join = self._inherits_join_calc(o, tables, where_clause)
|
||||
if inherited_tables:
|
||||
inherited_sort_table = inherited_tables[-1]
|
||||
order_by = inherited_sort_table + '.' + order
|
||||
# Allowing inherits'ed field for server side sorting, if they can be sorted by the dbms
|
||||
inherited_tables, inherit_join, order_by = self._inherits_join_calc(o, tables, where_clause)
|
||||
|
||||
limit_str = limit and ' limit %d' % limit or ''
|
||||
offset_str = offset and ' offset %d' % offset or ''
|
||||
|
||||
@@ -214,7 +214,8 @@ class FloatObject(decimal.Decimal, PdfObject):
|
||||
|
||||
class NumberObject(int, PdfObject):
|
||||
def __init__(self, value):
|
||||
int.__init__(self, value)
|
||||
int.__init__(self)
|
||||
self = value
|
||||
|
||||
def writeToStream(self, stream, encryption_key):
|
||||
stream.write(repr(self))
|
||||
@@ -404,7 +405,8 @@ class NameObject(str, PdfObject):
|
||||
delimiterCharacters = "(", ")", "<", ">", "[", "]", "{", "}", "/", "%"
|
||||
|
||||
def __init__(self, data):
|
||||
str.__init__(self, data)
|
||||
str.__init__(self)
|
||||
self = data
|
||||
|
||||
def writeToStream(self, stream, encryption_key):
|
||||
stream.write(self)
|
||||
|
||||
@@ -50,7 +50,6 @@ import utils
|
||||
import warnings
|
||||
from generic import *
|
||||
from utils import readNonWhitespace, readUntilWhitespace, ConvertFunctionsToVirtualList
|
||||
from sets import ImmutableSet
|
||||
|
||||
##
|
||||
# This class supports writing PDF files out, given pages produced by another
|
||||
@@ -987,8 +986,8 @@ class PageObject(DictionaryObject):
|
||||
|
||||
# Combine /ProcSet sets.
|
||||
newResources[NameObject("/ProcSet")] = ArrayObject(
|
||||
ImmutableSet(originalResources.get("/ProcSet", ArrayObject()).getObject()).union(
|
||||
ImmutableSet(page2Resources.get("/ProcSet", ArrayObject()).getObject())
|
||||
frozenset(originalResources.get("/ProcSet", ArrayObject()).getObject()).union(
|
||||
frozenset(page2Resources.get("/ProcSet", ArrayObject()).getObject())
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user