Giter Club home page Giter Club logo

senaite.core's Introduction

senaite.core

Open Source LIMS Core based on the CMS Plone

https://img.shields.io/pypi/v/senaite.core.svg?style=flat-square https://img.shields.io/github/actions/workflow/status/senaite/senaite.core/build-and-test.yml?branch=2.x https://img.shields.io/scrutinizer/g/senaite/senaite.core/2.x.svg?style=flat-square https://img.shields.io/github/issues-pr/senaite/senaite.core.svg?style=flat-square https://img.shields.io/github/issues/senaite/senaite.core.svg?style=flat-square https://img.shields.io/github/contributors/senaite/senaite.core.svg?style=flat-square

Introduction

SENAITE.CORE is an Open Source Laboratory Information Management System (LIMS) for enterprise environments, especially focused to behave with excellent performance and stability.

Installation

SENAITE.CORE provides the core functionalities and entities used by SENAITE.LIMS.

It is intended to be imported automatically as a dependency of SENAITE.LIMS and other SENAITE products, and it should not be installed without the SENAITE.LIMS UI.

Contribute

We want contributing to SENAITE.CORE to be fun, enjoyable, and educational for anyone, and everyone. This project adheres to the Contributor Covenant.

By participating, you are expected to uphold this code. Please report unacceptable behavior.

Contributions go far beyond pull requests and commits. Although we love giving you the opportunity to put your stamp on SENAITE.CORE, we also are thrilled to receive a variety of other contributions.

Please, read Contributing to senaite.core document.

Feedback and support

License

SENAITE.CORE Copyright (C) 2018-2024 RIDING BYTES & NARALABS

This software, henceforth "SENAITE.CORE" is an add-on for the Plone CMS and a derivative work of BIKA LIMS.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

senaite.core's People

Contributors

andersonsmith avatar anneline avatar anton-feun avatar bugerman58 avatar dhruvkhattar avatar fengyundeng avatar godfrey-bika avatar grulisco avatar inus avatar jayadeepk avatar jean avatar juangallostra avatar juriejan avatar krrishan avatar lemoene avatar lunga001 avatar mikejmets avatar moffatmore avatar nihadness avatar pietercvdm avatar ramonski avatar rockfruit avatar siyamalan avatar toropok avatar trendsetter37 avatar veroc avatar winniehell avatar witekdev avatar xispa avatar zylinx avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

senaite.core's Issues

Worksheet: AR (Position) order incorrect

Steps to reproduce

Create a worksheet with several ARs

Current behavior

ARs (Positions) are not sorted correctly

Expected behavior

ARs (Positions) are sorted in created date

Screenshot (optional)

worksheet sorting

Results publication notifications and reporting

Current behavior

A this moment, the publication preferences in Client's contact are confusing.

pub_preferences

By default, if "Email" option is enabled, the system will send an email to the Client contact assigned to a given Analysis Request, with the results report embedded as HTML. If PDF is enabled, the system will send an email with the PDF attached, but not embedded as HTML. If "Results attachments permitted" is selected, the system should send the files that have been assigned to either the AR or Analyses as attachments, but only if "Email" option is selected.

If neither Email or PDF are selected, the Client Contact will not receive any notification.

The notification will be sent to those "Contacts to CC" that are selected, but following the publication preferences (Email + PDF + Results Attachments permitted) they have assigned.

Suggested approach

We suggest to make the configuration options more clear:

res_prefs

"Send a notification SMS.." would only be displayed if a SMS Gateway has been correctly configured in the system and the client contact has a valid cellular phone number set.

In "Results report delivery preferences", option "Send an Email with a link to download the results report in PDF (requires user authentication)" would only be displayed if access to the system has been granted to this client contact.

All options in which "Email" is involved would only be visible if this contact has a valid email address.

Only contacts of the same client that have a valid email address will be displayed.

An additional view inside Laboratory Setup would be added, to allow the labman to set the text to use in either notifications and results delivery messages.

If "Do not send results" is enabled, a reminder should appear once the report is generated to inform the labman that the report must be printed and e.g. sent by post mail to the contact.

The attachment of images (or other files) in results report is something that can be defined in the results report template itself. I also believe that in most cases, files attached to analyses are only for laboratory internal usage. In addition, there is a free text area in Analysis Request view that allows the labman to add formatted text and also images to be included in the results report. For these reasons, I think there is no need of "results attachment" option here.

Click on some analyses pops up a new page instead of object log

Steps to reproduce

Create an analysis request. I couldn't find out why some of them work (don't work).

This analysis service had a reflex rule and method assigned. Could be this?

Current behavior

Click in some listed analyses pops up a log, but some analyses pop up a new page.

Expected behavior

Always pop up the log for the selected analysis.

Screenshot (optional)

selection_025
selection_024

Calculations not triggered in manage results view

Steps to reproduce

  • Create 3 Analyses Services with the keywords length, height, width
  • Create a Calculation calc-edgelength with the formula: 4 * ([length] + [height] + [width])
  • Create another Analysis Service with the keyword edgelength and assign the calculation calc-edgelength to it
  • Create a new AR and assign the 4 Analyses length, height, width, edgelength to it
  • Receive the sample
  • Add the results 1, 2, 3 to the length, height, width result fields

Current behavior

The result for edgelength is not calculated

Expected behavior

The result of edgelength is calculated to 24

Screenshot (optional)

manage_analyses

calculation

Images are not printed on final report

Steps to reproduce

Publish an AR and click the "Print" Button

Current behavior

Images are missing

Expected behavior

Images (Accreditation Stars, Attachments etc.) are printed to the report

Notes

This might be related #326 (likely) or the changed workflow settings and how WeasyPrint fetches the Images: bika.lims.utils.bika_url_fetcher.

Traceback on AR Attachment upload

Steps to reproduce

  1. Create a new AR and receive the Sample
  2. Upload an Attachment

Current behavior

Traceback occurs

Expected behavior

Attachment is added to the AR or to an Analysis

Screenshot (optional)

Traceback:

Traceback (innermost last):
  Module ZPublisher.Publish, line 138, in publish
  Module ZPublisher.mapply, line 77, in mapply
  Module ZPublisher.Publish, line 48, in call_object
  Module bika.lims.browser.attachment, line 81, in __call__
  Module bika.lims.browser.attachment, line 132, in action_add
  Module bika.lims.api, line 166, in create
  Module Products.Archetypes.BaseObject, line 636, in processForm
  Module bika.lims.content.attachment, line 126, in _renameAfterCreation
  Module bika.lims.idserver, line 215, in renameAfterCreation
  Module bika.lims.idserver, line 192, in generateUniqueId
  Module bika.lims.idserver, line 143, in next_id
IndexError: list index out of range

Asynchronous field updates on AR view fail

Steps to reproduce

  • Create a new AR and view it
  • Update the values of the header table

Current behavior

Error message appears and the field value is not updated

Expected behavior

Field is updated with the inserted value

Screenshot (optional)

Warnings on Instance Startup

Steps to reproduce

Create a new SENAITE instance and start it in the foreground.

Current behavior

Warnings are printed.

Expected behavior

No warnings are printed

Screenshot (optional)

2017-10-27 08:34:42 WARNING Bika index named 'Title' not found in bika_catalog_analysisrequest_listing. (Perhaps the index is still empty).
2017-10-27 08:34:42 WARNING Bika index named 'Description' not found in bika_catalog_analysisrequest_listing. (Perhaps the index is still empty).
2017-10-27 08:34:42 WARNING Bika index named 'getSamplingDate' not found in bika_catalog_analysisrequest_listing. (Perhaps the index is still empty).
2017-10-27 08:34:47 WARNING Bika index named 'Title' not found in bika_catalog_analysisrequest_listing. (Perhaps the index is still empty).
2017-10-27 08:34:47 WARNING Bika index named 'Description' not found in bika_catalog_analysisrequest_listing. (Perhaps the index is still empty).
2017-10-27 08:34:47 WARNING Bika index named 'getSamplingDate' not found in bika_catalog_analysisrequest_listing. (Perhaps the index is still empty).

Click on an Analysis as LabClerk shows "Insufficient Permissions Error" in Popup

Steps to reproduce

  • Create a new AR as a Lab Clerk
  • Switch to the analyses view, e.g. /clients/client-1/Water-0001-R01/analyses
  • Click on an analysis title in the listing

Current behavior

Popup shows "Insufficient Permissions Error"

Expected behavior

Popup shows the information of the Analysis Service

Screenshot (optional)

Traceback on ZMI bika.lims Reinstall, Clear&Rebuild Catalog or Update Security Settings

Steps to reproduce

Go to the ZMI portal_catalog tool, click Advanced Tab and then the "Clear and Rebuild Catalog" Button.

Current behavior

Traceback occurs.

Expected behavior

Catalog is cleared and rebuilt

Screenshot (optional)

Traceback:

Traceback (innermost last):
  Module ZPublisher.Publish, line 146, in publish
  Module Zope2.App.startup, line 303, in commit
  Module transaction._manager, line 89, in commit
  Module transaction._transaction, line 329, in commit
  Module transaction._transaction, line 443, in _commitResources
  Module ZODB.Connection, line 559, in commit
  Module ZODB.Connection, line 1125, in savepoint
  Module ZODB.Connection, line 623, in _commit
  Module ZODB.Connection, line 658, in _store_objects
  Module ZODB.serialize, line 422, in serialize
TypeError: Can't pickle objects in acquisition wrappers.

Excerpt from the PDB Session in Module ZODB.serialize, line 422:

 422             try:
 423                 return self._dump(meta, obj.__getstate__())
 424             except TypeError:
 425
 426  ->             import pdb; pdb.set_trace()
 return None
(Pdb++) a
self = <ZODB.serialize.ObjectWriter instance at 0x113040998>
obj = <Calculation at calculation-3>
(Pdb++)

Affected Object:

(Pdb++) arguments
self = <ZODB.serialize.ObjectWriter instance at 0x113040998>
obj = <Calculation at calculation-3>
(Pdb++) obj.__getstate__()
*** TypeError: Can't pickle objects in acquisition wrappers.

Traceback on Copy ARs

Steps to reproduce

Select one or more ARs from the listing table and click the "Copy to new" Button

Current behavior

ARs are created, but a Traceback occurs in the background

Expected behavior

ARs are created w/o Tracebacks

Screenshot (optional)

Traceback:

Traceback (most recent call last):
  File "/Users/rbartl/develop/ridingbytes/liscon/liscon.lims/eggs/Products.Archetypes-1.9.17-py2.7.egg/Products/Archetypes/BaseObject.py", line 144, in initializeArchetype
    self.setDefaults()
  File "/Users/rbartl/develop/ridingbytes/liscon/liscon.lims/eggs/Products.Archetypes-1.9.17-py2.7.egg/Products/Archetypes/BaseObject.py", line 420, in setDefaults
    self.Schema().setDefaults(self)
  File "/Users/rbartl/develop/ridingbytes/liscon/liscon.lims/src/bika.lims/bika/lims/monkey/Schema.py", line 72, in setDefaults
    mapply(mutator, *args, **kw)
  File "/Users/rbartl/develop/ridingbytes/liscon/liscon.lims/eggs/Products.Archetypes-1.9.17-py2.7.egg/Products/Archetypes/utils.py", line 111, in mapply
    return method(*args, **kw)
  File "/Users/rbartl/develop/ridingbytes/liscon/liscon.lims/src/bika.lims/bika/lims/__init__.py", line 205, in wrapper
    return func(*args, **kwargs)
TypeError: setRequestID() got an unexpected keyword argument ‚mimetype‘

Setup Analysis Services Listing Table: Sortkey not working

The standard sorting of analysis services is arbitrary, not sorted in any visible manner.
Analysis Services Table neither contains sortkey column, nor it is selectable via popup menu.
So sorting by sortkey in this view is corrupted.

Traceback on Calculations View

Steps to reproduce

Go to /bika_setup/bika_calculations

Current behavior

Traceback occurs

Expected behavior

Calculations are shown

Screenshot (optional)

Traceback:

Traceback (innermost last):
  Module ZPublisher.Publish, line 138, in publish
  Module ZPublisher.mapply, line 77, in mapply
  Module ZPublisher.Publish, line 48, in call_object
  Module bika.lims.browser.bika_listing, line 906, in __call__
  Module Products.Five.browser.pagetemplatefile, line 125, in __call__
  Module Products.Five.browser.pagetemplatefile, line 59, in __call__
  Module zope.pagetemplate.pagetemplate, line 132, in pt_render
  Module five.pt.engine, line 98, in __call__
  Module z3c.pt.pagetemplate, line 163, in render
  Module chameleon.zpt.template, line 289, in render
  Module chameleon.template, line 191, in render
  Module chameleon.template, line 171, in render
  Module 14f9b1a4e2853e83c28c8d02696b721c.py, line 425, in render
  Module 41be1de65afb1469100ff09e335b3e36.py, line 1406, in render_master
  Module 41be1de65afb1469100ff09e335b3e36.py, line 571, in render_content
  Module 14f9b1a4e2853e83c28c8d02696b721c.py, line 355, in __fill_content_core
  Module five.pt.expressions, line 161, in __call__
  Module bika.lims.browser.bika_listing, line 1333, in contents_table
  Module bika.lims.browser.bika_listing, line 1493, in __init__
  Module bika.lims.controlpanel.bika_calculations, line 77, in folderitems
  Module bika.lims.browser.bika_listing, line 982, in folderitems
  Module bika.lims, line 205, in wrapper
  Module bika.lims.browser.bika_listing, line 1260, in _folderitems
  Module Products.CMFCore.WorkflowTool, line 263, in getInfoFor
WorkflowException: No workflow provides '${name}' information.

 - Expression: "here/main_template/macros/master"
 - Filename:   ... rc/bika.lims/bika/lims/browser/templates/bika_listing.pt
 - Location:   (line 5: col 21)
 - Source:     metal:use-macro="here/main_template/macros/master"
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 - Arguments:  repeat: {...} (0)
               template: <ViewPageTemplateFile - at 0x7f19f3b3a610>
               views: <ViewMapper - at 0x7f19f3b3abd0>
               modules: <instance - at 0x7f1a13769f80>
               args: <tuple - at 0x7f19f3bfb810>
               here: <ImplicitAcquisitionWrapper bika_calculations at 0x7f19f5696be0>
               user: <ImplicitAcquisitionWrapper - at 0x7f19f77d1140>
               nothing: <NoneType - at 0x8fe4d0>
               translate: <function translate at 0x7f19f3afe140>
               container: <ImplicitAcquisitionWrapper bika_calculations at 0x7f19f5696be0>
               request: <instance - at 0x7f19f51c8830>
               wrapped_repeat: <SafeMapping - at 0x7f19f687bcb0>
               traverse_subpath: <list - at 0x7f19f3b90710>
               default: <object - at 0x7f1a1b1e6560>
               loop: {...} (2)
               context: <ImplicitAcquisitionWrapper bika_calculations at 0x7f19f5696be0>
               view: <CalculationsView folder_view at 0x7f19f3be8d50>
               target_language: <NoneType - at 0x8fe4d0>
               root: <ImplicitAcquisitionWrapper Zope at 0x7f19f54cc0a0>
               options: {...} (0)

Selectable methods in Analysis Request -View-, but they aren't in Analysis Request -Manage Results-

Steps to reproduce

Create an analysis request with analyses that have methods bind to them.

Current behavior

Inside analysis request object there are two views where the user can introduce results: View and Manage Results.

If analyses inside analysis request can't be performed using methods, methods selector shouldn't appear.

Expected behavior

If an analysis can't be performed using a method, method field shouldn't be selectable.

Screenshot (optional)

Analysis Request VIEW

selection_023

Analysis Request MANAGE RESULTS

selection_022

AR Publish fails with AttributeError: uid_catalog

Steps to reproduce

Happened after a 1.1.6 migration to an existing AR on publish

Current behavior

Traceback occurs, because UIDReferenceField get's an Analysis w/o acquisition chain

Expected behavior

Report renders as expected

Traceback

Traceback (most recent call last):
  File "bika.lims/bika/lims/browser/analysisrequest/publish.py", line 202, in getReportTemplate
    embedt, reptemplate = self._renderTemplate()
  File "bika.lims/bika/lims/browser/analysisrequest/publish.py", line 193, in _renderTemplate
    return embedt, embed(self)
  File "Zope2-2.13.26-py2.7.egg/Products/Five/browser/pagetemplatefile.py", line 59, in __call__
    sourceAnnotations=getattr(debug_flags, 'sourceAnnotations', 0),
  File "zope.pagetemplate-3.6.3-py2.7.egg/zope/pagetemplate/pagetemplate.py", line 132, in pt_render
    strictinsert=0, sourceAnnotations=sourceAnnotations
  File "five.pt-2.2.4-py2.7.egg/five/pt/engine.py", line 98, in __call__
    return self.template.render(**kwargs)
  File "z3c.pt-3.1.0-py2.7.egg/z3c/pt/pagetemplate.py", line 158, in render
    return base_renderer(**context)
  File "Chameleon-3.2-py2.7.egg/chameleon/zpt/template.py", line 297, in render
    return super(PageTemplate, self).render(**_kw)
  File "Chameleon-3.2-py2.7.egg/chameleon/template.py", line 191, in render
    raise_with_traceback(exc, tb)
  File "Chameleon-3.2-py2.7.egg/chameleon/template.py", line 171, in render
    self._render(stream, econtext, rcontext)
  File "ee1840e3af9a0921bf6e57ea74c770a6.py", line 2758, in render
  File "Products.Archetypes-1.9.17-py2.7.egg/Products/Archetypes/ClassGen.py", line 56, in generatedAccessor
    return schema[name].get(self, **kw)
  File "bika/lims/browser/fields/uidreferencefield.py", line 111, in get
    ret = self.get_object(context, value)
  File "bika.lims/bika/lims/browser/fields/uidreferencefield.py", line 59, in get_object
    obj = _get_object(context, value)
  File "bika.lims/bika/lims/browser/fields/uidreferencefield.py", line 222, in _get_object
    elif value and is_uid(context, value):
  File "bika.lims/bika/lims/browser/fields/uidreferencefield.py", line 204, in is_uid
    uc = getToolByName(context, 'uid_catalog')
  File "", line 10, in check_getToolByName
  File "Products.CMFCore-2.2.10-py2.7.egg/Products/CMFCore/utils.py", line 120, in getToolByName
    raise AttributeError, name
AttributeError: uid_catalog

 - Expression: "python:categanalyses[poc][cat][0]['obj'].getCategory()"
 - Filename:   ... default.pt
 - Location:   (line 271: col 42)
 - Source:     ... gory python:categanalyses[poc][cat][0]['obj'].getCategory();
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

PDB

Analysis has no acquisition chain!

194     def is_uid(context, value):
 195         """Checks that the string passed is a valid UID of an existing object
 196
 197         :param context: Context is only used for acquiring uid_catalog tool.
 198         :type context: BaseContent
 199         :param value: A UID.
 200         :type value: string
 201         :return: True if the value is a UID and exists as an entry in uid_catalog.
 202         :rtype: bool
 203         """
 204
 205         import pdb; pdb.set_trace()
 206  ->     uc = getToolByName(context, 'uid_catalog')
 207         brains = uc(UID=value)
 208         return brains and True or False

(Pdb++) getToolByName(context, 'uid_catalog')
*** AttributeError: uid_catalog

(Pdb++) context
<Analysis at asbest_jn>

(Pdb++) context.aq_parent
*** AttributeError: aq_parent

Objects are indexed in multiple catalogs

The following objects, indexed in the following multiple catalogs. This will be slow, and it should not be required, however there may be code that mistakenly relies on this behaviour, so it should be removed carefully.

Batch                 bika_catalog, portal_catalog
Sample                bika_catalog, portal_catalog
SamplePartition       bika_catalog, portal_catalog
ReferenceSample       bika_catalog, portal_catalog
Department            bika_setup_catalog, portal_catalog
AnalysisService       bika_setup_catalog, portal_catalog
SampleType            bika_setup_catalog, portal_catalog
SamplePoint           bika_setup_catalog, portal_catalog
StorageLocation       bika_setup_catalog, portal_catalog
Instrument            bika_setup_catalog, portal_catalog
InstrumentType        bika_setup_catalog, portal_catalog
InstrumentLocation    bika_setup_catalog, portal_catalog
Method                bika_setup_catalog, portal_catalog
Calculation           bika_setup_catalog, portal_catalog
AnalysisProfile       bika_setup_catalog, portal_catalog
ARTemplate            bika_setup_catalog, portal_catalog
LabProduct            bika_setup_catalog, portal_catalog
LabContact            bika_setup_catalog, portal_catalog
Manufacturer          bika_setup_catalog, portal_catalog
ReferenceDefinition   bika_setup_catalog, portal_catalog
SRTemplate            bika_setup_catalog, portal_catalog
Supplier              bika_setup_catalog, portal_catalog
WorksheetTemplate     bika_setup_catalog, portal_catalog

AR copy without analysis services

Steps to reproduce

Create an AR with some analysis services (without profile, they are working correctly...).
Copy this AR.

Current behavior

AR data is copied but there are no analysis services selected.

Expected behavior

Copied AR always contains the same analysis services as the source AR.

UnicodeDecodeError if unicode characters are entered into the listing search field

Steps to reproduce

Go to the client listing and search for e.g. süd

Current behavior

UnicodeDecodeError occurs

Expected behavior

Search is working

Screenshot (optional)

Traceback:

2017-11-02T11:04:14 ERROR Bika ClientAnalysisRequestsView: sort_on is 'created', not a valid column
  Module bika.lims.browser.bika_listing, line 1297, in __init__
  Module bika.lims.browser.bika_listing, line 1035, in folderitems
  Module Products.AdvancedQuery, line 88, in _evalAdvancedQuery
  Module Products.AdvancedQuery.eval, line 40, in eval
  Module Products.AdvancedQuery.eval, line 16, in _eval
  Module Products.AdvancedQuery.AdvancedQuery, line 220, in _eval
  Module Products.AdvancedQuery.AdvancedQuery, line 233, in _eval
  Module Products.AdvancedQuery.AdvancedQuery, line 84, in _eval
  Module Products.AdvancedQuery.AdvancedQuery, line 279, in _applyIndex
  Module Products.PluginIndexes.common.UnIndex, line 403, in _apply_index
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 1: ordinal not in range(128)

Dynamic Role Mapping and Permissions

Description

Currently roles and permissions are granted during installation in setuphandlers.py, globally in rolemap.xml, on Workflow level and in some event handlers during runtime.

This makes it a nightmare to maintain the settings and be able to extend it.

For example it is not possible to introduce a new role w/o customizing all of these places in the core codebase.

Therefore it would make much more sense to apply the roles locally on a group.

So my approach would be the following:

AR/Sample Navigation Viewlet

Steps to reproduce

Add multiple ARs to a client

Current behavior

There is no "easy" way to navigate between the ARs/Samples

Expected behavior

There is a next/previous navigation viewlet which allows to navigate to the next item within a view

Screenshot (optional)

nav

Dependencies error in Manage Analyses view

Steps to reproduce

Using senaite.lims

  • Create one Analysis Services with the keywords one
  • Create a Calculation calc1 with the formula: 4 * one
  • Create another Analysis Service with the keyword two and assign the calculation calc1 to it
  • Create a new AR and assign the both Analyses to it
  • Go to Manage Analyses view inside that Analysis Request
  • Uncheck analysis one.

Current behavior

Analysis two isn't unchecked and the system gives the following error:

Uncaught TypeError: Cannot read property 'length' of undefined
    at calcdependencies (bika.lims.analysisrequest.js:542)
    at HTMLInputElement.<anonymous> (bika.lims.analysisrequest.js:673)
    at HTMLDocument.dispatch (jquery-1.12.4.min.js:3)
    at HTMLDocument.r.handle (jquery-1.12.4.min.js:3)

Expected behavior

Analysis two should be unchecked since depends on analysis one.

Screenshot (optional)

Publish view does not return Analyses in the right order

Steps to reproduce

  1. Create a new AR with Analyses Services which contain a "Sort Key"
  2. Publish the results

Current behavior

Analyses within a category are not sorted in the right order

Expected behavior

Analyses are sorted according to their sort key like in the AR view.

I think this is because the analyses are processed in a dictionary in bika/lims/analysisrequest/publish.py

Screenshot (optional)

--

The Lab Name is always set to "Laboratory" after reinstallation

Steps to reproduce

  • Create a new SENAITE instance and set the Lab Name to "SENAITE"
  • Reinstall Bika LIMS Evo with the Quickinstaller

Current behavior

Laboratory Name is set to Laboratory

Expected behavior

Laboratory Name stays on the entered value, in that case "SENAITE"

Screenshot (optional)

labsettings

CCEmails are nowhere used to send Emails out of the LIMS

Steps to reproduce

  • Create a new AR and add some CCEmails (comma separated)
  • Publish the report

Current behavior

Mentioned CC Emails do not get any Email from the system at any time.

Expected behavior

Mentioned CC Emails do get the publication report via Email

Screenshot (optional)

cc-emails

Accreditation portlet renders an error for anonymous users

Steps to reproduce

Browse to the Front Page w/o being logged in.

Current behavior

The accreditation portlet is rendered red which indicates an error

Expected behavior

No Portlet is rendered if the contents are not accessible by anonymous users

Screenshot (optional)

Accreditation Portlet

Change default Logo and Favicon

Steps to reproduce

Create a new SENAITE instance and install Bika LIMS Evo

Current behavior

Default Logo and Favicon are shown

Expected behavior

SENAITE Logo and Favicon is shown

Screenshot (optional)

website_ _site

AR Add fails if an Analysis Category was disabled

Steps to reproduce

  • Deactivate an Analysis Category in /bika_etup/bika_analysiscategories/
  • Create a new AR for a Client

Current behavior

Traceback occurse

Expected behavior

Analysis Category is skipped in AR Add

Traceback

Traceback (innermost last):
  Module ZPublisher.Publish, line 138, in publish
  Module ZPublisher.mapply, line 77, in mapply
  Module ZPublisher.Publish, line 48, in call_object
  Module bika.lims.browser.analysisrequest.add2, line 100, in __call__
  Module Products.Five.browser.pagetemplatefile, line 125, in __call__
  Module Products.Five.browser.pagetemplatefile, line 59, in __call__
  Module zope.pagetemplate.pagetemplate, line 132, in pt_render
  Module five.pt.engine, line 98, in __call__
  Module z3c.pt.pagetemplate, line 163, in render
  Module chameleon.zpt.template, line 289, in render
  Module chameleon.template, line 191, in render
  Module chameleon.template, line 171, in render
  Module 861b0c7045fe0bc1067b8545def9820e.py, line 7880, in render
  Module e8c72e6fcd5e32041a3ced9772d87efc.py, line 1406, in render_master
  Module e8c72e6fcd5e32041a3ced9772d87efc.py, line 571, in render_content
  Module 861b0c7045fe0bc1067b8545def9820e.py, line 2792, in __fill_content_core
  Module bika.lims.browser.analysisrequest.add2, line 509, in get_services
KeyError: 'Water Chemistry'

 - Expression: "here/main_template/macros/master"
 - Filename:   ... s/bika/lims/browser/analysisrequest/templates/ar_add2.pt
 - Location:   (line 4: col 23)
 - Source:     metal:use-macro="here/main_template/macros/master"
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 - Arguments:  repeat: {...} (0)
               template: <ViewPageTemplateFile - at 0x7ff6553759d0>
               views: <ViewMapper - at 0x7ff654e90690>
               modules: <instance - at 0x7ff67565eef0>
               args: <tuple - at 0x7ff67d1c8050>
               here: <ImplicitAcquisitionWrapper client-1 at 0x7ff654d041e0>
               user: <ImplicitAcquisitionWrapper - at 0x7ff6584c7e60>
               loop: {...} (5)
               nothing: <NoneType - at 0x8fe4d0>
               translate: <function translate at 0x7ff64fcdaf50>
               container: <ImplicitAcquisitionWrapper client-1 at 0x7ff654d041e0>
               request: <instance - at 0x7ff64f7d1830>
               wrapped_repeat: <SafeMapping - at 0x7ff64ffb2c00>
               traverse_subpath: <list - at 0x7ff64f6dbb90>
               default: <object - at 0x7ff67d0dc560>
               context: <ImplicitAcquisitionWrapper client-1 at 0x7ff654d041e0>
               view: <AnalysisRequestAddView ar_add at 0x7ff6551ae5d0>
               target_language: <NoneType - at 0x8fe4d0>
               root: <ImplicitAcquisitionWrapper Zope at 0x7ff657af78c0>
               options: {...} (0)

AR Add: Copy of multiple ARs from different clients raises a Traceback in the background

Steps to reproduce

  • Select two or more ARs from different Clients from the AR listing view
  • Click the "Copy to new" button

Current behavior

Traceback raises in the background

Expected behavior

Copy works for all fields.

Traceback

Traceback (innermost last):
  Module ZPublisher.Publish, line 138, in publish
  Module ZPublisher.mapply, line 77, in mapply
  Module ZPublisher.Publish, line 48, in call_object
  Module bika.lims.browser.analysisrequest.add2, line 48, in decorator
  Module bika.lims.browser.analysisrequest.add2, line 838, in __call__
  Module bika.lims.browser.analysisrequest.add2, line 1512, in ajax_recalculate_records
  Module plone.memoize.volatile, line 71, in replacement
  Module bika.lims.browser.analysisrequest.add2, line 1106, in get_sampletype_info
  Module bika.lims.api, line 388, in get_uid
  Module bika.lims.api, line 222, in get_object
  Module bika.lims.api, line 192, in fail
BikaLIMSError: None is not supported.

Worksheet: "Print" does not display/print partial results

Steps to reproduce

  • Create 2 new ARs and receive the Samples
  • Create a new Worksheet and add all Analyses of these ARs to the worksheet
  • Add results for the one of the two ARs (half of the Analyses) and submit the results for verification
  • Press the "Print" button

Current behavior

No results are displayed on the report

Expected behavior

Partial results are added to the report

Screenshot (optional)

ws17-0001_ _liscon_lims

localhost_8081_senaite_worksheets_ws17-0001_print

Calculation referring to additional python module not triggered

Steps to reproduce

Create a calculation that refers to a self-defined function within an additional python module,
based on e.g. 2 interim fields.
The calculation is verified by the test parameters and test results.
Assign one AS to this calculation.
Create an AR with this AS.

(@ramonski: look at calculation "Test Python Calcs", service "Test-Analysenservice 1" on our testserver)

Current behavior

When entering interim fields in AR results view the calculation is not triggered.

Expected behavior

The result shall be calculated.

Traceback on batch book view

Steps to reproduce

  • Create a batch
  • Populate it with several ARs
  • Analyse, Verify and publish some of them
  • View results in batch book

Current behavior

Does not work, see

Traceback (innermost last):
  Module ZPublisher.Publish, line 138, in publish
  Module ZPublisher.mapply, line 77, in mapply
  Module ZPublisher.Publish, line 48, in call_object
  Module bika.lims.browser.batch.batchbook, line 116, in __call__
  Module bika.lims.browser.bika_listing, line 906, in __call__
  Module Products.Five.browser.pagetemplatefile, line 125, in __call__
  Module Products.Five.browser.pagetemplatefile, line 59, in __call__
  Module zope.pagetemplate.pagetemplate, line 132, in pt_render
  Module five.pt.engine, line 98, in __call__
  Module z3c.pt.pagetemplate, line 163, in render
  Module chameleon.zpt.template, line 276, in render
  Module chameleon.template, line 171, in render
  Module 5e5d52cb60530b4704a131c863be9ccf.py, line 519, in render
  Module 2bee47bdac3131913f70190acf00b2b1.py, line 1420, in render_master
  Module 2bee47bdac3131913f70190acf00b2b1.py, line 578, in render_content
  Module 5e5d52cb60530b4704a131c863be9ccf.py, line 417, in __fill_content_core
  Module five.pt.expressions, line 161, in __call__
  Module bika.lims.browser.bika_listing, line 1347, in contents_table
  Module Products.Five.browser.pagetemplatefile, line 125, in __call__
  Module Products.Five.browser.pagetemplatefile, line 59, in __call__
  Module zope.pagetemplate.pagetemplate, line 132, in pt_render
  Module five.pt.engine, line 98, in __call__
  Module z3c.pt.pagetemplate, line 163, in render
  Module chameleon.zpt.template, line 276, in render
  Module chameleon.template, line 191, in render
  Module chameleon.template, line 171, in render
  Module f5bc8da15185eef3f92a1e6c2e9ad557.py, line 1613, in render
  Module json, line 244, in dumps
  Module json.encoder, line 207, in encode
  Module json.encoder, line 270, in iterencode
  Module json.encoder, line 184, in default
TypeError: <bound method Analysis.Title of <Analysis at /senaite/clients/client17-1/MP17-00003-R01/asbest_mg>> is not JSON serializable

 - Expression: "view/contents_table"
 - Filename:   ... rc/bika.lims/bika/lims/browser/templates/bika_listing.pt
 - Location:   (line 46: col 31)
 - Source:     tal:content="structure view/contents_table"/>
                                      ^^^^^^^^^^^^^^^^^^^
 - Expression: "python:modules['json'].dumps(toggle_cols)"
 - Filename:   ... a.lims/bika/lims/browser/templates/bika_listing_table.pt
 - Location:   (line 190: col 25)
 - Source:     value python:modules['json'].dumps(toggle_cols);"/>
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 - Arguments:  rows_only: False
               modules: <instance - at 0x7f96ff4a63b0>
               table_only: False
               loop: {...} (0)
               ViewResults: 1
               EditAnalyses: 1
               toggle_cols: {...} (10)
               container: <ImplicitAcquisitionWrapper batch17-1 at 0x7f96d7599e10>
               form_id: list
               sm: <SecurityManager - at 0x7f96d6fb9500>
               specification: <NoneType - at 0x8fe4d0>
               wrapped_repeat: <SafeMapping - at 0x7f96d789da48>
               traverse_subpath: <list - at 0x7f96dca66560>
               template: <ViewPageTemplateFile - at 0x7f96de5a4590>
               nosortclass: nosort
               review_state: {...} (5)
               translate: <function translate at 0x7f96d6f88b18>
               columns: {...} (10)
               repeat: {...} (0)
               column_list: <list - at 0x7f96d76e21b8>
               views: <ViewMapper - at 0x7f96d6fb81d0>
               args: <tuple - at 0x7f96d7542b50>
               here: <ImplicitAcquisitionWrapper batch17-1 at 0x7f96d7599e10>
               portal: <ImplicitAcquisitionWrapper senaite at 0x7f96d7060320>
               user: <ImplicitAcquisitionWrapper - at 0x7f96d7060730>
               nothing: <NoneType - at 0x8fe4d0>
               nr_cols: 11
               roles: <list - at 0x7f96d7208b90>
               default: <object - at 0x7f9706e51520>
               request: <instance - at 0x7f96d7b5e128>
               options: {...} (0)
               review_state_id: default
               t: {...} (5)
               context: <ImplicitAcquisitionWrapper batch17-1 at 0x7f96d7599e10>
               view: <BikaListingTable - at 0x7f96d705fe50>
               target_language: <NoneType - at 0x8fe4d0>
               root: <ImplicitAcquisitionWrapper Zope at 0x7f96d7060f00>
               col: asbest_jn
               tabindex: <generator tabindex at 0x7f96d7041730>

Expected behavior

batch results table should be displayed

Worksheet: Assign-Buttons do not appear anymore after sort-change

Steps to reproduce

Create a new Worksheet and click on the AR column header

Current behavior

The "Assign" buttons do not appear anymore on checkbox-selecting an Analysis

Expected behavior

The "Assign" button appears on Analyses selection

Screenshot (optional)

Expected:
ws17-0004_ _liscon_lims

Current situation after the Analyses were sorted by AR ID:
ws17-0004_ _liscon_lims

(Re-)Installation always adds another identifier type

Steps to reproduce

  • Reinstall over ZMI
  • Go to bika_setup/bika_identifiertypes

Current behavior

The CASNr Identifier Type existis multiple times

Expected behavior

No auto generated Identifier type is created

Screenshot (optional)

Cleanup deprecation warnings

Tracelog prints too much deprecation warnings at the moment. We should ensure the version is deprecation-warnings free asap. Doesn't make sense the core application itself is calling to deprecated functions.

Some that should be easy to address:

  • Call to deprecated function 'bika.lims.content.labcontact.getDepartment'. [1612] Use getDepartments instead
  • Call to deprecated function 'bika.lims.content.abstractroutineanalysis.getAnalysisRequestTitle'. [1709] Use getRequestID instead
  • Call to deprecated function 'bika.lims.content.abstractroutineanalysis.getAnalysisRequestURL'. [1709] Use getRequestURL instead
  • Call to deprecated function 'bika.lims.content.abstractroutineanalysis.getAnalysisRequestUID'. [1709] Use getRequestUID instead

Dismiss deprecation warnings that are related with workflows (events, guards), such as:

  • Call to deprecated function 'bika.lims.content.sample.guard_receive_transition'. [1705] Use bika.lims.workflow.sample.guards.receive
  • Call to deprecated function 'bika.lims.content.analysisrequest.workflow_script_receive'. [1705] Use events.after_receive from bika.lims.workflow.anaysisrequest
  • etc.

cause they are being addressed in workflow branch https://github.com/senaite/bika.lims/tree/workflow-sampling , that will be merged soon.

Change the default installation Screen

Steps to reproduce

Create a new Senaite instance

Current behavior

The default Bika installation screen is shown

Expected behavior

The SENAITE installation screen is shown

Screenshot (optional)

distribution_installieren

AnalysisRequestDigester returns stale data

Steps to reproduce

  • Publish an AR from "Domain A" and afterwards from "Domain B", e.g. localhost/127.0.0.1
  • Change the Lab information

Current behavior

  • URLs stick to Domain A
  • Lab data, e.g. the Name are not updated

Expected behavior

All data is equal to the real data in the system

From Gitter

 Another issue with the AnalysisRequestDigester cache. It stores virtual URLs which will have a negative effect when someone browses the LIMS under different virtual host names. E.g. on my dev machine which runs on http://localhost:6100 The report print want’s to access the images via http://localhost:8888 which comes from the productive machine.
So I cannot test with the copied productive Database correctly at the moment.

AR Mass Edit

Steps to reproduce

Create multiple ARs and try to edit them.

Current behavior

The user has to navigate to each AR to edit the base data or manage Analyses.

Expected behavior

Multiple ARs can be edited with a similar form like used in the new "add form".

Screenshot (optional)

multi-edit

Traceback if Analyses get added to an AR over "Manage Analyses" View

Steps to reproduce

  • Create a new AR
  • Add Analyses over "Manage Analyses" view
  • Click the "Save" button (button is also flaky and appears not always)

Current behavior

Traceback occurs

Expected behavior

Analyses are added

Traceback

Traceback (innermost last):
  Module ZPublisher.Publish, line 138, in publish
  Module ZPublisher.mapply, line 77, in mapply
  Module ZPublisher.Publish, line 48, in call_object
  Module bika.lims.browser.analysisrequest.workflow, line 59, in __call__
  Module bika.lims.browser.analysisrequest.workflow, line 233, in workflow_action_save_analyses_button
  Module Products.Archetypes.BaseFolder, line 166, in __getitem__
  Module OFS.ObjectManager, line 783, in __getitem__
KeyError: ''

Worksheet: switch to transposed layout raises an Error

Steps to reproduce

  • Create a new Worksheet and add some Analyses
  • Switch the layout to transposed

Current behavior

Traceback occurs

Expected behavior

Table get transposed

Traceback

Traceback (innermost last):
  Module ZPublisher.Publish, line 138, in publish
  Module ZPublisher.mapply, line 77, in mapply
  Module ZPublisher.Publish, line 48, in call_object
  Module bika.lims.browser.worksheet.views.results, line 125, in __call__
  Module Products.Five.browser.pagetemplatefile, line 125, in __call__
  Module Products.Five.browser.pagetemplatefile, line 59, in __call__
  Module zope.pagetemplate.pagetemplate, line 132, in pt_render
  Module five.pt.engine, line 98, in __call__
  Module z3c.pt.pagetemplate, line 163, in render
  Module chameleon.zpt.template, line 261, in render
  Module chameleon.template, line 171, in render
  Module 4b2801b2226530702de479386ff8d61e.py, line 1546, in render
  Module 0034bb877f79b50c975c545e0cf578c5.py, line 1392, in render_master
  Module 0034bb877f79b50c975c545e0cf578c5.py, line 559, in render_content
  Module 4b2801b2226530702de479386ff8d61e.py, line 1439, in __fill_content_core
  Module five.pt.expressions, line 161, in __call__
  Module bika.lims.browser.worksheet.views.analyses_transposed, line 34, in contents_table
  Module Products.Five.browser.pagetemplatefile, line 125, in __call__
  Module Products.Five.browser.pagetemplatefile, line 59, in __call__
  Module zope.pagetemplate.pagetemplate, line 132, in pt_render
  Module five.pt.engine, line 98, in __call__
  Module z3c.pt.pagetemplate, line 163, in render
  Module chameleon.zpt.template, line 261, in render
  Module chameleon.template, line 191, in render
  Module chameleon.template, line 171, in render
  Module e6c8514c5f2bf4bd3cc8ff935b32f60d.py, line 794, in render
  Module five.pt.expressions, line 161, in __call__
  Module bika.lims.browser.worksheet.views.analyses_transposed, line 153, in get_workflow_actions
KeyError: 'hide_transitions'

 - Expression: "view/Analyses/contents_table"
 - Filename:   ... ika/lims/browser/worksheet/views/../templates/results.pt
 - Location:   (line 139: col 33)
 - Source:     ... replace="structure view/Analyses/contents_table"/>
                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 - Expression: "view/get_workflow_actions"
 - Filename:   ... wser/worksheet/views/../templates/analyses_transposed.pt
 - Location:   (line 68: col 52)
 - Source:     tal:define="actions view/get_workflow_actions;
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^
 - Arguments:  modules: <instance - at 0x7fdf82dfc680>
               loop: {...} (3)
               ViewResults: 1
               EditAnalyses: 1
               form_id: analyses_form
               rows: <list - at 0x7fdf2c501710>
               container: <ImplicitAcquisitionWrapper WS-0005 at 0x7fdf2c3c1140>
               sm: <SecurityManager - at 0x7fdf2e15ae60>
               wrapped_repeat: <SafeMapping - at 0x7fdf506f7af8>
               traverse_subpath: <list - at 0x7fdf2d357ab8>
               template: <ViewPageTemplateFile - at 0x7fdf60480d90>
               review_state: {...} (5)
               translate: <function translate at 0x7fdf2d39f398>
               repeat: {...} (0)
               toggle_cols: {...} (11)
               views: <ViewMapper - at 0x7fdf3527a0d0>
               args: <tuple - at 0x7fdf2d28c190>
               here: <ImplicitAcquisitionWrapper WS-0005 at 0x7fdf2c3c1140>
               user: <ImplicitAcquisitionWrapper - at 0x7fdf7089f9b0>
               nothing: <NoneType - at 0x91dfd0>
               nr_cols: 12
               roles: <list - at 0x7fdf2c509bd8>
               default: <object - at 0x7fdf8a400500>
               request: <instance - at 0x7fdf2c57d9e0>
               options: {...} (0)
               review_state_id: default
               r: {...} (7)
               t: {...} (5)
               context: <ImplicitAcquisitionWrapper WS-0005 at 0x7fdf2c3c1140>
               view: <AnalysesTransposedTable - at 0x7fdf2d0a5090>
               target_language: <NoneType - at 0x91dfd0>
               root: <ImplicitAcquisitionWrapper Zope at 0x7fdf703ff2d0>
               col: DueDate
               tabindex: <generator tabindex at 0x7fdf2cf6f050>

Adding calibration certificates impossible

Steps to reproduce

Create a new instrument.
After that its calibration certificate is noted as expired (because it does not exist yet).

Current behavior

The button to add a calibration certificate is missing.

BTW when editing existing instruments, certificates are listed, but the add button is still missing.

Expected behavior

A button to add a calibration certificate shows up.

Screenshot (optional)

grafik

Worksheet View - Add Analyses without AR info

Steps to reproduce

Create and receive an AR with some services.
Create a worksheet and try to add services.

Current behavior

The table view of the available analysis services does not show the AR it belongs to.
Column Request ID shows the analysis keyword instead, which is not important in this view.

Expected behavior

Column "Request ID" displays the AR.

Screenshot (optional)

grafik

Template error when clicking on "Login details" of a lab contact

Steps to reproduce

  1. Create a new lab contact in an empty instance
  2. Click on Login details

Current behavior

The following Traceback occurs:

Traceback (innermost last):
  Module ZPublisher.Publish, line 138, in publish
  Module ZPublisher.mapply, line 77, in mapply
  Module ZPublisher.Publish, line 48, in call_object
  Module bika.lims.browser.contact, line 55, in __call__
  Module Products.Five.browser.pagetemplatefile, line 125, in __call__
  Module Products.Five.browser.pagetemplatefile, line 59, in __call__
  Module zope.pagetemplate.pagetemplate, line 132, in pt_render
  Module five.pt.engine, line 98, in __call__
  Module z3c.pt.pagetemplate, line 163, in render
  Module chameleon.zpt.template, line 276, in render
  Module chameleon.template, line 191, in render
  Module chameleon.template, line 171, in render
  Module b41aefe1567adcdcc2f576577359ebf7.py, line 2432, in render
  Module c862d4ff28dfcef3876d905cba504e59.py, line 1420, in render_master
  Module c862d4ff28dfcef3876d905cba504e59.py, line 578, in render_content
  Module b41aefe1567adcdcc2f576577359ebf7.py, line 456, in __fill_content_core
  Module five.pt.expressions, line 154, in __call__
  Module five.pt.expressions, line 126, in traverse
  Module zope.traversing.adapters, line 136, in traversePathElement
   - __traceback_info__: ({}, 'portrait')
  Module zope.traversing.adapters, line 50, in traverse
   - __traceback_info__: ({}, 'portrait', ())
LocationError: ({}, 'portrait')

 - Expression: "userprops/portrait"
 - Filename:   ... c/bika.lims/bika/lims/browser/templates/login_details.pt
 - Location:   (line 55: col 60)
 - Source:     ... tal:replace="structure userprops/portrait"/>
                                          ^^^^^^^^^^^^^^^^^^
 - Arguments:  repeat: {...} (0)
               template: <ViewPageTemplateFile - at 0x7fc29e9f5350>
               views: <ViewMapper - at 0x7fc29ed2a850>
               modules: <instance - at 0x7fc2c4727b48>
               args: <tuple - at 0x7fc2cc3fa050>
               here: <ImplicitAcquisitionWrapper labcontact-1 at 0x7fc29efad5f0>
               user: <ImplicitAcquisitionWrapper - at 0x7fc29e89c050>
               nothing: <NoneType - at 0x8fe4d0>
               translate: <function translate at 0x7fc29e13d6e0>
               container: <ImplicitAcquisitionWrapper labcontact-1 at 0x7fc29efad5f0>
               request: <instance - at 0x7fc29dfe2cb0>
               wrapped_repeat: <SafeMapping - at 0x7fc29ed60cb0>
               traverse_subpath: <list - at 0x7fc29ff969e0>
               default: <object - at 0x7fc2cc30e520>
               loop: {...} (1)
               context: <ImplicitAcquisitionWrapper labcontact-1 at 0x7fc29efad5f0>
               view: <ContactLoginDetailsView login_details at 0x7fc29f3b8d10>
               target_language: <NoneType - at 0x8fe4d0>
               root: <ImplicitAcquisitionWrapper Zope at 0x7fc2a7cbe460>
               options: {...} (0)

Expected behavior

Link user UI appears without errors

Screenshot (optional)

IDServer doesn't find next correct sequence after flush

Steps to reproduce

  • Set sample format ot "{year}-{samplingDate:%m}{samplingDate:%d}{clientId}-{sampleType}-{seq:05d}".
  • Create 2 ARs
  • Flush the number generator
  • Create another AR

Current behavior

The last AR seq is 1

Expected behavior

The last AR seq should be 3

Screenshot (optional)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.