Skip to content

Commit

Permalink
Merge pull request #35 from eea/develop
Browse files Browse the repository at this point in the history
Release
  • Loading branch information
avoinea authored Mar 18, 2024
2 parents 4115cf5 + 5804cd6 commit 3d8fbce
Show file tree
Hide file tree
Showing 16 changed files with 105 additions and 257 deletions.
2 changes: 1 addition & 1 deletion Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ pipeline {

environment {
GIT_NAME = "eea.kitkat"
SONARQUBE_TAGS = "www.eea.europa.eu,www.eea.europa.eu-en,demo-www.eea.europa.eu,climate-advisory-board.europa.eu,forest.eea.europa.eu,biodiversity.europa.eu"
SONARQUBE_TAGS = "www.eea.europa.eu,www.eea.europa.eu-en,demo-www.eea.europa.eu,climate-advisory-board.europa.eu,forest.eea.europa.eu,biodiversity.europa.eu,insitu.copernicus.eu"
}

stages {
Expand Down
5 changes: 5 additions & 0 deletions docs/HISTORY.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
Changelog
=========

8.0 - (2024-03-15)
---------------------------
* Refactor: Move Version overview related code to eea.api.controlpanel
[avoinea - refs #264531]

7.0 - (2023-10-18)
---------------------------
* Breaking: Remove pas.plugin.oidc dependency
Expand Down
49 changes: 0 additions & 49 deletions eea/kitkat/__init__.py
Original file line number Diff line number Diff line change
@@ -1,58 +1,9 @@
""" Main product initializer
"""
import os
import logging
from datetime import datetime
import transaction
import Zope2
from zope.i18nmessageid.message import MessageFactory


logger = logging.getLogger("eea.kitkat")
EEAMessageFactory = MessageFactory('eea')

version_record = "eea.kitkat.interfaces.IEEAVersionsBackend.version"
old_version_record = "eea.kitkat.interfaces.IEEAVersionsBackend.old_version"
date_record = "eea.kitkat.interfaces.IEEAVersionsBackend.date"
version_env = "BACKEND_VERSION"


def initialize(context):
"""Initializer called when used as a Zope 2 product.
"""
root = Zope2.app()
sites = root.objectValues("Plone Site")
version = os.environ.get(version_env, "")

if not version:
return

changed = False
for site in sites:
if not hasattr(site, "portal_registry"):
continue

registry = site.portal_registry

if version_record not in registry:
continue

if not isinstance(version, str):
version = str(version)

if registry[version_record] != version:
registry[old_version_record] = registry[version_record]
registry[version_record] = version
registry[date_record] = datetime.now()
changed = True

if changed:
transaction.get().note('eea.kitkat: updating BACKEND_VERSION')
try:
transaction.commit()
except Exception as err:
logger.warning(
"BACKEND_VERSION already updated elsewhere: %s", err)
transaction.abort()
else:
logger.info("BACKEND_VERSION updated to: %s", version)
5 changes: 1 addition & 4 deletions eea/kitkat/configure.zcml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
<i18n:registerTranslations directory="locales" />

<include package="collective.taxonomy" />
<include package="eea.api.controlpanel" />
<include package="eea.api.layout" />
<include package="eea.banner" />
<include package="eea.geolocation" />
Expand All @@ -20,8 +21,4 @@
<include package=".restapi" />
<include package=".upgrades" />

<subscriber for="eea.kitkat.interfaces.IEEAVersionsFrontend
plone.registry.interfaces.IRecordModifiedEvent"
handler=".events.detectVersionChange" />

</configure>
29 changes: 0 additions & 29 deletions eea/kitkat/events.py

This file was deleted.

49 changes: 9 additions & 40 deletions eea/kitkat/interfaces.py
Original file line number Diff line number Diff line change
@@ -1,54 +1,23 @@
"""Module where all interfaces, events and exceptions live."""

from zope import schema
from zope.interface import Interface
from zope.publisher.interfaces.browser import IDefaultBrowserLayer
from eea.kitkat import EEAMessageFactory as _


class IEeaKitkatLayer(IDefaultBrowserLayer):
"""Marker interface that defines a browser layer."""


class IEEAVersionsBackend(Interface):
""" Registry record for the backend versions
"""
date = schema.Datetime(
title=_(u"Date of last version update"),
description=(u"The date when the version was last updated"),
required=True
)

version = schema.Text(
title=_(u"Current version"),
description=(u"The latest version that exists"),
required=True
)

old_version = schema.Text(
title=_(u"Previous version"),
description=(u"The version that was previously"),
required=False
)
""" Old Registry record for the backend versions """


class IEEAVersionsFrontend(Interface):
""" Registry record for the frontend versions
""" Old Registry record for the frontend versions
"""
date = schema.Datetime(
title=_(u"Date of last version update"),
description=(u"The date when the version was last updated"),
required=True
)

version = schema.Text(
title=_(u"Current version"),
description=(u"The latest version that exists"),
required=True
)

old_version = schema.Text(
title=_(u"Previous version"),
description=(u"The version that was previously"),
required=False
)


__all__ = [
'IEeaKitkatLayer',
'IEEAVersionsBackend',
'IEEAVersionsFrontend',
]
3 changes: 2 additions & 1 deletion eea/kitkat/profiles/default/metadata.xml
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<version>6.2</version>
<version>8.0</version>
<dependencies>
<dependency>profile-collective.taxonomy:default</dependency>
<dependency>profile-eea.api.controlpanel:default</dependency>
<dependency>profile-eea.api.layout:default</dependency>
<dependency>profile-eea.banner:default</dependency>
<dependency>profile-eea.coremetadata:default</dependency>
Expand Down
11 changes: 8 additions & 3 deletions eea/kitkat/profiles/default/registry.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
<registry>
<records interface="eea.kitkat.interfaces.IEEAVersionsBackend" />
<records interface="eea.kitkat.interfaces.IEEAVersionsFrontend" />

<records interface="eea.kitkat.browser.captcha.ICaptchaSettings" />

<!-- Clean up old records - Moved to eea.api.controlpanel -->
<record name="eea.kitkat.interfaces.IEEAVersionsBackend.date" interface="eea.kitkat.interfaces.IEEAVersionsBackend" field="date" remove="True" />
<record name="eea.kitkat.interfaces.IEEAVersionsBackend.old_version" interface="eea.kitkat.interfaces.IEEAVersionsBackend" field="old_version" remove="True" />
<record name="eea.kitkat.interfaces.IEEAVersionsBackend.version" interface="eea.kitkat.interfaces.IEEAVersionsBackend" field="version" remove="True" />
<record name="eea.kitkat.interfaces.IEEAVersionsFrontend.date" interface="eea.kitkat.interfaces.IEEAVersionsFrontend" field="date" remove="True" />
<record name="eea.kitkat.interfaces.IEEAVersionsFrontend.old_version" interface="eea.kitkat.interfaces.IEEAVersionsFrontend" field="old_version" remove="True" />
<record name="eea.kitkat.interfaces.IEEAVersionsFrontend.version" interface="eea.kitkat.interfaces.IEEAVersionsFrontend" field="version" remove="True" />
</registry>
4 changes: 0 additions & 4 deletions eea/kitkat/profiles/uninstall/registry.xml

This file was deleted.

18 changes: 0 additions & 18 deletions eea/kitkat/restapi/configure.zcml
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,6 @@
xmlns:plone="http://namespaces.plone.org/plone"
>

<plone:service
method="GET"
factory=".get.SystemGet"
for="Products.CMFPlone.interfaces.IPloneSiteRoot"
layer="eea.kitkat.interfaces.IEeaKitkatLayer"
permission="plone.app.controlpanel.Overview"
name="@system"
/>

<plone:service
method="PATCH"
factory=".update.SystemUpdate"
for="Products.CMFPlone.interfaces.IPloneSiteRoot"
layer="eea.kitkat.interfaces.IEeaKitkatLayer"
permission="zope2.View"
name="@system"
/>

<plone:service
method="POST"
factory=".post.CaptchaVerifyPost"
Expand Down
47 changes: 0 additions & 47 deletions eea/kitkat/restapi/get.py
Original file line number Diff line number Diff line change
@@ -1,55 +1,8 @@
""" Get @system info """
import pkg_resources
from plone.api.portal import get_registry_record
from plone.restapi.serializer.converters import json_compatible
from plone.restapi.services import Service
from plone.restapi.services.system.get import SystemGet as PloneSystemGet

from eea.kitkat.browser.captcha import ICaptchaSettings
from eea.kitkat.interfaces import IEEAVersionsBackend, IEEAVersionsFrontend


class SystemGet(PloneSystemGet):
""" @system endpoint
"""
def eggs(self):
""" Eggs """
# pylint: disable=not-an-iterable
for pkg in pkg_resources.working_set:
yield (pkg.key, pkg.version)

def frontend(self):
""" Frontend info """
return {
"version": get_registry_record(
"version", interface=IEEAVersionsFrontend),
"old_version": get_registry_record(
"old_version", interface=IEEAVersionsFrontend),
"date": get_registry_record(
"date", interface=IEEAVersionsFrontend),
}

def backend(self):
""" Backend info """
return {
"version": get_registry_record(
"version", interface=IEEAVersionsBackend),
"old_version": get_registry_record(
"old_version", interface=IEEAVersionsBackend),
"date": get_registry_record(
"date", interface=IEEAVersionsBackend),
}

def reply(self):
""" Reply """
res = super(SystemGet, self).reply()
if "eggs" not in res:
res["eggs"] = dict(self.eggs())
if "frontend" not in res:
res["frontend"] = self.frontend()
if "backend" not in res:
res["backend"] = self.backend()
return json_compatible(res)


class CaptchaKeyGet(Service):
Expand Down
60 changes: 0 additions & 60 deletions eea/kitkat/restapi/update.py

This file was deleted.

Loading

0 comments on commit 3d8fbce

Please sign in to comment.