# HG changeset patch # User Thierry Florac # Date 1507876236 -7200 # Node ID 724672199ef32c79cbbff1ffafe280530bbd5dc7 # Parent 8108753b99ba6ee7865674474e0de69675a70493 Refresh count markers on HTML update diff -r 8108753b99ba -r 724672199ef3 src/pyams_content/component/paragraph/zmi/html.py --- a/src/pyams_content/component/paragraph/zmi/html.py Fri Oct 13 08:30:00 2017 +0200 +++ b/src/pyams_content/component/paragraph/zmi/html.py Fri Oct 13 08:30:36 2017 +0200 @@ -16,6 +16,7 @@ # import standard library # import interfaces +from pyams_content.component.association.interfaces import IAssociationTarget from pyams_content.component.association.zmi.interfaces import IAssociationsParentForm from pyams_content.component.illustration.interfaces import IIllustration, IIllustrationRenderer from pyams_content.component.paragraph.interfaces import IParagraphContainerTarget, IParagraphContainer, \ @@ -36,7 +37,8 @@ from pyams_content.component.paragraph.html import HTMLParagraph from pyams_content.component.paragraph.zmi import BaseParagraphAJAXAddForm, BaseParagraphAJAXEditForm, \ BaseParagraphAddMenu -from pyams_content.component.paragraph.zmi.container import ParagraphContainerView +from pyams_content.component.paragraph.zmi.container import ParagraphContainerView, ParagraphContainerTable, \ + ParagraphTitleToolbarViewletManager from pyams_pagelet.pagelet import pagelet_config from pyams_template.template import template_config @@ -142,11 +144,22 @@ def get_ajax_output(self, changes): output = super(HTMLParagraphPropertiesAJAXEditForm, self).get_ajax_output(changes) if 'body' in changes.get(IHTMLParagraph, ()): + # refresh associations count markers + parent = get_parent(self.context, IAssociationTarget) + table = ParagraphContainerTable(parent, self.request) + viewlet = ParagraphTitleToolbarViewletManager(parent, self.request, table) + viewlet.update() + output.setdefault('events', []).append({ + 'event': 'PyAMS_content.changed_item', + 'options': {'handler': 'PyAMS_content.paragraphs.updateToolbar', + 'object_name': self.context.__name__, + 'toolbar_tag': viewlet.render()}}) + # refresh associations table associations_table = AssociationsTable(self.context, self.request) associations_table.update() output.setdefault('events', []).append({ 'event': 'PyAMS_content.changed_item', - 'options': {'object_type': 'associations', + 'options': {'handler': 'PyAMS_content.associations.refreshAssociations', 'object_name': associations_table.id, 'table': associations_table.render()}}) return output @@ -176,11 +189,22 @@ def get_ajax_output(self, changes): output = super(HTMLParagraphInnerAJAXEditForm, self).get_ajax_output(changes) if 'body' in changes.get(IHTMLParagraph, ()): + # refresh associations count markers + parent = get_parent(self.context, IAssociationTarget) + table = ParagraphContainerTable(parent, self.request) + viewlet = ParagraphTitleToolbarViewletManager(parent, self.request, table) + viewlet.update() + output.setdefault('events', []).append({ + 'event': 'PyAMS_content.changed_item', + 'options': {'handler': 'PyAMS_content.paragraphs.updateToolbar', + 'object_name': self.context.__name__, + 'toolbar_tag': viewlet.render()}}) + # refresh associations table associations_table = AssociationsTable(self.context, self.request) associations_table.update() output.setdefault('events', []).append({ 'event': 'PyAMS_content.changed_item', - 'options': {'object_type': 'associations', + 'options': {'handler': 'PyAMS_content.associations.refreshAssociations', 'object_name': associations_table.id, 'table': associations_table.render()} })