[MERGE] forward port branch 9.0 up to 8de514f805
This commit is contained in:
@@ -25,7 +25,7 @@ class ReportOverdue(models.AbstractModel):
|
||||
"FROM account_move_line l "
|
||||
"JOIN account_account_type at ON (l.user_type_id = at.id) "
|
||||
"JOIN account_move m ON (l.move_id = m.id) "
|
||||
"WHERE l.partner_id IN %s AND at.type IN ('receivable', 'payable') GROUP BY l.date, l.name, l.ref, l.date_maturity, l.partner_id, at.type, l.blocked, l.amount_currency, l.currency_id, l.move_id, m.name", (((fields.date.today(), ) + (tuple(partner_ids),))))
|
||||
"WHERE l.partner_id IN %s AND at.type IN ('receivable', 'payable') AND NOT l.reconciled GROUP BY l.date, l.name, l.ref, l.date_maturity, l.partner_id, at.type, l.blocked, l.amount_currency, l.currency_id, l.move_id, m.name", (((fields.date.today(), ) + (tuple(partner_ids),))))
|
||||
for row in self.env.cr.dictfetchall():
|
||||
res[row.pop('partner_id')].append(row)
|
||||
return res
|
||||
|
||||
@@ -554,9 +554,12 @@ class MergePartnerAutomatic(osv.TransientModel):
|
||||
'min_id': min_id,
|
||||
'aggr_ids': aggr_ids,
|
||||
}
|
||||
|
||||
proxy.create(cr, uid, values, context=context)
|
||||
counter += 1
|
||||
# To ensure that the used partners are accessible by the user
|
||||
partner_ids = self.pool['res.partner'].search(cr, uid, [('id', 'in', aggr_ids)], context=context)
|
||||
if len(partner_ids) >= 2:
|
||||
values['aggr_ids'] = partner_ids
|
||||
proxy.create(cr, uid, values, context=context)
|
||||
counter += 1
|
||||
|
||||
values = {
|
||||
'state': 'selection',
|
||||
|
||||
@@ -65,14 +65,24 @@ class PosOrder(models.Model):
|
||||
closed_session.id,
|
||||
order['name'],
|
||||
order['amount_total'])
|
||||
_logger.warning('attempting to create recovery session for saving order %s', order['name'])
|
||||
new_session = PosSession.create({
|
||||
'config_id': closed_session.config_id.id,
|
||||
'name': _('(RESCUE FOR %(session)s)') % {'session': closed_session.name},
|
||||
'rescue': True, # avoid conflict with live sessions
|
||||
})
|
||||
# bypass opening_control (necessary when using cash control)
|
||||
new_session.signal_workflow('open')
|
||||
|
||||
open_sessions = PosSession.search([('state', '=', 'opened'),
|
||||
('rescue', '=', True),
|
||||
('config_id', '=', closed_session.config_id.id),
|
||||
('name', 'ilike', closed_session.name)],
|
||||
limit=1, order="start_at DESC")
|
||||
if open_sessions:
|
||||
new_session = open_sessions[0]
|
||||
_logger.warning('using existing recovery session %s for saving order %s', new_session, order['name'])
|
||||
else:
|
||||
_logger.warning('attempting to create recovery session for saving order %s', order['name'])
|
||||
new_session = PosSession.create({
|
||||
'config_id': closed_session.config_id.id,
|
||||
'name': _('(RESCUE FOR %(session)s)') % {'session': closed_session.name},
|
||||
'rescue': True, # avoid conflict with live sessions
|
||||
})
|
||||
# bypass opening_control (necessary when using cash control)
|
||||
new_session.signal_workflow('open')
|
||||
|
||||
return new_session
|
||||
|
||||
|
||||
@@ -636,8 +636,6 @@ class Database(http.Controller):
|
||||
@http.route('/web/database/create', type='http', auth="none", methods=['POST'], csrf=False)
|
||||
def create(self, master_pwd, name, lang, password, **post):
|
||||
try:
|
||||
if not re.match('^[a-zA-Z][a-zA-Z0-9_]+$', name):
|
||||
raise Exception(_('Invalid database name. Only alphanumerical characters and underscore are allowed.'))
|
||||
# country code could be = "False" which is actually True in python
|
||||
country_code = post.get('country_code') or False
|
||||
request.session.proxy("db").create_database(master_pwd, name, bool(post.get('demo')), lang, password, post['login'], country_code)
|
||||
@@ -650,8 +648,6 @@ class Database(http.Controller):
|
||||
@http.route('/web/database/duplicate', type='http', auth="none", methods=['POST'], csrf=False)
|
||||
def duplicate(self, master_pwd, name, new_name):
|
||||
try:
|
||||
if not re.match('^[a-zA-Z][a-zA-Z0-9_]+$', new_name):
|
||||
raise Exception(_('Invalid database name. Only alphanumerical characters and underscore are allowed.'))
|
||||
request.session.proxy("db").duplicate_database(master_pwd, name, new_name)
|
||||
return http.local_redirect('/web/database/manager')
|
||||
except Exception, e:
|
||||
|
||||
@@ -120,12 +120,15 @@ var QWeb2 = {
|
||||
}
|
||||
return r.join('');
|
||||
} else {
|
||||
// avoid XMLSerializer with text node for IE
|
||||
if (node.nodeType == 3) {
|
||||
return node.data;
|
||||
}
|
||||
if (typeof XMLSerializer !== 'undefined') {
|
||||
return (new XMLSerializer()).serializeToString(node);
|
||||
} else {
|
||||
switch(node.nodeType) {
|
||||
case 1: return node.outerHTML;
|
||||
case 3: return node.data;
|
||||
case 4: return '<![CDATA[' + node.data + ']]>';
|
||||
case 8: return '<!-- ' + node.data + '-->';
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<label for="name" class="control-label">Database Name</label>
|
||||
<input id="name" type="text" name="name" class="form-control" required="required" autocomplete="off" pattern="^[a-zA-Z][a-zA-Z0-9_]+$" title="Only alphanumerical characters and underscore are allowed"/>
|
||||
<input id="name" type="text" name="name" class="form-control" required="required" autocomplete="off"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -208,7 +208,7 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="name" class="control-label">Database Name</label>
|
||||
<input id="name" type="text" name="name" class="form-control" required="required" pattern="^[a-zA-Z][a-zA-Z0-9_]+$" title="Only alphanumerical characters and underscore are allowed"/>
|
||||
<input id="name" type="text" name="name" class="form-control" required="required"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="copy">This database might have been moved or copied.</label>
|
||||
@@ -281,7 +281,7 @@
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="new_name" class="control-label">New Name</label>
|
||||
<input id="new_name" type="text" name="new_name" class="form-control" required="required" pattern="^[a-zA-Z][a-zA-Z0-9_]+$" title="Only alphanumerical characters and underscore are allowed"/>
|
||||
<input id="new_name" type="text" name="new_name" class="form-control" required="required"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
|
||||
@@ -168,7 +168,7 @@
|
||||
</record>
|
||||
|
||||
<record id="group_partner_manager" model="res.groups">
|
||||
<field name="category_id" ref="module_category_extra"/>
|
||||
<field name="category_id" ref="module_category_usability"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
|
||||
Reference in New Issue
Block a user