[FIX] P3: absolute ordering removed
This commit is contained in:
@@ -192,10 +192,10 @@ class AccountMove(models.Model):
|
||||
@api.multi
|
||||
def _check_lock_date(self):
|
||||
for move in self:
|
||||
lock_date = max(move.company_id.period_lock_date, move.company_id.fiscalyear_lock_date)
|
||||
lock_date = max(move.company_id.period_lock_date or '0000-00-00', move.company_id.fiscalyear_lock_date or '0000-00-00')
|
||||
if self.user_has_groups('account.group_account_manager'):
|
||||
lock_date = move.company_id.fiscalyear_lock_date
|
||||
if move.date <= lock_date:
|
||||
if move.date <= (lock_date or '0000-00-00'):
|
||||
if self.user_has_groups('account.group_account_manager'):
|
||||
message = _("You cannot add/modify entries prior to and inclusive of the lock date %s") % (lock_date)
|
||||
else:
|
||||
@@ -1030,7 +1030,7 @@ class AccountMoveLine(models.Model):
|
||||
partial_rec_set = self.env['account.partial.reconcile']
|
||||
aml_id = False
|
||||
partial_rec_id = False
|
||||
maxdate = None
|
||||
maxdate = '0000-00-00'
|
||||
for aml in self:
|
||||
total_debit += aml.debit
|
||||
total_credit += aml.credit
|
||||
@@ -1492,7 +1492,7 @@ class AccountPartialReconcile(models.Model):
|
||||
# The move date should be the maximum date between payment and invoice
|
||||
# (in case of payment in advance). However, we should make sure the
|
||||
# move date is not recorded after the end of year closing.
|
||||
if move_date > self.company_id.fiscalyear_lock_date:
|
||||
if (move_date or '0000-00-00' > self.company_id.fiscalyear_lock_date or '0000-00-00'):
|
||||
res['date'] = move_date
|
||||
return res
|
||||
|
||||
@@ -1720,7 +1720,7 @@ class AccountPartialReconcile(models.Model):
|
||||
#make sure that all partial reconciliations share the same secondary currency otherwise it's not
|
||||
#possible to compute the exchange difference entry and it has to be done manually.
|
||||
currency = list(partial_rec_set)[0].currency_id
|
||||
maxdate = None
|
||||
maxdate = '0000-00-00'
|
||||
|
||||
for partial_rec in partial_rec_set:
|
||||
if partial_rec.currency_id != currency:
|
||||
|
||||
@@ -109,7 +109,7 @@ class ReportPartnerLedger(models.AbstractModel):
|
||||
self.env.cr.execute(query, tuple(params))
|
||||
partner_ids = [res['partner_id'] for res in self.env.cr.dictfetchall()]
|
||||
partners = obj_partner.browse(partner_ids)
|
||||
partners = sorted(partners, key=lambda x: (x.ref, x.name))
|
||||
partners = sorted(partners, key=lambda x: (x.ref or '', x.name or ''))
|
||||
|
||||
return {
|
||||
'doc_ids': partner_ids,
|
||||
|
||||
@@ -298,9 +298,9 @@ class Lead(models.Model):
|
||||
# stage change with new stage: update probability and date_closed
|
||||
if vals.get('stage_id') and 'probability' not in vals:
|
||||
vals.update(self._onchange_stage_id_values(vals.get('stage_id')))
|
||||
if vals.get('probability') >= 100 or not vals.get('active', True):
|
||||
if vals.get('probability', 0) >= 100 or not vals.get('active', True):
|
||||
vals['date_closed'] = fields.Datetime.now()
|
||||
elif 'probability' in vals and vals['probability'] < 100:
|
||||
elif 'probability' in vals:
|
||||
vals['date_closed'] = False
|
||||
return super(Lead, self).write(vals)
|
||||
|
||||
|
||||
@@ -7,7 +7,6 @@ import logging
|
||||
import psycopg2
|
||||
import werkzeug
|
||||
|
||||
from operator import itemgetter
|
||||
from werkzeug import url_encode
|
||||
|
||||
from odoo import api, http, registry, SUPERUSER_ID, _
|
||||
@@ -154,10 +153,10 @@ class MailController(http.Controller):
|
||||
'default': subtype.default,
|
||||
'internal': subtype.internal,
|
||||
'followed': subtype.id in followers.mapped('subtype_ids').ids,
|
||||
'parent_model': subtype.parent_id and subtype.parent_id.res_model or False,
|
||||
'parent_model': subtype.parent_id.res_model,
|
||||
'id': subtype.id
|
||||
} for subtype in subtypes]
|
||||
subtypes_list = sorted(subtypes_list, key=itemgetter('parent_model', 'res_model', 'internal', 'sequence'))
|
||||
subtypes_list = sorted(subtypes_list, key=lambda it: (it['parent_model'] or '', it['res_model'] or '', it['internal'], it['sequence']))
|
||||
return subtypes_list
|
||||
|
||||
@http.route('/mail/view', type='http', auth='none')
|
||||
|
||||
@@ -60,9 +60,9 @@ class AccountInvoiceLine(models.Model):
|
||||
invoice_line.product_id.membership and \
|
||||
not MemberLine.search([('account_invoice_line', '=', invoice_line.id)]):
|
||||
# Product line is a membership product
|
||||
date_from = invoice_line.product_id.membership_date_from
|
||||
date_to = invoice_line.product_id.membership_date_to
|
||||
if invoice_line.invoice_id.date_invoice > date_from and invoice_line.invoice_id.date_invoice < date_to:
|
||||
date_from = invoice_line.product_id.membership_date_from or '0000-00-00'
|
||||
date_to = invoice_line.product_id.membership_date_to or '0000-00-00'
|
||||
if date_from < (invoice_line.invoice_id.date_invoice or '0000-00-00') < date_to:
|
||||
date_from = invoice_line.invoice_id.date_invoice
|
||||
MemberLine.create({
|
||||
'partner': invoice_line.invoice_id.partner_id.id,
|
||||
|
||||
@@ -226,9 +226,7 @@ class TestSurvey(TransactionCase):
|
||||
lines = [line.value_suggested.id for line in question.user_input_line_ids]
|
||||
answers = [{'text': label.value, 'count': lines.count(label.id), 'answer_id': label.id} for label in question.labels_ids]
|
||||
prp_result = self.env['survey.survey'].prepare_result(question)['answers']
|
||||
answers.sort()
|
||||
prp_result.sort()
|
||||
self.assertEqual(prp_result, answers, msg="Statistics of simple, multiple choice questions are different from expectation")
|
||||
self.assertItemsEqual(prp_result, answers, msg="Statistics of simple, multiple choice questions are different from expectation")
|
||||
|
||||
def test_11_survey_result_matrix(self):
|
||||
question = self.env['survey.question'].sudo(self.survey_manager).create({
|
||||
|
||||
@@ -510,7 +510,7 @@ def _realize_padding(it):
|
||||
requests for at least n newlines of padding. Runs thereof can be collapsed
|
||||
into the largest requests and converted to newlines.
|
||||
"""
|
||||
padding = None
|
||||
padding = 0
|
||||
for item in it:
|
||||
if isinstance(item, int):
|
||||
padding = max(padding, item)
|
||||
@@ -518,7 +518,7 @@ def _realize_padding(it):
|
||||
|
||||
if padding:
|
||||
yield '\n' * padding
|
||||
padding = None
|
||||
padding = 0
|
||||
|
||||
yield item
|
||||
# leftover padding irrelevant as the output will be stripped
|
||||
|
||||
@@ -209,7 +209,7 @@ class BlogPost(models.Model):
|
||||
def write(self, vals):
|
||||
self.ensure_one()
|
||||
if 'website_published' in vals and 'published_date' not in vals:
|
||||
if self.published_date <= fields.Datetime.now():
|
||||
if (self.published_date or '') <= fields.Datetime.now():
|
||||
vals['published_date'] = vals['website_published'] and fields.Datetime.now()
|
||||
result = super(BlogPost, self).write(vals)
|
||||
self._check_for_publication(vals)
|
||||
|
||||
@@ -73,7 +73,7 @@ class WebsiteCustomer(http.Controller):
|
||||
'country_id_count': 0,
|
||||
'country_id': (country.id, country.name)
|
||||
})
|
||||
countries.sort(key=lambda d: d['country_id'] and d['country_id'][1])
|
||||
countries.sort(key=lambda d: (d['country_id'] or (0, ""))[1])
|
||||
|
||||
countries.insert(0, {
|
||||
'country_id_count': country_count,
|
||||
|
||||
@@ -68,7 +68,7 @@ class WebsiteEventTrackController(http.Controller):
|
||||
@http.route(['''/event/<model("event.event", "[('website_track','=',1)]"):event>/agenda'''], type='http', auth="public", website=True)
|
||||
def event_agenda(self, event, tag=None, **post):
|
||||
days_tracks = collections.defaultdict(lambda: [])
|
||||
for track in event.track_ids.sorted(lambda track: (track.date, bool(track.location_id))):
|
||||
for track in event.track_ids.sorted(lambda track: (track.date or '', bool(track.location_id))):
|
||||
if not track.date:
|
||||
continue
|
||||
days_tracks[track.date[:10]].append(track)
|
||||
|
||||
@@ -46,7 +46,7 @@ class TestEmptyDate(common.TransactionCase):
|
||||
|
||||
gb = self.Model.read_group([], ['date', 'value'], ['date'], lazy=False)
|
||||
|
||||
self.assertSequenceEqual(sorted(gb, key=lambda r: r['date']), [{
|
||||
self.assertSequenceEqual(sorted(gb, key=lambda r: r['date'] or ''), [{
|
||||
'__count': 2,
|
||||
'__domain': [('date', '=', False)],
|
||||
'date': False,
|
||||
|
||||
Reference in New Issue
Block a user