Metadata-Version: 2.4
Name: imio.events.core
Version: 1.2.49
Summary: Core product for iMio events website
Home-page: https://github.com/collective/imio.events.core
Author: iMio
Author-email: christophe.boulanger@imio.be
License: GPL version 2
Project-URL: PyPI, https://pypi.python.org/pypi/imio.events.core
Project-URL: Source, https://github.com/collective/imio.events.core
Project-URL: Tracker, https://github.com/collective/imio.events.core/issues
Keywords: Python Plone CMS
Classifier: Environment :: Web Environment
Classifier: Framework :: Plone
Classifier: Framework :: Plone :: Addon
Classifier: Framework :: Plone :: 6.1
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Operating System :: OS Independent
Classifier: License :: OSI Approved :: GNU General Public License v2 (GPLv2)
Requires-Python: >=3.10
License-File: LICENSE.GPL
License-File: LICENSE.rst
Requires-Dist: setuptools
Requires-Dist: embeddify
Requires-Dist: z3c.jbot
Requires-Dist: plone.api>=1.8.4
Requires-Dist: plone.gallery
Requires-Dist: plone.restapi
Requires-Dist: plone.app.dexterity
Requires-Dist: plone.app.discussion
Requires-Dist: plone.app.imagecropping
Requires-Dist: collective.geolocationbehavior
Requires-Dist: collective.taxonomy
Requires-Dist: collective.z3cform.datagridfield
Requires-Dist: eea.facetednavigation
Requires-Dist: imio.smartweb.common
Requires-Dist: imio.smartweb.locales
Provides-Extra: test
Requires-Dist: plone.app.testing; extra == "test"
Requires-Dist: plone.testing>=5.0.0; extra == "test"
Requires-Dist: plone.app.contenttypes; extra == "test"
Requires-Dist: plone.app.robotframework[debug]; extra == "test"
Requires-Dist: mock; extra == "test"
Requires-Dist: freezegun; extra == "test"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: project-url
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

.. This README is meant for consumption by humans and pypi. Pypi can render rst files so please do not use Sphinx features.
   If you want to learn more about writing documentation, please check out: http://docs.plone.org/about/documentation_styleguide.html
   This text does not appear on pypi or github. It is a comment.

.. image:: https://github.com/IMIO/imio.events.core/workflows/Tests/badge.svg
    :target: https://github.com/IMIO/imio.events.core/actions?query=workflow%3ATests
    :alt: CI Status

.. image:: https://coveralls.io/repos/github/IMIO/imio.events.core/badge.svg?branch=main
    :target: https://coveralls.io/github/IMIO/imio.events.core?branch=main
    :alt: Coveralls

.. image:: https://img.shields.io/pypi/v/imio.events.core.svg
    :target: https://pypi.python.org/pypi/imio.events.core/
    :alt: Latest Version

.. image:: https://img.shields.io/pypi/status/imio.events.core.svg
    :target: https://pypi.python.org/pypi/imio.events.core
    :alt: Egg Status

.. image:: https://img.shields.io/pypi/pyversions/imio.events.core.svg?style=plastic   :alt: Supported - Python Versions

.. image:: https://img.shields.io/pypi/l/imio.events.core.svg
    :target: https://pypi.python.org/pypi/imio.events.core/
    :alt: License


================
imio.events.core
================

Core product form iMio events website

Features
--------

This products contains:
- Content types: Agenda, Folder, Event


Examples
--------

- https://agenda.enwallonie.be


Documentation
-------------


    **ODWB endpoints:**

    @odwb

    - Push event(s) in odwb table : "iMio - Agenda - événements"

    - some subscribers are called to push/remove event in odwb table

    - We add an event in odwb table when it is published and remove it when it is unpublished (or deleted)

    - When we duplicate an event, the copy of this event is not push to odwb until it is published

    - When we move an event into another agenda, the event is updated in odwb table (the agenda title and its uid change)


    @odwb_entities

    - Push entities in odwb table : "iMio - Agenda - Entités"



Translations
------------

This product has been translated into

- French


Installation
------------

Install imio.events.core by adding it to your buildout::

    [buildout]

    ...

    eggs =
        imio.events.core


and then running ``bin/buildout``


Contribute
----------

- Issue Tracker: https://github.com/collective/imio.events.core/issues
- Source Code: https://github.com/collective/imio.events.core


License
-------

The project is licensed under the GPLv2.


Contributors
============

- iMio, christophe.boulanger@imio.be


Changelog
=========


1.2.49 (2026-04-29)
-------------------

- SUP-52831 : Fix @events ?event_dates.range=min dropping future events when the agenda has many past events.
  Restore the event_dates catalog filter (with a 1-year permissive lower bound to keep ongoing/open_end events) and replace the hardcoded b_size=400 by the actual resultset length so the serializer never truncates.
  [boulch]


1.2.48 (2026-04-28)
-------------------

- SUP-52831 : Fix @events range=min to return ongoing and open_end events
  [boulch]

- Fix a bug in BringEventIntoAgendasForm and improve tests
  [boulch]


1.2.47 (2026-04-13)
-------------------

- WEB-4353 : Feat: switch portal timezone from UTC to Europe/Brussels and push all published events to ODWB after commit
  [boulch]


1.2.46 (2026-03-20)
-------------------

- OIA-109 : OMNIA : Add ia "CategorizeContent" and titles proposal generation features on imio.events.Event
  [boulch]


1.2.45 (2026-01-05)
-------------------

- WEB-4257 : improve tests to avoid data leak in some requests
  [boulch]

- WEB-4300 : Add upgrade step to delete plone.eventattendees behavior.
  [thomlamb]


1.2.44 (2025-11-14)
-------------------

- SUP-38561 : Refactored deletion checks: ignore news items when counting
  apply restriction only to news folders or folders containing items.
  [boulch]

- Migrate to Plone 6.1.3
  [boulch]


1.2.43 (2025-09-08)
-------------------

- SUP-46571: Correct handling of "min" range for event recurrences
  [boulch]

- CITI-10 : Add (de) translation for event_public taxonomy and for event types vocabulary
  [boulch]


1.2.42 (2025-07-10)
-------------------

- CITI-10 : Add new translated (de) vocabularies for e-guichet
  [boulch]


1.2.41 (2025-07-10)
-------------------

- SUP-45754 : Fix (another) bug when we get whole day events
  [boulch]


1.2.40 (2025-06-25)
-------------------

- WEB-4278 : Create translated (de) collective.taxonomy.event_public taxonomy as EventPublicDe vocabulary for e-guichet (citizen project)
  [boulch]

- SUP-45270 : Don't set end date when undetermined end date is set to True (open_end property)
  [boulch]


1.2.39 (2025-06-16)
-------------------

- CITI-8 : Fix images for citizen space in e-guichet
  [boulch]


1.2.38 (2025-05-28)
-------------------

- WEB-4251 : Fix bug when we get a whole day event. On the day, these events don't appear!
  [boulch]


1.2.37 (2025-05-27)
-------------------

- WEB-4270 : Mark event as dirty when modifying selected agendas
  Ensures that initial values in the TranslatedAjaxSelectWidget are correctly updated
  [remdub]


1.2.36 (2025-05-27)
-------------------

- WEB-4264 : Fix has_leadmage metadata_field
  [boulch]


1.2.35 (2025-05-20)
-------------------

- Use fullobjects=1 when we want to get only one event
  [boulch]


1.2.34 (2025-05-15)
-------------------

- WEB-4234  : Fix LookupError when querying on events without fullobjects=1 in querystring
  (old/bad occurences refer to old event UID)
  [boulch]


1.2.33 (2025-05-14)
-------------------

- Upgrade dev environment to Plone 6.1.1
  [boulch]

- Update Python classifiers to be compatible with Python 3.13
  [boulch]

- Update Python classifiers to be compatible with Python 3.12
  [boulch]

- WEB-4234  : Avoid using fullobjects in events endpoint. Increase events time caching. Reduce b_size.
  [boulch]


1.2.32 (2025-05-12)
-------------------

- WEB-4234  : Refactor agenda subscription (so => events indexing). Try to avoid latency
  [boulch]

- Add some logs
  [boulch]

1.2.31 (2025-03-28)
-------------------

- WEB-4234 : Continue refactoring endpoint. Correct a bug with batching.
  [boulch]


1.2.30 (2025-03-24)
-------------------

- WEB-4234 : Refactor events endpoint. Try to improve performances : Enhance cache management,
  less dates transformations, Use a generator to get occurrences,Remove deepcopy to manage occurrences,...
  [boulch])


1.2.29 (2025-03-17)
-------------------

- Cache the UserAgendas vocabulary and set pattern_options to start the AJAX query after 3 characters
  [boulch]

- Update Python classifiers to be compatible with Python 3.12
  [remdub]

- Migrate to Plone 6.0.14
  [boulch]


1.2.28 (2025-01-09)
-------------------

- WEB-4153 : Add a new cacheRuleset to use with our custom rest endpoints
  [remdub]


1.2.27 (2024-08-02)
-------------------

- WEB-4130 : Fix bug which forbid to remove events
  [boulch]


1.2.26 (2024-06-26)
-------------------

- WEB-4121 : Add logs if container_uid is None
  [boulch]


1.2.25 (2024-06-21)
-------------------

- WEB-4088 : Use transaction commit hook to be sure event object is available before odwb call
  [boulch]

- GHA tests on Python 3.8 3.9 and 3.10
  [remdub]


1.2.24 (2024-06-20)
-------------------

- WEB-4088 : Use one state workflow for imio.events.Agenda / imio.events.Folder
  [boulch]


1.2.23 (2024-06-19)
-------------------

- Add events lead image (preview scale) for odwb and some logs
  [boulch]

- Refactor items_to_delete : Added translations / Corrected result of number of items
  [boulch]


1.2.22 (2024-06-06)
-------------------

- WEB-4113 : Use `TranslatedAjaxSelectWidget` to fix select2 values translation
  [laulaz]


1.2.21 (2024-05-28)
-------------------

- WEB-4101 : Calculate `search-filters` JSON based on `@events` search results logic.
  We need to refactor & test (more) this module.
  [laulaz]


1.2.20 (2024-05-27)
-------------------

- WEB-4101 : Add index for local category search
  [laulaz]


1.2.19 (2024-05-24)
-------------------

- Fix naming of two fields for odwb
  [boulch]


1.2.18 (2024-05-24)
-------------------

- improves odwb fields nomenclature
  [boulch]


1.2.17 (2024-05-24)
-------------------

- WEB-4101 : Handle (local) categories translations with datagrid field and
  new indexes. French value is used as identifier for local categories.
  [laulaz]

- WEB-4088 : Cover use case for sending data in odwb for a staging environment
  [boulch]

- Fix Topics & Categories in SearchableText translated indexes
  [laulaz]

- WEB-4088 : Add some odwb endpoints (for events , for entities)
  [boulch]

- WEB-4108 : Prevent removing calendar if there is at least 1 event in it.
  [boulch]


1.2.16 (2024-05-02)
-------------------

- WEB-4101 : Use local category (if any) instead of category in `category_title` indexer
  [laulaz]


1.2.15 (2024-04-10)
-------------------

- Fix : Keep events where start date is earlier than current date and end date is later than current date (when no period defined)
  [boulch]


1.2.14 (2024-04-04)
-------------------

- Fix serializer. Sometimes we have brain, sometines event, agenda or folder...
  [boulch]

1.2.13 (2024-04-04)
-------------------

- Getting agenda title/id to use it in rest views
  [boulch]


1.2.12 (2024-03-29)
-------------------

- MWEBPM-9 : Add container_uid as metadata_field to retrieve agenda id/title in event serializer and set it in our json dataset
  [boulch]

- MWEBPM-8 : Add support for getting only past events
  [boulch]


1.2.11 (2024-03-21)
-------------------

- Fix some issues (bad copy/paste!)
  [boulch]


1.2.10 (2024-03-21)
-------------------

- WEB-4068 : Refactor / Fix some issues
  [boulch]


1.2.9 (2024-03-13)
------------------

- WEB-4068 : Add field to limit the new feature "adding events in any agenda" to some entities
  [boulch]


1.2.8 (2024-03-12)
------------------

- WEB-4068 : Refactor "adding events in any agenda" : (update translations, add feature : "remove agenda")
  [boulch]


1.2.7 (2024-03-11)
------------------

- WEB-4068 : Adding events in any agenda of the current entity
  [boulch]


1.2.6 (2024-02-28)
------------------

- WEB-4072, WEB-4073 : Enable solr.fields behavior on some content types
  [remdub]

- WEB-4006 : Exclude some content types from search results
  [remdub]

- MWEBRCHA-13 : Add versioning on imio.events.Event
  [boulch]


1.2.5 (2024-01-25)
------------------

-  WEB-3802 : Fix : Avoid noizy events occurrences. Occurences that begin later than min date with a valid end date.
   [boulch]


1.2.4 (2024-01-25)
------------------

- WEB-3802 : Fix : Keep events occurrences when start date is smaller than min date but end date is greater than min date
  [boulch]


1.2.3 (2024-01-24)
------------------

- WEB-3802 : Manually filter dates to respect range passing into REST request.
  [boulch]


1.2.2 (2024-01-22)
------------------

- WEB-3802 : Get dates range for events in REST views. Comming from imio.smartweb.core React view
  [boulch]


1.2.1 (2024-01-09)
------------------

- WEB-4041 : Handle new "carre" scale
  [boulch]


1.2 (2023-10-25)
----------------

- WEB-3985 : Use new portrait / paysage scales & logic
  [boulch, laulaz]

- WEB-3985 : Remove old cropping information when image changes
  [boulch, laulaz]


1.1.15 (2023-10-18)
-------------------

- WEB-3997 : Fix : Initial agenda must be kept!
  [boulch]

- WEB-3997 : Fix : Add condition to avoid getting a broken "_broken_to_path" old/removed agenda
  [boulch]


1.1.14 (2023-10-17)
-------------------

- WEB-3997 : Fix recursive_generator if agenda A has a reference to agenda B and agenda B has a reference to agenda A
  [boulch]


1.1.13 (2023-10-11)
-------------------

- WEB-3997 : Add cascading agendas subscriptions retrieval in endpoint to get events "by dependency"
  [boulch]


1.1.12 (2023-10-09)
-------------------

- WEB-3989 : Fix infinite loop on object deletion & remove logs
  [laulaz]


1.1.11 (2023-09-12)
-------------------

- Avoid infinite loop with bad recurrence RRULE expression (`INTERVAL=0"`) - improved
  See https://github.com/plone/plone.formwidget.recurrence/issues/39
  [laulaz]


1.1.10 (2023-07-26)
-------------------

- [WEB-3937] Fix add / edit forms for events
  [boulch, laulaz]


1.1.9 (2023-07-24)
------------------

- [WEB-3937] Limit event duration to maximum 3 years
  [boulch, laulaz]


1.1.8 (2023-07-18)
------------------

- Add logs in endpoint. Help us to find why agenda go slowlier
  [boulch]


1.1.7 (2023-07-03)
------------------

- Avoid infinite loop with bad recurrence RRULE expression (`INTERVAL=0"`)
  See https://github.com/plone/plone.formwidget.recurrence/issues/39
  [laulaz]


1.1.6 (2023-05-05)
------------------

- INFRA-4725 : Add logging to find infinite loop in recurrence calculation
  [laulaz]

- Migrate to Plone 6.0.4
  [boulch]


1.1.5 (2023-03-31)
------------------

- Need fullobjects in query to avoid "Cannot read properties of undefined (reading 'latitude')" in rest view
  So, we need to serialize first_start and first_end from obj.start and obj.end. If we don't do that, we got brain.start/end
  these are updates with first valid event occurence
  [boulch]


1.1.4 (2023-03-30)
------------------

- Fix occurrences expansion calculation for start dates
  We can't use start/end recurring indexes because they return the next occurrence
  and not the first one, so recurrence rule cannot be applied on them.
  [laulaz]

- Fix bug calculating `event_dates` index with occurrences
  [laulaz]

- WEB-3908 : Create new endpoint to serve batched events occurrences
  [boulch]


1.1.3 (2023-03-13)
------------------

- Add warning message if images are too small to be cropped
  [laulaz]

- Migrate to Plone 6.0.2
  [boulch]

- Fix reindex after cut / copy / paste in some cases
  [laulaz]


1.1.2 (2023-02-20)
------------------

- Remove unused title_fr and description_fr metadatas
  [laulaz]

- Remove SearchableText_fr (Solr will use SearchableText for FR)
  [laulaz]


1.1.1 (2023-01-12)
------------------

- Add new descriptions metadatas and SearchableText indexes for multilingual
  [laulaz]


1.1 (2022-12-20)
----------------

- Update to Plone 6.0.0 final
  [boulch]


1.0.1 (2022-11-15)
------------------

- Fix SearchableText index for multilingual
  [laulaz]


1.0 (2022-11-15)
----------------

- Add multilingual features: New fields, vocabularies translations, restapi serializer
  [laulaz]


1.0a6 (2022-10-21)
------------------

- WEB-3770 : Add serializer to get included items when you request an imio.events.Event fullbobjects
  [boulch]

- WEB-3757 : Automaticaly create some defaults agendas (with agendas subscription) when creating a new entity
  [boulch]

- WEB-3726 : Add subjects (keyword) in SearchableText
  [boulch]


1.0a5 (2022-10-18)
------------------

- Add logging to find cause of infinite loop statement
  [laulaz]

- Fix deprecated get_mimetype_icon
  [boulch]
- Add logging to find cause of infinite loop statement
  [laulaz]

- Add eea.faceted.navigable behavior on Entity & Agenda types
  [laulaz]


1.0a4 (2022-07-14)
------------------

- Ensure objects are marked as modified after appending to a list attribute
  [laulaz]

- Fix selected_agendas on events after creating a "linked" agenda
  [boulch]


1.0a3 (2022-05-03)
------------------

- Remove useless imio.events.Page content type
  [boulch]

- Use unique urls for images scales to ease caching
  [boulch]

- Use common.interfaces.ILocalManagerAware to mark a locally manageable content
  [boulch]


1.0a2 (2022-02-09)
------------------

- Add event_dates index to handle current events queries correctly
  [laulaz]

- Update buildout to use Plone 6.0.0a3 packages versions
  [boulch]


1.0a1 (2022-01-25)
------------------

- Initial release.
  [boulch]
