## Where communities thrive

• Join over 1.5M+ people
• Join over 100K+ communities
• Free without limits
##### Activity
• Jun 21 10:54

ramonski on remove-textindexng3

• Jun 21 10:54

ramonski on 2.x

Remove dependency to Products.T… (compare)

• Jun 21 10:54
ramonski closed #132
• Jun 21 10:30
xispa synchronize #132
• Jun 21 10:30

xispa on remove-textindexng3

Update Changelog.rst (compare)

• Jun 21 10:29
xispa review_requested #132
• Jun 21 10:29
xispa opened #132
• Jun 21 10:15

xispa on remove-textindexng3

Remove dependency to Products.T… (compare)

Mike Metcalfe
@mikejmets

Nevertheless, you need to add a custom react component field like e.g. the StringField:
https://github.com/senaite/senaite.core.listing/blob/master/src/senaite/core/listing/react/components/StringField.coffee
But change the input type to date: https://github.com/senaite/senaite.core.listing/blob/master/src/senaite/core/listing/react/components/StringField.coffee#L58

I need an editable DateField in a listing. Has anyone started on this yet? Also, I don't see the Issue tab in s.app.listing on github, where should I create an issue for this?

Mike Metcalfe
@mikejmets
Reading through the s.a.listing README I don't see anything about coffeescript. If someone can tell me where the converted js output should go, I will update the README. Or does webpack do it automagically?
toedtling
@toedtling
is there any fast way tutorial how to set up senaite on a raspberry
Mike Metcalfe
@mikejmets
Wow, there are loads of react datetime pickers (https://www.npmjs.com/search?q=datetime%20picker). Any thoughts/preferences?
Ramon Bartl
@ramonski

Reading through the s.a.listing README I don't see anything about coffeescript. If someone can tell me where the converted js output should go, I will update the README. Or does webpack do it automagically?

Hi Mike, yes, webpack is taking care of all conversion and packing already

Wow, there are loads of react datetime pickers (https://www.npmjs.com/search?q=datetime%20picker). Any thoughts/preferences?

I would actually just go for the HTML 5 date fields

Ross Kiernan
@rosskiernan4_gitlab
Hi all, I was just wondering about Senaite is there anyway once data gets put into senaite that the same data is then pushed into another system?
Mike Metcalfe
@mikejmets

I would actually just go for the HTML 5 date fields

I actually require a DateTime field but the html5 datetime field is deprecated and datetime-local has not supported by all browsers (in my case firefox on linux)

Mike Metcalfe
@mikejmets
This is from developer.mozilla.org: The control's UI varies in general from browser to browser; at the moment support is patchy, with only Chrome/Opera and Edge on desktop and most modern versions of mobile browsers having usable implementations. In other browsers, these degrade gracefully to simple <input type="text"> controls.
kidpixo
@kidpixo
Hi, I just discover Senaite.
I cannot understand if I can store spectral measurements too.
At the end they are just text files.
thanks!
Chenderin
@Chenderin
Hello everyone, I'm a newbie using SENAITE and I would like you to please help me with a question I have. I want to export customer data, samples, etc, but I can't find any solution. I know that there is an option to generate reports, but unfortunately it is very limited. I have reviewed many topics in the forum, but none give a clear solution. I would like to know if any of you know how to do it to date? I am very interested in using this LIMS, but the reports are very important to me. Thanks a lot
valeriozhang
@valeriozhang
ez_setup.py is deprecated and when using it setuptools will be pinned to 33.1.1 since it's the last version that supports setuptools self upgrade/installation, check pypa/setuptools#581 for more info; use pip to install setuptools
Extracting in /tmp/tmpZb4xEq
Now working in /tmp/tmpZb4xEq/setuptools-33.1.1
Building a Setuptools egg in /tmp/bootstrap-tjxCat
warning: no files found matching '' under directory 'setuptools/_vendor'
/tmp/bootstrap-tjxCat/setuptools-33.1.1-py2.7.egg
error: https://files.pythonhosted.org/packages/3b/69/3584b5d1f197460194647aa12c627cb4b0b822ee1782fd6c867280f2e6d7/zc.buildout-2.13.4.tar.gz#sha256=b978b2f9317b317ee4191f78fcc4f05b1ac41bdaaae47f0956f14c8285feef63 hostname 'files.pythonhosted.org' doesn't match either of 'r.ssl.fastly.net', '
.catchpoint.com', '.cnn.io', '.dollarshaveclub.com', '.eater.com', '.fastly.picmonkey.com', '.files.saymedia-content.com', '.ft.com', '.meetupstatic.com', '.nfl.com', '.pagar.me', '.picmonkey.com', '.realself.com', '.sbnation.com', '.shakr.com', '.streamable.com', '.surfly.com', '.theverge.com', '.thrillist.com', '.vox-cdn.com', '.vox.com', '.voxmedia.com', 'eater.com', 'ft.com', 'i.gse.io', 'picmonkey.com', 'realself.com', 'static.wixstatic.com', 'streamable.com', 'surfly.com', 'theverge.com', 'vox-cdn.com', 'vox.com', 'www.joyent.com'
Traceback (most recent call last):
File "bootstrap.py", line 193, in <module>
"Failed to execute command:\n%s" % repr(cmd)[1:-1])
Exception: Failed to execute command:
'/usr/local/bin/python', '-c', "import sys; sys.path[0:0] = ['/tmp/bootstrap-tjxCat/setuptools-33.1.1-py2.7.egg']; from setuptools.command.easy_install import main; main()", '-mZqNxd', '/tmp/bootstrap-tjxCat', 'zc.buildout==2.13.4'
The command '/bin/sh -c python bootstrap.py && bin/buildout && ln -s $SENAITE_FILESTORAGE/ var/filestorage && ln -s$SENAITE_BLOBSTORAGE/ var/blobstorage && chown -R senaite:senaite $SENAITE_HOME$SENAITE_DATA && rm -rf \$SENAITE_HOME/buildout-cache/downloads/dist' returned a non-zero code: 1
ERROR: Service 'zeoserver' failed to build
has anyone had this issue before via docker?
valeriozhang
@valeriozhang
everything was working fine until today
mateoke
@mateoke
Regarding Senaite Health, can the process for requesting investigations be changed to a more intuitive one? Doctors never ask for samples; they ask for tests (represented by analysis services and analysis profiles). The current process of making analysis requests which begins by first creating samples then indicating tests to be performed on those samples makes the process quite challenging and difficult to adopt Senaite when other healthcare LIMS follow a more natural flow. Also, the anticipated QA around making sure samples are collected in the right containers does not work this way i.e there is no point where the system recommends to the user the correct container to collect a sample in. An ideal flow would be for a doctor to request for an analysis service/profile and get indication of the sample type and container to do this with.
Stefan Gruber
@grulisco
You can configure sample partitions, containers and sample types there.
NEWAGE-Labs
@NEWAGE-Labs

Hello everyone, I'm a newbie using SENAITE and I would like you to please help me with a question I have. I want to export customer data, samples, etc, but I can't find any solution. I know that there is an option to generate reports, but unfortunately it is very limited. I have reviewed many topics in the forum, but none give a clear solution. I would like to know if any of you know how to do it to date? I am very interested in using this LIMS, but the reports are very important to me. Thanks a lot

@Chenderin There are multiple ways to export data depending on whether you need raw data or a PDF.

For all Reports/PDFs, you should use the Senaite.Impress addon in addition to senaite.core and senaite.lims. You can customize your own report templates based on TAL/METAL expressions (as a lot of Plone is done). I don't believe Senaite.Impress has Chameleon support, but I could be wrong :)

For raw data, it is best to use the Senaite API if you can. The code lives inside the senaite.core project, but there is an old git repo for the API specifically that has the documentation. The other primary method is to include the senaite.jsonapi addon and get a lot of relevant data in an HTTP request.

NEWAGE-Labs
@NEWAGE-Labs

is there any fast way tutorial how to set up senaite on a raspberry

@toedtling Senaite on a Pi should be similar to running Senaite/Plone any other Linux distro, but your Pi needs to meet Plone's minimum requirements.

Ensure your Pi meets Plone's Installation Requirements, and then follow the Official Senaite Installation Instructions.

Alternatively, you could put Docker on your Pi, and simply run a Senaite container. There should be a few images available, but Ramonski's is the official one I believe (and should be labelled as such).

Your Pi might be powerful enough to host the site, but not to additionally run the browser needed to view it. If resources are limited, ensure your Pi is on a network and navigate to YOUR_PI_IP:8080 in your browser.

NEWAGE-Labs
@NEWAGE-Labs

The lab I'm working for controls the weight of each standard before and after a QC run or analysis. They wish to be able to track the use of each standard and get a warning when they're running low. How difficult would it be to add this functionality to Reference Samples, for example?

@gonzalohd_gitlab That would depend on your familiarity with Plone Development. Senaite was built following most of Plone's conventions to allow multiple Add-Ons to work together. A custom Plone Add-On that modifies the reference samples and does all the bookkeeping/notifications you want should be incredibly feasible!

Unfortunately, Plone is a pretty steep learning curve, so if you're brand new to it I would plan on learning for a bit first. There is a pretty good Plone Training on learning to create Add-Ons for Plone. However, you'll need to keep in mind that Senaite is a combination of a few Add-Ons that are already created, so your modifications wouldn't be the same as they would for a brand new site. For that you'll need to read the GitHub Repositories themselves, browser the Senaite Community Forums, and read some of the old conversations here on Gitter ^^^

Hi, I’ve followed the instruction that were provided to use the dynamic specs but still i didn’t get the out of range mark !
is there any instructions except those ?
https://community.senaite.org/t/multiple-analysis-specifications/407
Gonzalo Hernandez
@gonzalohd_gitlab
@NEWAGE-Labs thank you very much for your response
NEWAGE-Labs
@NEWAGE-Labs

Does anyone know how to Override a View Class when the view is specifically for the default view?

We would like to override some of the browser view classes like BatchFolderContentsView, but we cannot seem to get the changes to appear unless we manually enter a @@ style url for whatever the name= field is in our configure.zcml .

We noticed that the name for the view is "base_view" which that the Default view has an alias.

However, (for the BatchFolder example specifically) we have tried using the naming conventions: BatchFolder, base_view, and (Default) with no success in changing which view is rendered by default.

NEWAGE-Labs
@NEWAGE-Labs
Do we need to do something with GenericSetup to get the bika.lims AT content to use our subclassed view as the default view instead somehow? Does anyone have an example of how to override the default view for any of the Senaite content types from a separate Add-On?
NEWAGE-Labs
@NEWAGE-Labs

This is what we have for it so far in our addon:

In our browser/configure.zcml we added:

  <!-- Override BatchFolder View Class -->
<browser:page
name="BatchFolder"
class=".batchfolder.CustomBatchFolderContentsView"
permission="cmf.ListFolderContents"
for="bika.lims.interfaces.IBatchFolder"
layer="nal.lims.interfaces.INalLimsLayer"
/>

And then in our browser/batchfolder.py we added:

from bika.lims.browser.batchfolder import BatchFolderContentsView
#Some other imports

class CustomBatchFolderContentsView(BatchFolderContentsView):
#Our customized BatchFolder view class

If we navigate to localhost:8080/oursenaitesite/.../@@BatchFolder we successfully see our custom view. We would like this to be the Default
However, with the name field set to name='base_edit' which is the name senaite aliases the (Default) view as, we don't get our custom view and ONLY get the Senaite default.

Mike Metcalfe
@mikejmets
To override you must place the config in overrides.zcml not configure.zcml
Also, like the configure.zcml hierarchy that starts in the root of the add on, you need an overrides.zcml that includes browser/overrides.zcml
NEWAGE-Labs
@NEWAGE-Labs

@mikejmets Thank you for that information! We have tried overriding the other package, but now cannot even get a new view.

Thus far we have added an overrides.zcml file to our root that includes the browser directory:

<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:browser="http://namespaces.zope.org/browser"
i18n_domain="nal.lims">

<include package=".browser" />

</configure>

We then included this file in our main configure.zcml file with:

  <include file="overrides.zcml" />

We then added a browser/overrides.zcml with the new browser:page registration according to the documentation linked about.

<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:browser="http://namespaces.zope.org/browser"
i18n_domain="nal.lims">

<!-- Override BatchFolder View Class -->
<configure package="bika.lims.browser.batchfolder">
<browser:page
for="bika.lims.interfaces.IBatchFolder"
class="nal.lims.browser.batchfolder.CustomBatchFolderContentsView"
name="base_edit"
layer="nal.lims.interfaces.INalLimsLayer"
permission="cmf.ListFolderContents"
/>
</configure>

</configure>
Do you know of any examples of this Override configuration being implemented successfully on Plone 5? I'm not sure what we are missing, but I'm willing to figure it out if anyone has an example repo.
NEWAGE-Labs
@NEWAGE-Labs

Nevermind, we figured it out!

It worked following the official Overriding a View Class documentation, but with the exception that we needed some Senaite interfaces to get everything working correctly.

The solution was using these interfaces instead of the IDefaultPloneLayer for our root level interface layer.

from senaite.impress.interfaces import ILayer as ISenaiteImpressLayer
from senaite.lims.interfaces import ISenaiteLIMS
from bika.lims.interfaces import IBikaLIMS

#Layer our custom views bind to
class INalLimsLayer(ISenaiteImpressLayer, ISenaiteLIMS, IBikaLIMS):
"""Marker interface that defines a browser layer."""
Paul VanderWeele
@faytrow

Does anyone know how to get the Navigation to re-load the name for a folder?

During install, my addon changes both the Factory Type title field, as well as the top level folder from "Methods" to "SOPs". The folder title field is changed using the API:

def post_install(context):
"""Post install script"""
# Do something at the end of the installation of this package.
site = api.get_portal()

#Change 'Methods' folder title to 'SOPs'
site.methods.title = "SOPs"

and the FTI is changed using a purging property:

<?xml version="1.0"?>
<object name="Methods"
meta_type="Factory-based Type Information with dynamic views"
xmlns:i18n="http://xml.zope.org/namespaces/i18n"
<property name="title" purge="True">SOPs</property>
</object>

but the Navigation portlet doesn't register the change unless I create an entirely new folder. It looks correct in the ZMI, in the navigation control panel at: http://localhost:8080/senaite/@@navigation-controlpanel, and in the Breadcrumbs, but not in the Navigation portlet itself.

Paul VanderWeele
@faytrow
The title is initially set in bika/lims/profiles/default/structure/methods/.properties during Senaite install when the folder is created. The Nav tree is displaying that initial value even if the title is change after install though. I can modify that file directly and get a fresh site to properly display the title in the navigation, but if I alter the title as part of my own addon's installation the change is not picked up.
NEWAGE-Labs
@NEWAGE-Labs
Is there a straightforward way to change the Toolbar Logo in Senaite v2.x? It seems to function much differently than v1.3
Jeff Bullard
@Jeff-DFWEnv
Is it possible to retract/modify results in a worksheet after they have been verified? We made a mistake in data entry and did not realize it until the publish stage. Need to revise that result in the worksheet but its stuck in "verified" state. Thanks
NEWAGE-Labs
@NEWAGE-Labs

Is it possible to retract/modify results in a worksheet after they have been verified? We made a mistake in data entry and did not realize it until the publish stage. Need to revise that result in the worksheet but its stuck in "verified" state. Thanks

I believe by default, samples must be invalidated and retested if they've made it all the way the the Verified state. They cannot be 'unverified' since that sort of implies they were not truly verified in the first place. A workflow for that could be added via an add-on though.

Daniel
@DanKaranja

Hi, we have more than one lab and are trying to find out how to to limit what is visible/accessible to the separate lab managers to only what they create.Is this possible?

For example, LabManagerA can only see clients and interact with samples they create. LabManagerB is unable see/edit any of LabManagerA's clients/samples etc

Jeff Bullard
@Jeff-DFWEnv
@NEWAGE-Labs Thanks for reply on Verified state. I'll need to program capability to downgrade the state because as we are less than 100% prefect in verification. This particular batch of samples had >500 analysis results and one was incorrect. Due to inability to downgrade verification, had to start over at the beginning and re-enter all of them with new AR identifications etc. Huge chore and now the AR IDs don't match our bench sheets. That's a big problem.
phb95
@phb95
Hi All,
phb95
@phb95
Hi All,
New to gitter, you could have guessed :)
I'm currently collecting information about communication between a LIS and instruments. I've seen that a few years ago you drafted a project called FROID that was based on OpenHIM and FHIR. Can you share why this kind of approach was not used (as far as I can tell) in Senaite ?
NEWAGE-Labs
@NEWAGE-Labs

Is there a straightforward way to change the Toolbar Logo in Senaite v2.x? It seems to function much differently than v1.3

If anyone is interested, Ramonski gave and answer to this question, and we have verified it works! We did notice that Mr. Developer automatically creates a renamed location for the static resources though, so we needed to use ++plone++our.addon.images/logo.png

Has anyone successfully added a default_method to a AT Adapter? We have adapters that modify AnalysisRequests, but every time we try a default method we get a OUR_CUSTOM_FIELD.default_method is neither a method of <class 'bika.lims.content.analysisrequest.AnalysisRequest'> nor a callable error
NEWAGE-Labs
@NEWAGE-Labs

@NEWAGE-Labs Thanks for reply on Verified state. I'll need to program capability to downgrade the state because as we are less than 100% prefect in verification. This particular batch of samples had >500 analysis results and one was incorrect. Due to inability to downgrade verification, had to start over at the beginning and re-enter all of them with new AR identifications etc. Huge chore and now the AR IDs don't match our bench sheets. That's a big problem.

@Jeff-DFWEnv Did you try the Invalidate workflow? It should at least give you a new sample ID that matches with an addition -R1 added to indicate it is a retest. While it does not match the bench sheets exactly, there is an auditable trail inside Senaite linking the original sample to the retested sample. I believe the original results get moved over by default as well, but in an earlier state.

Hi All,
New to gitter, you could have guessed :)
I'm currently collecting information about communication between a LIS and instruments. I've seen that a few years ago you drafted a project called FROID that was based on OpenHIM and FHIR. Can you share why this kind of approach was not used (as far as I can tell) in Senaite ?

@phb95 Not sure if this is actually the answer you were looking for, but This post may be of interest to you.

phb95
@phb95
Emmanuel Nyachoke
@enyachoke
Hi everybody. Am doing a project where is could be nice to have single sign on. Is this possible in senaite if yes could you point me in the right direction on how to achieve this.
montasser2020-cyber
@montasser2020-cyber
Hello everyone, I am a new user of SENAITE I am trying to modify the design of the report issued by software so I am trying to connect crystal report to the datasource of software but I couldnt find it so is there any information how to find it or if there are better idea for report design modification I will appreciate your help
NEWAGE-Labs
@NEWAGE-Labs

Hello everyone, I am a new user of SENAITE I am trying to modify the design of the report issued by software so I am trying to connect crystal report to the datasource of software but I couldnt find it so is there any information how to find it or if there are better idea for report design modification I will appreciate your help

Senaite Impress is what most senaite users use for reporting. There is documentation on the Github Page. It converts HTML TAL/TALES templates to render the image, and then converts it to a PDF.

The Senaite community site appears to be down
NEWAGE-Labs
@NEWAGE-Labs

Question to anyone with knowledge about JavaScript and modifying Senaite with custom add-ons and GenericSetup profiles.

In our custom Add-On, we wanted to renamed the type 'Sample Point' to 'Sample Location'. We did this by adding the SamplePoint factory type to our GenericSetup profile types.xml file, and changing only the title in SamplePoint.xml like so:

<?xml version="1.0"?>
<object name="SamplePoint"
meta_type="Factory-based Type Information with dynamic views"
xmlns:i18n="http://xml.zop.org/namespaces/i18n"
i18n:domain="nal.lims">
<property name="title" i18n:translate="">Sample Location</property>
</object>

However, we are now having an issue where the SamplePoint will not save during the AR Add screen. It saves perfectly fine on the AR Edit screen, but will not survive a refresh nor submit on the Add screen. However, when inspecting the JavaScript of the SamplePoint element, we cannot determine why this is failing. We did not change anything that affects the referentiability of the widget, yet it fails to load the object from the add template into the javascript that temporarily holds it.

NEWAGE-Labs
@NEWAGE-Labs
Nevermind, the issue was mis-diagnosed because SampleType was being entered after SamplePoint. The issue appears to be that when no Sample Types are selected under the list of valid SampleTypes for a given SamplePoint, the SamplePoint cannot be searched in the AR Add popup. The filter query only shows SamplePoints with explicitly defined SampleTypes. Will investigate