Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compatibility with slots #6

Draft
wants to merge 14 commits into
base: main
Choose a base branch
from
Draft
Prev Previous commit
Next Next commit
Merge remote-tracking branch 'origin/main' into plone_root
tiberiuichim committed Oct 15, 2023
commit edc93c07c86bf9ae04f872e4ecf7cbb0278ff47e
15 changes: 7 additions & 8 deletions src/collective/volto/formsupport/datamanager/catalog.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-

from collective.volto.formsupport import logger
from collective.volto.formsupport.interfaces import IFormDataStore
from collective.volto.formsupport.utils import get_blocks
from copy import deepcopy
@@ -12,14 +13,12 @@
from repoze.catalog.catalog import Catalog
from repoze.catalog.indexes.field import CatalogFieldIndex
from souper.interfaces import ICatalogFactory
from souper.soup import get_soup, NodeAttributeIndexer, Record
from zope.component import adapter, getUtility
from zope.interface import implementer, Interface

import logging


logger = logging.getLogger(__name__)
from souper.soup import get_soup
from souper.soup import NodeAttributeIndexer
from souper.soup import Record
from zope.component import adapter
from zope.interface import implementer
from zope.interface import Interface


@implementer(ICatalogFactory)
Original file line number Diff line number Diff line change
@@ -7,8 +7,13 @@
from plone.restapi.interfaces import IExpandableElement
from plone.restapi.serializer.converters import json_compatible
from plone.restapi.services import Service
from zope.component import adapter, getMultiAdapter
from zope.interface import implementer, Interface
from zope.component import adapter
from zope.component import getMultiAdapter
from zope.interface import implementer
from zope.interface import Interface

import json
import six


@implementer(IExpandableElement)
@@ -40,19 +45,24 @@ def __call__(self, expand=False):
result["form_data"] = data
return result

def show_component(self):
if not api.user.has_permission("Modify portal content", obj=self.context):
return False
@property
@view.memoize
def form_block(self):
blocks = get_blocks(self.context)

if isinstance(blocks, six.text_type):
blocks = json.loads(blocks)
if not blocks:
return False

return {}
for block in blocks.values():
if block.get("@type", "") == "form" and block.get("store", False):
return True
return block
return {}

return False
def show_component(self):
if not api.user.has_permission("Modify portal content", obj=self.context):
return False
return self.form_block and True or False

def expand_records(self, record):
fields_labels = record.attrs.get("fields_labels", {})
Original file line number Diff line number Diff line change
@@ -1,19 +1,27 @@
# -*- coding: utf-8 -*-
from collective.volto.formsupport import _
from collective.volto.formsupport.interfaces import ICaptchaSupport
from collective.volto.formsupport.interfaces import IFormDataStore
from collective.volto.formsupport.interfaces import IPostEvent
from collective.volto.formsupport.utils import get_blocks
from datetime import datetime
from email.message import EmailMessage
from plone import api
from plone.protect.interfaces import IDisableCSRFProtection
from plone.registry.interfaces import IRegistry
from plone.restapi.deserializer import json_body
from plone.restapi.services import Service
from Products.CMFPlone.interfaces.controlpanel import IMailSchema
from xml.etree.ElementTree import ElementTree, Element, SubElement
from xml.etree.ElementTree import Element
from xml.etree.ElementTree import ElementTree
from xml.etree.ElementTree import SubElement
from zExceptions import BadRequest
from zope.component import getMultiAdapter, getUtility
from zope.component import getMultiAdapter
from zope.component import getUtility
from zope.event import notify
from zope.i18n import translate
from zope.interface import alsoProvides
from zope.interface import implementer

import codecs
import logging
3 changes: 2 additions & 1 deletion src/collective/volto/formsupport/utils.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from collections import deque
from plone.restapi.slots.interfaces import ISlot, ISlots
from plone.restapi.slots.interfaces import ISlot
from plone.restapi.slots.interfaces import ISlots

import copy
import json
You are viewing a condensed version of this merge commit. You can view the full changes here.