Hi, I'm MrTango

    Latest Posts

  1. ES6 (vanilla Javascript) replacements for jQuery

    In jQuery one hase a lot of helpful methods. This is a list of vanilla Javascript way's to do the same without jQuery.

  2. Plone: Restrict subscriber to Plone sides where the addon is enabled

    Since subscribers and adapters are not allowing us to define a browser layer in the registration, like browser views do, we have to find another way, to make sure our subscribe only effects the Plone side where we enable the addon.

  3. Install Plone 6 classic UI with PDM

    PDM is a modern Python package manager, which can install Plone and it's dependencies and keep it consistent.

  4. Realizing an optgroup-Tag based selection in Plone, by using TreeVocabularies

    Optgroup tags in selections are a good way of grouping items of a selection list. In Plone you can archive this by using a TreeVocabulary with a SelectionWidget.

  5. Building multi column add/edit forms for DX Content Types in Plone

    Edit and Add forms in Plone are usually auto generated from a list of defined fields and fieldsets. With CSS Grid it is today easy to build multi column forms and views for them.

  6. Define registry settings for Plone 5 and Plone 6 in your add-on

    Since Plone 6 moved a lot of settings from Products.CMFPlone to plone.base, the registry settings between Plone 5 and 6 are differ a bit. I'm showing you how to register settings for both major Plone versions.

  7. Fixing PDF indexing / missing pdf_to_text transform in Plone

    If poppler-utils was not installed when a Plone site was created, the pdf transforms are missing. Just installing poppler-utils will not ad them automatically. We show here, how to fix it in the debug shell.

  8. Assign permission roles based on workflow state and group membership

    How to assign permission roles based on workflow state and group membership.

  9. ES6 (vanilla Javascript) alternative to jQuery on()

    In jQuery one can use the on() method (event delegation) to register an event handler for example on the body tag and match bubbling events. This is a vanilla Javascript way to do the same without jQuery.

  10. Plone: subscribe to an event when a new user is registered

    When a new user is registered in Plone, we want to do automated actions with the user.

  11. Smart compact vhost config for nginx Webserver as HTTPS-Proxy for Plone CMS

    Nginx is one of the most used webserver/proxy in front of Plone CMS. This example showes how to setup a compact virtual host for Plone.

  12. Creating an Odoo Meeting object from an Opportunity in a Python Automated Action

    In Odoo you can create objects from an automated action, with a bit of Python code. But creating a Meeting was a bit tricky.

  13. Using Caddy Webserver as HTTPS-Proxy for Plone

    Caddy supports configuration free HTTPS powered by Let's encrypt certificates. This example showes how to setup a virtual host for Plone.

  14. Ansible: Add an empty line before a blockinfile

    How to insert an empty line before a blockinfile inserted block.

  15. Transmogrifier: skip existing items

    How to use collective.transmogrifier.sections.condition to skip existing items, by a catalog query.

  16. The new generation of bobtemplates.plone / plonecli

    the Plone package generator and command line client, bobtemplates.plone/plonecli

  17. Useful stylesheets for layouts done with Plone's Mosaic Editor

    Some useful stylesheets (CSS) for the Plone Grid Editor Mosaic.

  18. Writing a custom service for Plone REST API

    The Plone REST API allows you to reduce client resquests, by expanding a response to include additional information in one single response. This post shows how you can write a service and expand it.

  19. Writing a custom serializer for Plone REST API

    The Plone REST API already provides a lot of useful information and functions by default, but sometimes you want a bit more customization on the backend, for easier usage on the client side.

  20. Iterating over Plone Dexterity fields

    Every Dexterity based object in Plone has a fields defined by one or more schemas. Here is a generic way to iterate over them. This includes also fields defined in behaviors.

1 ~ 2 (:~