SENAITE is going a major step forward - a Developer's Log

Today we are excited to announce some amazing news to you. Together with the
support of eHealth Africa and the lab team of EHA Clinics we
can finally pursue the road to upgrade the SENAITE core codebase from
Plone version 4 to the latest 5.x version.

We, the companies behind SENAITE, are especially proud to support eHealth
Africa’s mission to build stronger health systems through the design and
implementation of data-driven solutions that respond to local needs and provide
underserved communities with tools to lead healthier lives.

The update to the latest Plone version is a major step on our Roadmap
towards our long desired goal to update SENAITE to the latest Python 3.x

While this is of course important from a technical point of view and brings for
sure some powerful features to the system in the future, the symbolic impact of
it is much more extensive for the Open-Source Laboratory System SENAITE.

Without doubt this emphasizes the strength of the Open-Source philosophy and the
benefits of using, supporting and investing in it. SENAITE has become the
de-facto alternative to proprietary LIMS solutions and proofs now stronger than
ever its sustainability in that field.

Starting with this initial post we will follow up with technical updates on a
regular basis to inform you about the development progress we make. So please
make sure you are watching this topic to get notified and don’t miss any new



nice。666。shafa。很优秀。加油 :咧嘴:

Plone 5 Migration - Update 1

Today we want to share with you the first update on the current process of the
Plone 5 migration.

The good news so far is that we have managed to update the technology stack to
the latest version on Plone, which is 5.2.1 at the time of writing:

Plone 5.2.1 (5208)
CMF 2.4.2
Zope 4.1.3
Python 2.7.17
PIL 6.2.1 (Pillow)
Server: ZServer 4.0.2

We also managed to rewrite some of the essential templates, viewlets and
portlets to render nicely with the newest version of Twitter Bootstrap,
so that the overall result looks already very appealing:

Furthermore, the Archetypes based content types, e.g. Clients,
Samples, Analyses etc., are installable and available in the new technology

However, especially custom fields and widgets cause most of the user interface
logic to be dysfunctional at this point and need to be adapted to work with
Plone 5.

Especially the new introduced Resource Registry of Plone 5 causes some
headaches for refactoring to register all of the required 3rd party JavaScript
libraries and making them available in the new SENAITE user interface.

Our current approach is to carefully and gradually move part for part out of the
obsolete internal bika.lims code namespace into a new senaite.core package
with refactored and cleaned up code only.

We believe that this approach will give us the chance to unveil the needed from
the unneeded code parts that brings the core system into a perfect shape.

A final word to the end

You might ask yourself why we are still using Python 2.x, although Plone 5.2.x
is already compatible with Python 3.x, which is indeed a good question.

The reason why we are still relying on Python 2.x is that most of our content
types are written with the Archetypes framework, which is unfortunately
not compatible with Python 3.x.

Hence, by following our ROADMAP, we need to first update the codebase
to Plone 5.x, upgrade then the existing content types to use the Dexterity
framework and update the rest of the codebase to be compatible with Python 3.x.

Still a long way to go, but we are optimistic today that we can achieve it.


Exciting news! Keep it going!.. Looks awesome.

By the way, for those that have an avid interest in how this is being done, all these changes are publicly available in the branch senaite.core 2.x. For now, must of the work is being done there, but 2.x branches will gradually be added in other add-ons, starting for those that senaite.core depends on the most.