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

Fire notifications when UID references are created/destroyed #2061

Merged
merged 3 commits into from
Jul 18, 2022

Conversation

ramonski
Copy link
Contributor

@ramonski ramonski commented Jul 17, 2022

Description of the issue/feature this PR addresses

This PR adds 2 notification events for UIDReference fields:

  • IUIDReferenceCreatedEvent
  • IUIDReferenceDestroyedEvent

Code that would like to e.g. reindex the target object when a reference is created/destroyed, might register event handlers like this:

<configure>
  <subscriber
      for="senaite.core.interfaces.IHaveUIDReferences
           senaite.core.events.uidreference.IUIDReferenceCreatedEvent"
      handler=".handlers.on_reference_created" />

  <subscriber
      for="senaite.core.interfaces.IHaveUIDReferences
           senaite.core.events.uidreference.IUIDReferenceDestroyedEvent"
      handler=".handlers.on_reference_destroyed" />
</configure>

The code implementation looks like this:

def on_reference_created(object, event):
    """Reindex the referenced (target) object if needed
    """
    event.target.reindexObject()


def on_reference_destroyed(object, event):
    """Reindex the referenced (target) object if needed
    """
    event.target.reindexObject()

☝️ NOTE
Currently these events are only fired for the new DX based UID reference field

Current behavior before PR

No events fired when a reference between two objects is created/destroyed

Desired behavior after PR is merged

Events fired when a reference between two objects is created/destroyed

--
I confirm I have tested this PR thoroughly and coded it according to PEP8
and Plone's Python styleguide standards.

@ramonski ramonski requested a review from xispa July 17, 2022 15:03
@ramonski ramonski changed the title Fire notifications when references are created/destroyed Fire notifications when UID references are created/destroyed Jul 17, 2022
@xispa xispa merged commit 5adaf31 into 2.x Jul 18, 2022
@xispa xispa deleted the uidreference-event-notify branch July 18, 2022 07:48
Lunga001 added a commit to bikalims/senaite.core that referenced this pull request Aug 29, 2022
commit 13179f3
Author: Lunga Baliwe <lunga001@gmail.com>
Date:   Mon Mar 28 13:21:40 2022 +0200

    Fix Reference_Definitions, get AS by getKeyword

commit 47fbd32
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Sun Aug 21 12:54:38 2022 +0200

    Customized Quickinstaller Configlet (senaite#2118)

    * Customized quickinstaller

    * ZCML include package

    * Changelog updated

    * UTF8 header added

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit f1f8127
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Sun Aug 21 12:50:28 2022 +0200

    Customized User/Groups Preferences in Site Configuration (senaite#2117)

    * Customized userprefs controlpanel

    * Custom groups controlpanel

    * styling and formatting

    * Hide settings tabs

    * Custom group membership control panel

    * Groupdetails customized

    * Custom userdata panel

    * Customized user group membership

    * Changelog updated

    * Align checkbox center and middle

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit 06ad1e4
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Sun Aug 21 12:36:49 2022 +0200

    Fix allow sample partitions in submitted states (senaite#2116)

    * Fix allow sample partitions in submitted states

    This fixes the regression in PR-2024 for PR-1839:

    - senaite#1839
    - senaite#2024

    * Fixed test

commit 0a1f776
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Sun Aug 21 12:35:52 2022 +0200

    Fix insufficient privileges for instrument QC viewlet (senaite#2115)

    * Change permission for viewlet to zope2.View

    * Changelog updated

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit a43b535
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Sun Aug 21 12:34:51 2022 +0200

    Allow Multi Analysis Results Entry (senaite#2114)

    * First mockup of multi-edit view

    * Added action adapter for wf transition

    * Added custom WF transition and rolemap

    * Filter out listing transitions

    * Switched to WF adapter

    * Changed to workflow action UID adapter

    * Show tabs for PoCs

    * Implemented show/hide functionality

    * Hanldle no visible analyses

    * Handle redirect URL in add form

    * Added setup option for immediate results entry

    * Handle results entry from stickers view

    * Fixed return value

    * Changelog updated

    * Added header and back link

    * Removed transition from invalid states

    * Changed schemata and added i18n identifiers

    * Added guard

    * Changed category to hide transition from WF menu

    * Better rolemap

    * Use the same permission as for the transition

    * Add all roles again

    * Rolemap reworked

commit da17b15
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Mon Aug 15 13:16:36 2022 +0200

    Replace header table with customizable sample header viewlet (senaite#2111)

    * Implemented viewlet stub for sample header

    * Removed header table import

    * Added some field methdos

    * Header table mockup

    * Fixed wrong interface

    * Field mockup for widgets

    * Changed CSS

    * Render widgets and labels

    * Styling

    * Field rendering

    * Widget rendering

    * Render required marker

    * Implemented form handling

    * Allow multiple columns for prominent table as well

    * Toggle standard fields visibility

    * Styling improved

    * Added CSS classes

    * Render tooltips

    * Added link to manage sample fields

    * Added JS for datetime fields

    * Changed naming

    * First mockup of manage view

    * Redirect to page URL

    * Implemented prominent/standard field switcher

    * Implemented registry to hold config settings

    * Use config to setup template

    * Write updated config to registry

    * Use field order from settings

    * Handle falsy values

    * Use fields from config

    * Skip invisible fields in manage view

    * Implemented reset functionality

    * Handle field visibility

    * Handle registry record update failure

    * Some refactoring and docstrings

    * Handle new appeared fields in manage view

    * Better naming

    * Code refactoring and cleanup

    * Disable header table completely

    * Allow to hide the header table completely

    * Check save button on form submission

    * Removed unused method

    * Removed old header_table code and template

    * Changelog updated

    * Added missing comment

    * Added missing word in description

commit ab37e34
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Thu Aug 11 15:01:53 2022 +0200

    Add a more descriptive message for "Reject" action inside a Worksheet (senaite#2110)

commit 269d16f
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Tue Aug 9 09:17:11 2022 +0200

    Enable check for undefined variables (F821) (senaite#2105)

    * Enable check for undefined variables (F821)

    * Remove undefined position from worksheet

    * Ignore unknown variables in Zope scripts

    * Add missing imports

    * Fix copy&paste mistake in tima

    * Fix typo in ulite

commit 7bb4b86
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Sun Aug 7 19:10:22 2022 +0200

    Fix result formatting when result is below LDL or above UDL (senaite#2104)

    * Migrate LDL/UDL FixedPoint -> StringField

    * Changelog updated

    * Cleanup of the migration steps

    * Fixed typo

    * Re-added custom getters

    * Handle positive scientific formats in API

    * Format LDL/UDL with decimal notation

    * fix test

    * Changelog updated

    * Cut off trailing zeros

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit 6101d0f
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Sun Aug 7 19:06:22 2022 +0200

    Convert LDL/UDL fields to string (senaite#2103)

    * Migrate LDL/UDL FixedPoint -> StringField

    * Changelog updated

    * Cleanup of the migration steps

    * Fixed typo

    * Re-added custom getters

    * Cut off trailing zeros

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit b0267f6
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Sun Aug 7 19:00:29 2022 +0200

    Add help text for numeric result (senaite#2101)

    * Added help text for numeric result

    * Graceful handling if no help dictionary is in item

    * Changelog updated

    * Update CHANGES.rst

commit 45bfb2a
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Sat Aug 6 14:36:48 2022 +0200

    Restrict flake8 to senaite.core and bika.lims (senaite#2102)

commit dc1c365
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Sat Aug 6 14:18:45 2022 +0200

    Enable check for bare 'except' blocks (E722) (senaite#2100)

    * Enable check for bare 'except' blocks (E722)

    * Remove unnecessary noqa statements

commit ddc039e
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Sat Aug 6 14:14:58 2022 +0200

    Enable check for unused variables (F841) (senaite#2099)

commit 66d390c
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Sat Aug 6 14:10:59 2022 +0200

    Enable check for 'return' outside function (F706) (senaite#2098)

    * Enable check for 'return' outside function (F706)

    * Fix comparison to literals (F632)

    * Fix redefinition in list comprehension (F812)

commit ab603e4
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Fri Aug 5 10:01:23 2022 +0200

    Fix Attribute Error in Multi- Sample Add form when current user is linked to a client contact (senaite#2097)

    * Fix AttributeError for multi AR add form copy

    * fixed center alignment

    * Changelog updated

commit 2114287
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Fri Aug 5 09:54:27 2022 +0200

    Convert uncertainty field to string (senaite#2096)

    * Implemented float to string API function

    * Converted Uncertainty field to StringField

    * Converted methods to handle strings

    * Added migration step

    * Ensure we have a string result for interpolations

    * Handle different exponential notation

    * Set unfloatable uncertainty values to None

    * Don't float default value

    * added default return values

    * Fix test

    * Return empty string when field is not set

    * Convert to float in formatting function

    * Handle integer values

    * Fixed wrong interpolator

    * Always format manual uncertainty with full precision

    * convert to float for comparison

    * fixed test

    * set uncertainty to None if on a detection limit

    * Remove unsed import

    * Added doctest

    * Added another test

    * Doctest description

    * Added test for uncertainty value as percentage of the result

    * Added test for floating point arithmetic

    * Removed newlines

commit 30532ab
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Wed Aug 3 12:27:12 2022 +0200

    Fix rounded uncertainty value is stored in the database (senaite#2095)

    * Avoid the formatted uncertainty in edit mode

    * Changelog updated

commit 42d188c
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Wed Aug 3 11:21:17 2022 +0200

    Skip Auditlog catalog if disabled for DX types catalog multiplexer (senaite#2094)

    * Check if Auditlog disabled in catalogmultiplexer

    * Be graceful when setup container is not yet there

    * Changelog updated

commit 3b5a320
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Wed Aug 3 11:19:05 2022 +0200

    Reduce logging in localrole adapter (senaite#2093)

commit ac82000
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Tue Aug 2 10:55:18 2022 +0200

    Add support for dates before 1900 (senaite#2090)

    * Catch ValueError in datetimewidget

    Traceback:
    ```
    Traceback (innermost last):
      Module ZServer.ZPublisher.Publish, line 144, in publish
      Module ZPublisher.mapply, line 85, in mapply
      Module ZServer.ZPublisher.Publish, line 44, in call_object
      Module bika.lims.browser.analysisrequest.view, line 42, in __call__
      Module bika.lims.browser.header_table, line 99, in __call__
      Module Products.Five.browser.pagetemplatefile, line 126, in __call__
      Module Products.Five.browser.pagetemplatefile, line 61, in __call__
      Module zope.pagetemplate.pagetemplate, line 135, in pt_render
      Module Products.PageTemplates.engine, line 378, in __call__
      Module z3c.pt.pagetemplate, line 176, in render
      Module chameleon.zpt.template, line 302, in render
      Module chameleon.template, line 215, in render
      Module chameleon.template, line 192, in render
      Module b5af7af227d0614ddb683e49ef7fbcf2, line 576, in render
      Module f84d498475cc404181368cde9fa956bc, line 379, in render_edit
      Module d88bffbebbf4e01f15a333556ab23c2e, line 702, in render_edit
      Module f84d498475cc404181368cde9fa956bc, line 323, in __fill_widget_body
      Module zope.tales.pythonexpr, line 73, in __call__
       - __traceback_info__: (widget.get_time(value) if value else '')
      Module <string>, line 1, in <module>
      Module senaite.core.browser.widgets.datetimewidget, line 88, in get_time
      Module DateTime.DateTime, line 1566, in strftime
    ValueError: year=1111 is before 1900; the datetime strftime() methods require year >= 1900
    ```

    * Handle dates before 1900 gracefully in dtime API

    * Support date before 1900 in DX datewidget

    * Support date before 1900 in searchable text tokens

    * Support dates < 1900 in samples view

    * Moved to_localized_time to date API

    * Pad a zero if value is a single digit

    * Changelog updated

    * Fix tests and added some more

    * Make flake8 happy

    * Removed unused imports

    * Ensure DateTime object when a string was passed in

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit 1da8e42
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Tue Aug 2 09:54:13 2022 +0200

    Fix LDL/UDL cut-off and exponential float conversion (senaite#2089)

    * Remove custom LDL/UDL getters

    * Marked method getDetectionLimits() as deprecated

    * Manually convert string values of LDL/UDL

    * Added default values

    * Manually convert LDL/UDL to float

    * Fix test

    * Higher precision in LDL/UDL fields

    Also handle trailing zeros and possible trailing dot

    * Convert LDL/UDL to float in calculation

    * Changelog updated

commit 92d9bee
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Tue Aug 2 09:34:26 2022 +0200

    Enable checks for multiple imports on same line (E401) and "import *" (F403, F405) (senaite#2092)

    * Remove unused import

    * Enable check for multiple imports on one line (E401)

    * Enable check for "import *" (F403)

    * Enable check for "import *" (F405)

    * Remove unnecessary commas from flake8 config

commit 3b16764
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Tue Aug 2 09:32:56 2022 +0200

    Enable checks for "not in" order (E713) and semicolon at line end (E703) (senaite#2091)

    * Remove unused import

    * Enable check for "not in" order (E713)

    * Enable check for semicolon at line end (E703)

    * Clean up existing violations of E703 and E713

commit 09a552c
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Mon Aug 1 23:06:00 2022 +0200

    Use isinstance for comparing types (E721) (senaite#2087)

    Co-authored-by: Ramon Bartl <rb@ridingbytes.com>

commit 737e6a6
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Mon Aug 1 23:01:15 2022 +0200

    Fix multiple statements on one line (E701) (senaite#2086)

commit 72f4904
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Mon Aug 1 22:58:31 2022 +0200

    Extend default ignores of flake8 (senaite#2085)

    * Extend default ignores of flake8

    * Fix redefinition of unused name (F811)

commit c716c8f
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Mon Aug 1 22:54:52 2022 +0200

    Enable checks for mismatching format arguments (F523, F524) (senaite#2084)

    * Enable checks for mismatching format arguments (F523, F524)

    * Remove unnecessary format argument from analysisrequest.py

    * Fix format argument index in exportimport.setupdata

commit b2122d5
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Mon Aug 1 22:50:40 2022 +0200

    Remove or ignore unused imports (F401) (senaite#2081)

    * Remove unused imports (F401)

    * Ignore unused imports in exportimport.instruments

    * Remove unused imports from browser.viewlets.toolbar

    * Remove unused imports from browser.form.adapters.sampletype

    * Remove unused imports from browser.fields.record

    * Ignore unused imports in behaviors

    * Remove unused imports from exportimport.dataimport

    * Remove unused imports from exportimport.instruments

    * Remove unused imports from numbergenerator

    * Remove unused imports from jsonapi

    * Ignore unused imports in skins.bika.guard_handler

    * Remove unused imports from content.referencesample

    * Remove unused imports from content.worksheetfolder

    * Remove unused imports from content.bikasetup

    * Remove unused imports from content.instrumenttype

    * Remove unused imports from content.duplicateanalysis

    * Remove unused imports from content.referencedefinition

    * Remove unused imports from content.manufacturer

    * Remove unused imports from content.report

    * Remove unused imports from browser.analysisprofile

    * Ignore unused imports in browser.worksheet.views

    * Remove unused imports in browser.department.ajax

    * Remove unused imports in browser.viewlets.analysisrequest

    * Ignore unused imports in browser.analyses

    * Remove unused imports in browser.analyses.view

    * Ignore unused imports in browser.client

    * Ignore unused imports in browser.widgets

    * Remove unused imports in browser.widgets.rejectionwidget

    * Ignore unused imports in browser.analysisrequest.analysisrequests

    * Ignore unused imports in browser.analysisrequest

    * Remove unused imports in browser.reports

    * Remove unused imports in lims.api.analysis

    * Remove unused imports in lims.monkey.Widget

    * Ignore unused imports in subscribers

    * Ignore unused imports in interfaces

    * Enable E712 in flake8

commit cff8ad0
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Mon Aug 1 22:40:58 2022 +0200

    Replace dynamic code execution with dynamic import in reports (senaite#2078)

    * Replace dynamic code execution with dynamic import in reports

    * Use importlib instead of __import__

    * Add changelog entry

    * Add missing line break in senaitesetup.py

commit 5b3b7d8
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Mon Aug 1 10:40:57 2022 +0200

    Lookup workflow action redirect URL from request first (senaite#2083)

    * Lookup redirect URL from request

    * Changelog updated

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit 2c3152e
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Mon Aug 1 10:38:20 2022 +0200

    Include sample ID in form ID for lab, field and qc analyses listings (senaite#2082)

    * Include sample ID in listing table form ID

    * Use % substitutions

    * Changelog updated

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit f3b9200
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Mon Aug 1 10:29:08 2022 +0200

    Allow to override logo and styles in new SENAITE Setup (senaite#2075)

    * Patched catalog_object method

    * Added schema fields in senaite_setup

    * Hide setup tile when auditlogging is disabled

    * Added proxy fields in bika_setup

    * Changelog updated

    * Update src/bika/lims/content/bikasetup.py

    Co-authored-by: Winnie <winniehell@users.noreply.github.com>

    * Show status message when auditlog is disabled

    * Added sitelogo view

    * Added Logo/CSS fields to SENAITE setup

    * Check setup in toolbar logo view

    * Changelog

    * Be graceful for not-yet-migrated sites

    Co-authored-by: Winnie <winniehell@users.noreply.github.com>
    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit 5f99f12
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Mon Aug 1 10:19:56 2022 +0200

    Fix style of selected language in dropdown (senaite#2076)

    * Fix style of selected language in dropdown

    * Changelog

    * Update CHANGES.rst

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit 825e8c9
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Fri Jul 29 16:07:04 2022 +0200

    Clean up comparison to False (E712) (senaite#2079)

commit 90f68aa
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Fri Jul 29 16:05:11 2022 +0200

    Enable flake8 for new violations in Travis CI (senaite#2077)

    * Enable flake8 for new violations in Travis CI

    * Manually install flake8 in Travis CI

    * Fix path to flake8

commit fa5b48b
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Thu Jul 28 13:50:12 2022 +0200

    Allow to disable global Auditlogging (senaite#2074)

    * Patched catalog_object method

    * Added schema fields in senaite_setup

    * Hide setup tile when auditlogging is disabled

    * Added proxy fields in bika_setup

    * Changelog updated

    * Update src/bika/lims/content/bikasetup.py

    Co-authored-by: Winnie <winniehell@users.noreply.github.com>

    * Show status message when auditlog is disabled

    Co-authored-by: Winnie <winniehell@users.noreply.github.com>

commit b4f47e1
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Wed Jul 27 17:08:57 2022 +0200

    Use <br/> to join recipients (senaite#2073)

commit b88d4bf
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Wed Jul 27 10:02:11 2022 +0200

    Refactor report filename generation to own method (senaite#2072)

    * Refactor report filename generation to own method

    * Changelog

    * Added filename method to download view as well

    * typo

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit 5566d6b
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Wed Jul 27 09:57:02 2022 +0200

    Move sample reports to report catalog, add batch ID and email sent flag to listing (senaite#2071)

    * Include Batch column in reports listing

    * Move ARReport to Report Catalog

    * Changelog added

    * Include email recipients in search index as well

    * Added email sent column

    * changelog changed

    * changelog

commit 8cddcef
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Tue Jul 26 21:55:53 2022 +0200

    Fix typo/duplicate translation key in colophon (senaite#2070)

    * Fix typo/duplicate translation key in colophon

    * Add changelog entry

commit 1c23755
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Tue Jul 26 21:16:08 2022 +0200

    Replace ParentAnalysisRequest ReferenceField by UIDReferenceField (senaite#2069)

    * Replace ReferenceField by UIDReferenceField

    * Rewrite getDescendants function

    * Better comment

    * Changelog

    * Simplify

commit ff1102e
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Tue Jul 26 15:12:27 2022 +0200

    Fix samples w/o active analyses are displayed under "unassigned" filter (senaite#2066)

    * Fix samples w/o active analyses are displayed under "unassigned" filter

    * Whitespace end of file

    * Take partitions into consideration

    Co-authored-by: Ramon Bartl <rb@ridingbytes.com>

commit 696054e
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Tue Jul 26 13:22:02 2022 +0200

    Fix "Create Worksheet" modal visible for samples w/o unassigned analyses (senaite#2065)

    * Do not allow "Create Worksheet" action unless one unassigned analysis

    * No need to wake up the analysis objects

    * Fix "unassigned_state" for samples

    * Changelog

    * Revert "Fix "unassigned_state" for samples"

    This reverts commit 2359c5a.

commit 0b458c2
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Mon Jul 25 09:41:50 2022 +0200

    Fix Traceback for SENAITE Setup during installation (senaite#2064)

commit 3874f56
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Fri Jul 22 10:44:57 2022 +0200

    Allow to customize email publication template in setup (senaite#2063)

    * Implemented SENAITE Registry

    * Allow to set publication email body text in Setup

    * Implemented SENAITE RichTextField

    * Use new RichTextField for registry

    * Use body text for email from setup

    * send HTML Emails

    * Test fixture

    * Added test for HTML email

    * Added upgrade step

    * Fix bypassed default factory

    * Description changed

    * Added SENAITE Setup Object

    * Proxy to SENAITE setup

    * Moved to SENAITE Setup

    * WYSIWYG Support

    * Handle default value

    * Added test for API

    * Added test for setup

    * Changelog updated

commit 353ef78
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Tue Jul 19 13:36:28 2022 +0200

    Fix listing not updated after instrument assignment in Worksheet's view (senaite#2062)

    * Refresh worksheet after instrumnent assignment

    * Changelog

    * Fix listing not updated after instrument assignment in Worksheet's view

    * Use a reload event for the refresh of the analyses listing

commit 5adaf31
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Mon Jul 18 09:48:00 2022 +0200

    Fire notifications when UID references are created/destroyed (senaite#2061)

    * Fire notifications when references are created/destroyed

    * Changelog updated

    * Docstring added

commit 5d9b1d1
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Thu Jul 14 20:53:00 2022 +0200

    Filter 'Interpretation templates' in sample view by template and type (senaite#2058)

    * Allow to filter 'Interpretation templates' by sample template and type

    * Changelog

    * Remove pdb

commit a4e5247
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Tue Jul 12 12:16:59 2022 +0200

    Fix catalog logging counter duplicates (senaite#2048)

    * Fix recatalog logging counter

    * Changelog

commit 7025319
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Fri Jul 8 12:02:42 2022 +0200

    Make resultsinterpretations template to rely on the viewlet for departments retrieval (senaite#2047)

    * Make resultsinterpretatoin viewlet to rely on a get_panels to retrieve the text areas

    * Changelog

commit 42cd40e
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Tue Jul 5 22:27:48 2022 +0200

    Fix instrument types instruments view (senaite#2045)

    * Fix instrumenttypes instruments listing view

    * Changelog

commit 7f87e20
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Tue Jul 5 15:34:16 2022 +0200

    Skip Invoice for content exports (senaite#2044)

    * Skip Invoice in export

    * Changelog
Lunga001 added a commit to bikalims/senaite.core that referenced this pull request Oct 6, 2022
commit 53afe39
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Tue Oct 4 09:45:43 2022 +0200

    Fix F841 local variable 'setup' is assigned to but never used

commit b5e3b5e
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Mon Oct 3 23:35:08 2022 +0200

    Version bump v2.4.0

commit e81a501
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Mon Oct 3 23:27:23 2022 +0200

    Release 2.3.0 (221003)

commit 9d8ae18
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Sun Oct 2 15:48:26 2022 +0200

    Updated translations (senaite#2155)

commit e7862b2
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Fri Sep 30 13:10:14 2022 +0200

    Update CHANGES.rst

commit 5609a01
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Fri Sep 30 13:07:40 2022 +0200

    Improve default body text for email publication to allow translations (senaite#2153)

    * Added template variables for lab name/address

    * Default template updated

    * Use only lab name in default body text

    * Changed labels and descriptions

    * Wrap into message factory

commit ab07811
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Thu Sep 29 20:07:07 2022 +0200

    Updated translations from Transifex (senaite#2152)

commit 6cc1a46
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Thu Sep 29 11:24:44 2022 +0200

    Added api.copy_object function for both DX and AT types (senaite#2151)

    * Improve the function for the creation of AT content types

    * Fix doctest BatchClientAssignment

    * Check permission when editing object unless temporary

    * Move the internal import outside of the loop

    * Save one reindex

    * Explicitly bypass permission check on creation

    * Additional doctest snippet to ensure that new objects are properly indexed

    * Added `api.copy_object` function for both DX and AT types

    Co-authored-by: Ramon Bartl <rb@ridingbytes.com>

commit 5133315
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Thu Sep 29 11:19:39 2022 +0200

    Improve the creation process of AT content types (senaite#2150)

    * Improve the function for the creation of AT content types

    * Fix doctest BatchClientAssignment

    * Check permission when editing object unless temporary

    * Move the internal import outside of the loop

    * Save one reindex

    * Explicitly bypass permission check on creation

    * Additional doctest snippet to ensure that new objects are properly indexed

commit bb5fa7e
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Tue Sep 27 20:50:37 2022 +0200

    Performance: prioritize raw getter for AllowedMethods field (senaite#2149)

    Co-authored-by: Ramon Bartl <rb@ridingbytes.com>

commit 6d4760e
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Tue Sep 27 20:49:28 2022 +0200

    Performance: prioritize raw getter for AllowedInstruments field (senaite#2148)

    * Performance: prioritize raw getter for AllowedInstruments field

    * Do not wakeup instrument unless strictly necessary

    * Extract the UIDs of method instruments for proper comparison

    * Remove whitespace

    * Retrieval of full objects is recommended sometimes

    * Simplify getRawInstrument function

    * Remove unnecessary fallback to list

commit 55d0fbd
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Tue Sep 27 13:07:44 2022 +0200

    Remove stale function workflow.getReviewHistory (senaite#2147)

    * Remove stale function workflow.getReviewHistory

    * Fix F401 'bika.lims.workflow as wf' imported but unused

    Co-authored-by: Ramon Bartl <rb@ridingbytes.com>

commit 29276a8
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Tue Sep 27 13:05:43 2022 +0200

    Fix "No object found for UID: <laboratory_uid>" in report preview (senaite#2146)

    * Fix laboratory content type is not properly indexed

    * Move setup_catalogs_order to setuphandlers

commit 11b3967
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Tue Sep 27 11:55:29 2022 +0200

    Crop page navigation for DX reference widget (senaite#2145)

    * Crop large page navigation for reference widget

    * changelog updated

    * Crop between current and last page

    * Formatting only

    * Production JS

    * Comments only

    * Rebuild production JS

    * Rebuilt JS

commit 82bd3cc
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Mon Sep 26 20:04:21 2022 +0200

    Ajax submit transition page refresh (senaite#2142)

    * Implemented event handler

    * Additional DOM attributes

    * Production JS

    * Improved page reload logic

    NOTE:  Requires senaite/senaite.app.listing#92

    * Production JS

    * Better naming

    * Remove portal_type check

    * Build js

    * Better comment

    * Build js

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit 1014fab
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Mon Sep 26 16:47:08 2022 +0200

    Remove owner from default rolemap (senaite#2144)

commit eef5950
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Mon Sep 26 13:48:32 2022 +0200

    Fix Traceback when using reaodnly_transaction decorator for objects with no __name__ (senaite#2143)

    * Fix Traceback when using decorator for objects with no __name__

    * Changelog

commit 1713351
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Sat Sep 24 22:23:06 2022 +0200

    Added readonly transaction decorator (senaite#2141)

commit 95472cd
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Sat Sep 24 22:19:56 2022 +0200

    Allow to enable/disable analysis categories for samples (senaite#2140)

    * Added senaite setup schema field

    * Added proxy for bika setup

    * Enable/Disable analyses categories for samples

    * Changelog updated

    * spelling

    * Do not automatically expand on every update

    * Check if the context is a sample

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit 5c04635
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Fri Sep 23 09:00:34 2022 +0200

    Dynamic Workflow Menu (senaite#2137)

    * Added menu provider

    * Implemented WF Menu Updater

    * Production JS

    * Changelog updated

    * Handle no workflow menu views, e.g. multi_results

    * Production JS

    * Log warning instead of throwing an error

    * Production JS

    * Do not repace WF menu if the server responded exceptionally

    * Production JS

    * Fetch the current url from the attribute dataset

    * Comment updated

commit 36ece05
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Wed Sep 21 13:55:04 2022 +0200

    Fix LabClerk cannot create partitions from received samples (senaite#2139)

commit 6fac67b
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Wed Sep 21 06:32:15 2022 +0200

    Always redirect multi-results to samples view (senaite#2138)

commit 51aaa26
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Wed Sep 21 06:30:20 2022 +0200

    Catalog mapping for Samples and Analyses (senaite#2130)

    * Added doctest

    * Map Analysis and Sample to their own catalogs

    * Changelog

    * Added upgrade step

    * Remap auditlog catalog

    * Removed duplicate line

    * Added missing types

    * Fixed catalog mapping for worksheet

    * Added doctest for mapped catalogs

commit 3d481fe
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Wed Sep 21 06:28:44 2022 +0200

    Fix unit overlapping with additional icons (senaite#2136)

commit 341f853
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Tue Sep 20 14:03:29 2022 +0200

    Remove # noqa comments (senaite#2124)

    * Remove # noqa from all files

    * Ignore import issues in meta packages

    * Remove dead code from pre_install()

    * Ignore F821 for global app variable

    * Remove unused import from instrument package

commit 44914a3
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Tue Sep 20 14:00:20 2022 +0200

    Add a default date for batch creation (merge branch for senaite#2132) (senaite#2135)

    * Add a default date for batch creation

    * Updating CHANGES.rst

    * imports sorted

    Co-authored-by: Arneldo <ta.arneldo@gmail.com>

commit 8a073ab
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Mon Sep 19 17:01:24 2022 +0200

    Allow to edit the analysis service sort keys in the services listing (senaite#2131)

    * Added datamanager for analysis services

    * Allow to edit the service sortkey in the listing

    * Changelog updated

    * Set refetch flag

    * Added column help text

    * Change help key to be equal to the colum key

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit 1c3f4a9
Author: Lunga <lunga001@gmail.com>
Date:   Mon Sep 19 16:02:10 2022 +0200

    Filter Contact and CCContact by Client on first click (senaite#2133)

    * LIMS-1735 Filter Contact and CCContact by Client on first click

    * Changelog

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit 9829b28
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Mon Sep 19 15:45:03 2022 +0200

    Render unit after result and interim fields (senaite#2134)

    * Added helper method to render the unit

    * Render the unit after the result field

    * Render unit after interim fields

    * Changelog added

commit 62b538b
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Tue Sep 13 14:42:04 2022 +0200

    Fix Traceback when invalidating a Sample with Remarks (senaite#2129)

    * Omit Remarks field when creating a retest from an invalidated sample

    * Do not reindex unless non-temporary when Remarks value is set

    * Changelog

    * Misspelling

    * Add doctest that checks if value for Remarks field is copied in retests

commit 97ce14b
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Sun Sep 11 09:20:29 2022 +0200

    Fix referenceresults widget view mode (senaite#2128)

commit 430a247
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Sun Sep 11 09:18:07 2022 +0200

    Fix instrument expiry date display in listing view (senaite#2127)

    * Fix instrument expiry date

    * Changelog updated

commit 060f603
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Thu Sep 8 23:06:57 2022 +0200

    Fixed typo in upgrade step (senaite#2126)

commit 367b574
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Thu Sep 8 22:17:35 2022 +0200

    Add GitHub action workflow to replace Travis CI (senaite#2125)

    * Add GitHub action workflow to replace Travis CI

    * Delete Travis CI config

commit ff07a9f
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Thu Sep 8 13:20:26 2022 +0200

    Add Sample Form: Save and Copy Action (senaite#2123)

    * Handle Save&Copy action

    * Implemented JS logic

    * Added sample action

    * Changelog added

    * Comment only

commit edc6a53
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Tue Sep 6 12:54:49 2022 +0200

    Enable remaining flake8 checks (W601, W605, F901) (senaite#2109)

    * Enable check for .has_key() (W601)

    * Enable check for invalid escape sequences (W605)

    * Enable check for NotImplementedError (F901)

commit 321cdfb
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Tue Aug 30 16:39:42 2022 +0200

    Fix linked client contact user can not see existing samples (senaite#2119)

    * Better styling for contact login details page

    * Smaller input boxes

    * Reindexing object after user linking

    * changelog updated

    * Update src/bika/lims/browser/templates/login_details.pt

    Co-authored-by: Winnie <winniehell@users.noreply.github.com>

    * Update src/bika/lims/browser/templates/login_details.pt

    Co-authored-by: Winnie <winniehell@users.noreply.github.com>

    * Reindex only allowedRolesAndUsers

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>
    Co-authored-by: Winnie <winniehell@users.noreply.github.com>

commit 47fbd32
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Sun Aug 21 12:54:38 2022 +0200

    Customized Quickinstaller Configlet (senaite#2118)

    * Customized quickinstaller

    * ZCML include package

    * Changelog updated

    * UTF8 header added

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit f1f8127
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Sun Aug 21 12:50:28 2022 +0200

    Customized User/Groups Preferences in Site Configuration (senaite#2117)

    * Customized userprefs controlpanel

    * Custom groups controlpanel

    * styling and formatting

    * Hide settings tabs

    * Custom group membership control panel

    * Groupdetails customized

    * Custom userdata panel

    * Customized user group membership

    * Changelog updated

    * Align checkbox center and middle

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit 06ad1e4
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Sun Aug 21 12:36:49 2022 +0200

    Fix allow sample partitions in submitted states (senaite#2116)

    * Fix allow sample partitions in submitted states

    This fixes the regression in PR-2024 for PR-1839:

    - senaite#1839
    - senaite#2024

    * Fixed test

commit 0a1f776
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Sun Aug 21 12:35:52 2022 +0200

    Fix insufficient privileges for instrument QC viewlet (senaite#2115)

    * Change permission for viewlet to zope2.View

    * Changelog updated

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit a43b535
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Sun Aug 21 12:34:51 2022 +0200

    Allow Multi Analysis Results Entry (senaite#2114)

    * First mockup of multi-edit view

    * Added action adapter for wf transition

    * Added custom WF transition and rolemap

    * Filter out listing transitions

    * Switched to WF adapter

    * Changed to workflow action UID adapter

    * Show tabs for PoCs

    * Implemented show/hide functionality

    * Hanldle no visible analyses

    * Handle redirect URL in add form

    * Added setup option for immediate results entry

    * Handle results entry from stickers view

    * Fixed return value

    * Changelog updated

    * Added header and back link

    * Removed transition from invalid states

    * Changed schemata and added i18n identifiers

    * Added guard

    * Changed category to hide transition from WF menu

    * Better rolemap

    * Use the same permission as for the transition

    * Add all roles again

    * Rolemap reworked

commit da17b15
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Mon Aug 15 13:16:36 2022 +0200

    Replace header table with customizable sample header viewlet (senaite#2111)

    * Implemented viewlet stub for sample header

    * Removed header table import

    * Added some field methdos

    * Header table mockup

    * Fixed wrong interface

    * Field mockup for widgets

    * Changed CSS

    * Render widgets and labels

    * Styling

    * Field rendering

    * Widget rendering

    * Render required marker

    * Implemented form handling

    * Allow multiple columns for prominent table as well

    * Toggle standard fields visibility

    * Styling improved

    * Added CSS classes

    * Render tooltips

    * Added link to manage sample fields

    * Added JS for datetime fields

    * Changed naming

    * First mockup of manage view

    * Redirect to page URL

    * Implemented prominent/standard field switcher

    * Implemented registry to hold config settings

    * Use config to setup template

    * Write updated config to registry

    * Use field order from settings

    * Handle falsy values

    * Use fields from config

    * Skip invisible fields in manage view

    * Implemented reset functionality

    * Handle field visibility

    * Handle registry record update failure

    * Some refactoring and docstrings

    * Handle new appeared fields in manage view

    * Better naming

    * Code refactoring and cleanup

    * Disable header table completely

    * Allow to hide the header table completely

    * Check save button on form submission

    * Removed unused method

    * Removed old header_table code and template

    * Changelog updated

    * Added missing comment

    * Added missing word in description

commit ab37e34
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Thu Aug 11 15:01:53 2022 +0200

    Add a more descriptive message for "Reject" action inside a Worksheet (senaite#2110)

commit 269d16f
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Tue Aug 9 09:17:11 2022 +0200

    Enable check for undefined variables (F821) (senaite#2105)

    * Enable check for undefined variables (F821)

    * Remove undefined position from worksheet

    * Ignore unknown variables in Zope scripts

    * Add missing imports

    * Fix copy&paste mistake in tima

    * Fix typo in ulite

commit 7bb4b86
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Sun Aug 7 19:10:22 2022 +0200

    Fix result formatting when result is below LDL or above UDL (senaite#2104)

    * Migrate LDL/UDL FixedPoint -> StringField

    * Changelog updated

    * Cleanup of the migration steps

    * Fixed typo

    * Re-added custom getters

    * Handle positive scientific formats in API

    * Format LDL/UDL with decimal notation

    * fix test

    * Changelog updated

    * Cut off trailing zeros

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit 6101d0f
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Sun Aug 7 19:06:22 2022 +0200

    Convert LDL/UDL fields to string (senaite#2103)

    * Migrate LDL/UDL FixedPoint -> StringField

    * Changelog updated

    * Cleanup of the migration steps

    * Fixed typo

    * Re-added custom getters

    * Cut off trailing zeros

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit b0267f6
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Sun Aug 7 19:00:29 2022 +0200

    Add help text for numeric result (senaite#2101)

    * Added help text for numeric result

    * Graceful handling if no help dictionary is in item

    * Changelog updated

    * Update CHANGES.rst

commit 45bfb2a
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Sat Aug 6 14:36:48 2022 +0200

    Restrict flake8 to senaite.core and bika.lims (senaite#2102)

commit dc1c365
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Sat Aug 6 14:18:45 2022 +0200

    Enable check for bare 'except' blocks (E722) (senaite#2100)

    * Enable check for bare 'except' blocks (E722)

    * Remove unnecessary noqa statements

commit ddc039e
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Sat Aug 6 14:14:58 2022 +0200

    Enable check for unused variables (F841) (senaite#2099)

commit 66d390c
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Sat Aug 6 14:10:59 2022 +0200

    Enable check for 'return' outside function (F706) (senaite#2098)

    * Enable check for 'return' outside function (F706)

    * Fix comparison to literals (F632)

    * Fix redefinition in list comprehension (F812)

commit ab603e4
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Fri Aug 5 10:01:23 2022 +0200

    Fix Attribute Error in Multi- Sample Add form when current user is linked to a client contact (senaite#2097)

    * Fix AttributeError for multi AR add form copy

    * fixed center alignment

    * Changelog updated

commit 2114287
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Fri Aug 5 09:54:27 2022 +0200

    Convert uncertainty field to string (senaite#2096)

    * Implemented float to string API function

    * Converted Uncertainty field to StringField

    * Converted methods to handle strings

    * Added migration step

    * Ensure we have a string result for interpolations

    * Handle different exponential notation

    * Set unfloatable uncertainty values to None

    * Don't float default value

    * added default return values

    * Fix test

    * Return empty string when field is not set

    * Convert to float in formatting function

    * Handle integer values

    * Fixed wrong interpolator

    * Always format manual uncertainty with full precision

    * convert to float for comparison

    * fixed test

    * set uncertainty to None if on a detection limit

    * Remove unsed import

    * Added doctest

    * Added another test

    * Doctest description

    * Added test for uncertainty value as percentage of the result

    * Added test for floating point arithmetic

    * Removed newlines

commit 30532ab
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Wed Aug 3 12:27:12 2022 +0200

    Fix rounded uncertainty value is stored in the database (senaite#2095)

    * Avoid the formatted uncertainty in edit mode

    * Changelog updated

commit 42d188c
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Wed Aug 3 11:21:17 2022 +0200

    Skip Auditlog catalog if disabled for DX types catalog multiplexer (senaite#2094)

    * Check if Auditlog disabled in catalogmultiplexer

    * Be graceful when setup container is not yet there

    * Changelog updated

commit 3b5a320
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Wed Aug 3 11:19:05 2022 +0200

    Reduce logging in localrole adapter (senaite#2093)

commit ac82000
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Tue Aug 2 10:55:18 2022 +0200

    Add support for dates before 1900 (senaite#2090)

    * Catch ValueError in datetimewidget

    Traceback:
    ```
    Traceback (innermost last):
      Module ZServer.ZPublisher.Publish, line 144, in publish
      Module ZPublisher.mapply, line 85, in mapply
      Module ZServer.ZPublisher.Publish, line 44, in call_object
      Module bika.lims.browser.analysisrequest.view, line 42, in __call__
      Module bika.lims.browser.header_table, line 99, in __call__
      Module Products.Five.browser.pagetemplatefile, line 126, in __call__
      Module Products.Five.browser.pagetemplatefile, line 61, in __call__
      Module zope.pagetemplate.pagetemplate, line 135, in pt_render
      Module Products.PageTemplates.engine, line 378, in __call__
      Module z3c.pt.pagetemplate, line 176, in render
      Module chameleon.zpt.template, line 302, in render
      Module chameleon.template, line 215, in render
      Module chameleon.template, line 192, in render
      Module b5af7af227d0614ddb683e49ef7fbcf2, line 576, in render
      Module f84d498475cc404181368cde9fa956bc, line 379, in render_edit
      Module d88bffbebbf4e01f15a333556ab23c2e, line 702, in render_edit
      Module f84d498475cc404181368cde9fa956bc, line 323, in __fill_widget_body
      Module zope.tales.pythonexpr, line 73, in __call__
       - __traceback_info__: (widget.get_time(value) if value else '')
      Module <string>, line 1, in <module>
      Module senaite.core.browser.widgets.datetimewidget, line 88, in get_time
      Module DateTime.DateTime, line 1566, in strftime
    ValueError: year=1111 is before 1900; the datetime strftime() methods require year >= 1900
    ```

    * Handle dates before 1900 gracefully in dtime API

    * Support date before 1900 in DX datewidget

    * Support date before 1900 in searchable text tokens

    * Support dates < 1900 in samples view

    * Moved to_localized_time to date API

    * Pad a zero if value is a single digit

    * Changelog updated

    * Fix tests and added some more

    * Make flake8 happy

    * Removed unused imports

    * Ensure DateTime object when a string was passed in

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit 1da8e42
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Tue Aug 2 09:54:13 2022 +0200

    Fix LDL/UDL cut-off and exponential float conversion (senaite#2089)

    * Remove custom LDL/UDL getters

    * Marked method getDetectionLimits() as deprecated

    * Manually convert string values of LDL/UDL

    * Added default values

    * Manually convert LDL/UDL to float

    * Fix test

    * Higher precision in LDL/UDL fields

    Also handle trailing zeros and possible trailing dot

    * Convert LDL/UDL to float in calculation

    * Changelog updated

commit 92d9bee
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Tue Aug 2 09:34:26 2022 +0200

    Enable checks for multiple imports on same line (E401) and "import *" (F403, F405) (senaite#2092)

    * Remove unused import

    * Enable check for multiple imports on one line (E401)

    * Enable check for "import *" (F403)

    * Enable check for "import *" (F405)

    * Remove unnecessary commas from flake8 config

commit 3b16764
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Tue Aug 2 09:32:56 2022 +0200

    Enable checks for "not in" order (E713) and semicolon at line end (E703) (senaite#2091)

    * Remove unused import

    * Enable check for "not in" order (E713)

    * Enable check for semicolon at line end (E703)

    * Clean up existing violations of E703 and E713

commit 09a552c
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Mon Aug 1 23:06:00 2022 +0200

    Use isinstance for comparing types (E721) (senaite#2087)

    Co-authored-by: Ramon Bartl <rb@ridingbytes.com>

commit 737e6a6
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Mon Aug 1 23:01:15 2022 +0200

    Fix multiple statements on one line (E701) (senaite#2086)

commit 72f4904
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Mon Aug 1 22:58:31 2022 +0200

    Extend default ignores of flake8 (senaite#2085)

    * Extend default ignores of flake8

    * Fix redefinition of unused name (F811)

commit c716c8f
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Mon Aug 1 22:54:52 2022 +0200

    Enable checks for mismatching format arguments (F523, F524) (senaite#2084)

    * Enable checks for mismatching format arguments (F523, F524)

    * Remove unnecessary format argument from analysisrequest.py

    * Fix format argument index in exportimport.setupdata

commit b2122d5
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Mon Aug 1 22:50:40 2022 +0200

    Remove or ignore unused imports (F401) (senaite#2081)

    * Remove unused imports (F401)

    * Ignore unused imports in exportimport.instruments

    * Remove unused imports from browser.viewlets.toolbar

    * Remove unused imports from browser.form.adapters.sampletype

    * Remove unused imports from browser.fields.record

    * Ignore unused imports in behaviors

    * Remove unused imports from exportimport.dataimport

    * Remove unused imports from exportimport.instruments

    * Remove unused imports from numbergenerator

    * Remove unused imports from jsonapi

    * Ignore unused imports in skins.bika.guard_handler

    * Remove unused imports from content.referencesample

    * Remove unused imports from content.worksheetfolder

    * Remove unused imports from content.bikasetup

    * Remove unused imports from content.instrumenttype

    * Remove unused imports from content.duplicateanalysis

    * Remove unused imports from content.referencedefinition

    * Remove unused imports from content.manufacturer

    * Remove unused imports from content.report

    * Remove unused imports from browser.analysisprofile

    * Ignore unused imports in browser.worksheet.views

    * Remove unused imports in browser.department.ajax

    * Remove unused imports in browser.viewlets.analysisrequest

    * Ignore unused imports in browser.analyses

    * Remove unused imports in browser.analyses.view

    * Ignore unused imports in browser.client

    * Ignore unused imports in browser.widgets

    * Remove unused imports in browser.widgets.rejectionwidget

    * Ignore unused imports in browser.analysisrequest.analysisrequests

    * Ignore unused imports in browser.analysisrequest

    * Remove unused imports in browser.reports

    * Remove unused imports in lims.api.analysis

    * Remove unused imports in lims.monkey.Widget

    * Ignore unused imports in subscribers

    * Ignore unused imports in interfaces

    * Enable E712 in flake8

commit cff8ad0
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Mon Aug 1 22:40:58 2022 +0200

    Replace dynamic code execution with dynamic import in reports (senaite#2078)

    * Replace dynamic code execution with dynamic import in reports

    * Use importlib instead of __import__

    * Add changelog entry

    * Add missing line break in senaitesetup.py

commit 5b3b7d8
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Mon Aug 1 10:40:57 2022 +0200

    Lookup workflow action redirect URL from request first (senaite#2083)

    * Lookup redirect URL from request

    * Changelog updated

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit 2c3152e
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Mon Aug 1 10:38:20 2022 +0200

    Include sample ID in form ID for lab, field and qc analyses listings (senaite#2082)

    * Include sample ID in listing table form ID

    * Use % substitutions

    * Changelog updated

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit f3b9200
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Mon Aug 1 10:29:08 2022 +0200

    Allow to override logo and styles in new SENAITE Setup (senaite#2075)

    * Patched catalog_object method

    * Added schema fields in senaite_setup

    * Hide setup tile when auditlogging is disabled

    * Added proxy fields in bika_setup

    * Changelog updated

    * Update src/bika/lims/content/bikasetup.py

    Co-authored-by: Winnie <winniehell@users.noreply.github.com>

    * Show status message when auditlog is disabled

    * Added sitelogo view

    * Added Logo/CSS fields to SENAITE setup

    * Check setup in toolbar logo view

    * Changelog

    * Be graceful for not-yet-migrated sites

    Co-authored-by: Winnie <winniehell@users.noreply.github.com>
    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit 5f99f12
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Mon Aug 1 10:19:56 2022 +0200

    Fix style of selected language in dropdown (senaite#2076)

    * Fix style of selected language in dropdown

    * Changelog

    * Update CHANGES.rst

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit 825e8c9
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Fri Jul 29 16:07:04 2022 +0200

    Clean up comparison to False (E712) (senaite#2079)

commit 90f68aa
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Fri Jul 29 16:05:11 2022 +0200

    Enable flake8 for new violations in Travis CI (senaite#2077)

    * Enable flake8 for new violations in Travis CI

    * Manually install flake8 in Travis CI

    * Fix path to flake8

commit fa5b48b
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Thu Jul 28 13:50:12 2022 +0200

    Allow to disable global Auditlogging (senaite#2074)

    * Patched catalog_object method

    * Added schema fields in senaite_setup

    * Hide setup tile when auditlogging is disabled

    * Added proxy fields in bika_setup

    * Changelog updated

    * Update src/bika/lims/content/bikasetup.py

    Co-authored-by: Winnie <winniehell@users.noreply.github.com>

    * Show status message when auditlog is disabled

    Co-authored-by: Winnie <winniehell@users.noreply.github.com>

commit b4f47e1
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Wed Jul 27 17:08:57 2022 +0200

    Use <br/> to join recipients (senaite#2073)

commit b88d4bf
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Wed Jul 27 10:02:11 2022 +0200

    Refactor report filename generation to own method (senaite#2072)

    * Refactor report filename generation to own method

    * Changelog

    * Added filename method to download view as well

    * typo

    Co-authored-by: Jordi Puiggené <jp@naralabs.com>

commit 5566d6b
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Wed Jul 27 09:57:02 2022 +0200

    Move sample reports to report catalog, add batch ID and email sent flag to listing (senaite#2071)

    * Include Batch column in reports listing

    * Move ARReport to Report Catalog

    * Changelog added

    * Include email recipients in search index as well

    * Added email sent column

    * changelog changed

    * changelog

commit 8cddcef
Author: Winnie <winniehell@users.noreply.github.com>
Date:   Tue Jul 26 21:55:53 2022 +0200

    Fix typo/duplicate translation key in colophon (senaite#2070)

    * Fix typo/duplicate translation key in colophon

    * Add changelog entry

commit 1c23755
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Tue Jul 26 21:16:08 2022 +0200

    Replace ParentAnalysisRequest ReferenceField by UIDReferenceField (senaite#2069)

    * Replace ReferenceField by UIDReferenceField

    * Rewrite getDescendants function

    * Better comment

    * Changelog

    * Simplify

commit ff1102e
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Tue Jul 26 15:12:27 2022 +0200

    Fix samples w/o active analyses are displayed under "unassigned" filter (senaite#2066)

    * Fix samples w/o active analyses are displayed under "unassigned" filter

    * Whitespace end of file

    * Take partitions into consideration

    Co-authored-by: Ramon Bartl <rb@ridingbytes.com>

commit 696054e
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Tue Jul 26 13:22:02 2022 +0200

    Fix "Create Worksheet" modal visible for samples w/o unassigned analyses (senaite#2065)

    * Do not allow "Create Worksheet" action unless one unassigned analysis

    * No need to wake up the analysis objects

    * Fix "unassigned_state" for samples

    * Changelog

    * Revert "Fix "unassigned_state" for samples"

    This reverts commit 2359c5a.

commit 0b458c2
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Mon Jul 25 09:41:50 2022 +0200

    Fix Traceback for SENAITE Setup during installation (senaite#2064)

commit 3874f56
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Fri Jul 22 10:44:57 2022 +0200

    Allow to customize email publication template in setup (senaite#2063)

    * Implemented SENAITE Registry

    * Allow to set publication email body text in Setup

    * Implemented SENAITE RichTextField

    * Use new RichTextField for registry

    * Use body text for email from setup

    * send HTML Emails

    * Test fixture

    * Added test for HTML email

    * Added upgrade step

    * Fix bypassed default factory

    * Description changed

    * Added SENAITE Setup Object

    * Proxy to SENAITE setup

    * Moved to SENAITE Setup

    * WYSIWYG Support

    * Handle default value

    * Added test for API

    * Added test for setup

    * Changelog updated

commit 353ef78
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Tue Jul 19 13:36:28 2022 +0200

    Fix listing not updated after instrument assignment in Worksheet's view (senaite#2062)

    * Refresh worksheet after instrumnent assignment

    * Changelog

    * Fix listing not updated after instrument assignment in Worksheet's view

    * Use a reload event for the refresh of the analyses listing

commit 5adaf31
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Mon Jul 18 09:48:00 2022 +0200

    Fire notifications when UID references are created/destroyed (senaite#2061)

    * Fire notifications when references are created/destroyed

    * Changelog updated

    * Docstring added

commit 5d9b1d1
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Thu Jul 14 20:53:00 2022 +0200

    Filter 'Interpretation templates' in sample view by template and type (senaite#2058)

    * Allow to filter 'Interpretation templates' by sample template and type

    * Changelog

    * Remove pdb

commit a4e5247
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Tue Jul 12 12:16:59 2022 +0200

    Fix catalog logging counter duplicates (senaite#2048)

    * Fix recatalog logging counter

    * Changelog

commit 7025319
Author: Jordi Puiggené <jp@naralabs.com>
Date:   Fri Jul 8 12:02:42 2022 +0200

    Make resultsinterpretations template to rely on the viewlet for departments retrieval (senaite#2047)

    * Make resultsinterpretatoin viewlet to rely on a get_panels to retrieve the text areas

    * Changelog

commit 42cd40e
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Tue Jul 5 22:27:48 2022 +0200

    Fix instrument types instruments view (senaite#2045)

    * Fix instrumenttypes instruments listing view

    * Changelog

commit 7f87e20
Author: Ramon Bartl <rb@ridingbytes.com>
Date:   Tue Jul 5 15:34:16 2022 +0200

    Skip Invoice for content exports (senaite#2044)

    * Skip Invoice in export

    * Changelog
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

None yet

2 participants