Browse Source

Merge pull request #179 from yelizariev/10.0-fix-only-string-channels-are-allowed

🚑 polling error on database concurrency error
pull/186/head
Ivan Yelizariev 6 years ago
committed by GitHub
parent
commit
56281d9f1e
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      mail_base/__manifest__.py
  2. 1
      mail_base/controllers/main.py
  3. 4
      mail_base/doc/changelog.rst
  4. 2
      mail_move_message/__manifest__.py
  5. 1
      mail_move_message/controllers/main.py
  6. 4
      mail_move_message/doc/changelog.rst
  7. 4
      mail_move_message/doc/index.rst
  8. 21
      mail_move_message/mail_move_message_models.py

2
mail_base/__manifest__.py

@ -4,7 +4,7 @@
"summary": """Makes Mail extendable""", "summary": """Makes Mail extendable""",
"category": "Discuss", "category": "Discuss",
"images": [], "images": [],
"version": "1.0.4",
"version": "10.0.1.0.5",
"author": "IT-Projects LLC, Pavel Romanchenko", "author": "IT-Projects LLC, Pavel Romanchenko",
"support": "apps@it-projects.info", "support": "apps@it-projects.info",

1
mail_base/controllers/main.py

@ -10,6 +10,7 @@ class MailChatController(BusController):
def _poll(self, dbname, channels, last, options): def _poll(self, dbname, channels, last, options):
if request.session.uid: if request.session.uid:
channels = list(channels) # do not alter original list
channels.append((request.db, 'mail_base.mail_sent')) channels.append((request.db, 'mail_base.mail_sent'))
return super(MailChatController, self)._poll(dbname, channels, last, options) return super(MailChatController, self)._poll(dbname, channels, last, options)

4
mail_base/doc/changelog.rst

@ -1,3 +1,7 @@
`1.0.5`
-------
**FIX**: polling errors on heavy server load
`1.0.4` `1.0.4`
------- -------
**FIX**: issue related to clear cache **FIX**: issue related to clear cache

2
mail_move_message/__manifest__.py

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
{ {
'name': 'Mail relocation', 'name': 'Mail relocation',
'version': '1.0.5',
'version': '10.0.1.0.6',
'author': 'IT-Projects LLC, Ivan Yelizariev, Pavel Romanchenko', 'author': 'IT-Projects LLC, Ivan Yelizariev, Pavel Romanchenko',
'license': 'LGPL-3', 'license': 'LGPL-3',
'category': 'Discuss', 'category': 'Discuss',

1
mail_move_message/controllers/main.py

@ -13,6 +13,7 @@ class MailChatController(BusController):
def _poll(self, dbname, channels, last, options): def _poll(self, dbname, channels, last, options):
if request.session.uid: if request.session.uid:
channels = list(channels) # do not alter original list
channels.append((request.db, 'mail_move_message')) channels.append((request.db, 'mail_move_message'))
channels.append((request.db, 'mail_move_message.delete_message')) channels.append((request.db, 'mail_move_message.delete_message'))
return super(MailChatController, self)._poll(dbname, channels, last, options) return super(MailChatController, self)._poll(dbname, channels, last, options)

4
mail_move_message/doc/changelog.rst

@ -1,3 +1,7 @@
`1.0.6`
-------
**FIX**: polling errors on heavy server load
`1.0.5` `1.0.5`
------- -------

4
mail_move_message/doc/index.rst

@ -0,0 +1,4 @@
=================
Mail relocation
=================

21
mail_move_message/mail_move_message_models.py

@ -71,7 +71,7 @@ class Wizard(models.TransientModel):
parent_id = fields.Many2one('mail.message', string='Search by name', ) parent_id = fields.Many2one('mail.message', string='Search by name', )
model = fields.Selection(_model_selection, string='Model') model = fields.Selection(_model_selection, string='Model')
res_id = fields.Integer(string='Record') res_id = fields.Integer(string='Record')
can_move = fields.Boolean('Can move', compute='get_can_move')
can_move = fields.Boolean('Can move', compute='_compute_can_move')
move_back = fields.Boolean('MOVE TO ORIGIN', help='Move message and submessages to original place') move_back = fields.Boolean('MOVE TO ORIGIN', help='Move message and submessages to original place')
partner_id = fields.Many2one('res.partner', string='Author') partner_id = fields.Many2one('res.partner', string='Author')
filter_by_partner = fields.Boolean('Filter Records by partner') filter_by_partner = fields.Boolean('Filter Records by partner')
@ -88,15 +88,10 @@ class Wizard(models.TransientModel):
@api.depends('message_id') @api.depends('message_id')
@api.multi @api.multi
def get_can_move(self):
def _compute_can_move(self):
for r in self: for r in self:
r.get_can_move_one()
@api.multi
def get_can_move_one(self):
self.ensure_one()
# message was not moved before OR message is a top message of previous move
self.can_move = not self.message_id.moved_by_message_id or self.message_id.moved_by_message_id.id == self.message_id.id
# message was not moved before OR message is a top message of previous move
r.can_move = not r.message_id.moved_by_message_id or r.message_id.moved_by_message_id.id == r.message_id.id
@api.onchange('move_back') @api.onchange('move_back')
def on_change_move_back(self): def on_change_move_back(self):
@ -269,15 +264,15 @@ class MailMessage(models.Model):
moved_from_parent_id = fields.Many2one('mail.message', 'Parent Message (Original)', ondelete='set null') moved_from_parent_id = fields.Many2one('mail.message', 'Parent Message (Original)', ondelete='set null')
moved_by_message_id = fields.Many2one('mail.message', 'Moved by message', ondelete='set null', help='Top message, that initate moving this message') moved_by_message_id = fields.Many2one('mail.message', 'Moved by message', ondelete='set null', help='Top message, that initate moving this message')
moved_by_user_id = fields.Many2one('res.users', 'Moved by user', ondelete='set null') moved_by_user_id = fields.Many2one('res.users', 'Moved by user', ondelete='set null')
all_child_ids = fields.One2many('mail.message', string='All childs', compute='_get_all_childs', help='all childs, including subchilds')
all_child_ids = fields.One2many('mail.message', string='All childs', compute='_compute_all_childs', help='all childs, including subchilds')
@api.multi @api.multi
def _get_all_childs(self, include_myself=True):
def _compute_all_childs(self, include_myself=True):
for r in self: for r in self:
r._get_all_childs_one(include_myself=include_myself)
r._compute_all_childs_one(include_myself=include_myself)
@api.multi @api.multi
def _get_all_childs_one(self, include_myself=True):
def _compute_all_childs_one(self, include_myself=True):
self.ensure_one() self.ensure_one()
ids = [] ids = []
if include_myself: if include_myself:

Loading…
Cancel
Save