[IMP] refactor bundle ir.attachment cache invalidation
This commit is contained in:
@@ -330,4 +330,12 @@ class ir_attachment(osv.osv):
|
||||
return self.pool.get('ir.actions.act_window').for_xml_id(
|
||||
cr, uid, 'base', 'action_attachment', context=context)
|
||||
|
||||
def invalidate_bundle(self, cr, uid, type='%', xmlid=None, context=None):
|
||||
assert type in ('%', 'css', 'js'), "Unhandled bundle type"
|
||||
xmlid = '%' if xmlid is None else xmlid + '%'
|
||||
domain = [('url', '=like', '/web/%s/%s/%%' % (type, xmlid))]
|
||||
ids = self.search(cr, uid, domain, context=context)
|
||||
if ids:
|
||||
self.unlink(cr, uid, ids, context=context)
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -1153,12 +1153,8 @@ class AssetsBundle(object):
|
||||
|
||||
def set_cache(self, type, content):
|
||||
ira = self.registry['ir.attachment']
|
||||
url_prefix = '/web/%s/%s/' % (type, self.xmlid)
|
||||
# Invalidate previous caches
|
||||
oids = ira.search(self.cr, self.uid, [('url', '=like', url_prefix + '%')], context=self.context)
|
||||
if oids:
|
||||
ira.unlink(self.cr, openerp.SUPERUSER_ID, oids, context=self.context)
|
||||
url = url_prefix + self.version
|
||||
ira.invalidate_bundle(self.cr, openerp.SUPERUSER_ID, type=type, xmlid=self.xmlid)
|
||||
url = '/web/%s/%s/%s' % (type, self.xmlid, self.version)
|
||||
ira.create(self.cr, openerp.SUPERUSER_ID, dict(
|
||||
datas=content.encode('utf8').encode('base64'),
|
||||
type='binary',
|
||||
|
||||
Reference in New Issue
Block a user