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

Add SOLR support #15

Merged
merged 16 commits into from
Apr 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ graft src/kitconcept
graft docs
graft news
graft tests
graft solr
include .coveragerc
include .dockerignore
include .editorconfig
Expand Down
5 changes: 5 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,11 @@ solr-start: ## Start solr
@echo "Start solr"
@COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME} docker compose -f ${SOLR_ONLY_COMPOSE} up -d

.PHONY: solr-start-and-rebuild
solr-start-and-rebuild: ## Start solr, force rebuild
@echo "Start solr, force rebuild, erases data"
@COMPOSE_PROJECT_NAME=${COMPOSE_PROJECT_NAME} docker compose -f ${SOLR_ONLY_COMPOSE} up -d --build

.PHONY: solr-start-fg
solr-start-fg: ## Start solr in foreground
@echo "Start solr in foreground"
Expand Down
2 changes: 2 additions & 0 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@
"plone.distribution",
# "plone.api",
"kitconcept.solr",
"python-dateutil",
"collective.person",
],
extras_require={
"test": [
Expand Down
11 changes: 11 additions & 0 deletions solr/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# syntax=docker/dockerfile:1
FROM solr:8

LABEL maintainer="kitconcept, GmbH <[email protected]>" \
org.label-schema.name="ghcr.io/kitconcept/solr" \
org.label-schema.description="Solr 8 image with Plone default settings" \
org.label-schema.vendor="kitconcept, GmbH"

# Copy default plone configuration for this image
COPY etc /plone-config
COPY bin/solr-update-core /opt/docker-solr/scripts
Empty file.
33 changes: 33 additions & 0 deletions src/kitconcept/intranet/behaviors/additional_contact_info.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
from kitconcept.intranet import _
from plone.autoform.directives import read_permission
from plone.autoform.interfaces import IFormFieldProvider
from plone.supermodel import directives
from plone.supermodel import model
from zope import schema
from zope.interface import provider


PERMISSION = "kitconcept.intranet.behaviors.additional_contact_info.view"


@provider(IFormFieldProvider)
class IAdditionalContactInfo(model.Schema):
directives.fieldset(
"additional_contact_info",
label=_(
"label_additional_contact_info",
default="Additional Contact Information",
),
fields=("contact_building", "contact_room"),
)

read_permission(contact_building=PERMISSION, contact_room=PERMISSION)

contact_building = schema.TextLine(
title=_("label_contact_building", default="Building"),
required=False,
)

contact_room = schema.TextLine(
title=_("label_contact_room", default="Room"), required=False
)
22 changes: 22 additions & 0 deletions src/kitconcept/intranet/behaviors/configure.zcml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:browser="http://namespaces.zope.org/browser"
xmlns:plone="http://namespaces.plone.org/plone"
xmlns:zcml="http://namespaces.zope.org/zcml"
i18n_domain="kitconcept.intranet"
>

<include
package="plone.behavior"
file="meta.zcml"
/>

<!-- Person Behavior -->
<plone:behavior
name="kitconcept.intranet.additional_contact_info"
title="Person Behavior"
description="Fields with additional person information"
provides=".additional_contact_info.IAdditionalContactInfo"
/>

</configure>
9 changes: 9 additions & 0 deletions src/kitconcept/intranet/configure.zcml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,17 @@
package="Products.CMFCore"
file="permissions.zcml"
/>
<include
package="plone.behavior"
file="meta.zcml"
/>

<include file="dependencies.zcml" />
<include file="distributions.zcml" />

<include file="permissions.zcml" />
<include file="profiles.zcml" />

<include package=".behaviors" />

</configure>
1 change: 1 addition & 0 deletions src/kitconcept/intranet/dependencies.zcml
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@
<include package="plone.restapi" />
<include package="plone.distribution" />
<include package="kitconcept.solr" />
<include package="collective.person" />

</configure>
2 changes: 1 addition & 1 deletion src/kitconcept/intranet/distributions.zcml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
xmlns="http://namespaces.zope.org/zope"
xmlns:i18n="http://namespaces.zope.org/i18n"
xmlns:plone="http://namespaces.plone.org/plone"
i18n_domain="plone"
i18n_domain="kitconcept.intranet"
>

<plone:distribution
Expand Down
12 changes: 12 additions & 0 deletions src/kitconcept/intranet/permissions.zcml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:zcml="http://namespaces.zope.org/zcml"
i18n_domain="kitconcept.intranet"
>

<configure zcml:condition="installed AccessControl.security">
<!-- -*- extra stuff goes here -*- -->

</configure>

</configure>
34 changes: 34 additions & 0 deletions src/kitconcept/intranet/profiles.zcml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<configure
xmlns="http://namespaces.zope.org/zope"
xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
i18n_domain="kitconcept.intranet"
>

<genericsetup:registerProfile
name="default"
title="kitconcept.intranet: Install"
description="Policy package to install our site"
provides="Products.GenericSetup.interfaces.EXTENSION"
directory="profiles/default"
/>

<genericsetup:registerProfile
name="initial"
title="kitconcept.intranet: Initial content"
description="Initial content for our website."
provides="Products.GenericSetup.interfaces.EXTENSION"
directory="profiles/initial"
pre_handler=".setuphandlers.populate_portal"
/>

<genericsetup:registerProfile
name="uninstall"
title="kitconcept.intranet: Uninstall"
description="Uninstall kitconcept.intranet setup."
provides="Products.GenericSetup.interfaces.EXTENSION"
directory="profiles/uninstall"
/>

<include package=".upgrades" />

</configure>
45 changes: 45 additions & 0 deletions src/kitconcept/intranet/profiles/default/actions.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<object xmlns:i18n="http://xml.zope.org/namespaces/i18n"
meta_type="Plone Actions Tool"
name="portal_actions"
>
<action-provider name="portal_actions" />
<object meta_type="CMF Action Category"
name="portal_tabs"
>
<object meta_type="CMF Action"
name="index_html"
i18n:domain="plone"
>
<property name="visible">False</property>
</object>
</object>
<object meta_type="CMF Action Category"
name="user"
>
<object meta_type="CMF Action"
name="preferences"
i18n:domain="plone"
>
<property name="visible">True</property>
</object>
<object meta_type="CMF Action"
name="dashboard"
i18n:domain="plone"
>
<property name="visible">False</property>
</object>
<object meta_type="CMF Action"
name="login"
i18n:domain="plone"
>
<property name="visible">False</property>
</object>
<object meta_type="CMF Action"
name="join"
i18n:domain="plone"
>
<property name="visible">False</property>
</object>
</object>
</object>
6 changes: 6 additions & 0 deletions src/kitconcept/intranet/profiles/default/browserlayer.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<layers>
<layer interface="kitconcept.intranet.interfaces.IKitconceptIntranetLayer"
name="kitconcept.intranet"
/>
</layers>
20 changes: 20 additions & 0 deletions src/kitconcept/intranet/profiles/default/catalog.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<object name="portal_catalog">

<!-- Needed for additional_contact_info in Person content type -->

<index meta_type="FieldIndex"
name="contact_building"
>
<indexed_attr value="contact_building" />
</index>
<column value="contact_building" />

<index meta_type="FieldIndex"
name="contact_room"
>
<indexed_attr value="contact_room" />
</index>
<column value="contact_room" />

</object>
9 changes: 9 additions & 0 deletions src/kitconcept/intranet/profiles/default/metadata.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<metadata>
<version>20231122001</version>
<dependencies>
<dependency>profile-plone.volto:default</dependency>
<dependency>kitconcept.solr:default</dependency>
<dependency>collective.person:default</dependency>
</dependencies>
</metadata>
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<registry xmlns:i18n="http://xml.zope.org/namespaces/i18n"
i18n:domain="kitconcept.solr"
>

<records interface="kitconcept.solr.interfaces.IKitconceptSolrSettings"
prefix="kitconcept.solr"
>
<value key="config"
purge="false"
>{
"fieldList": [
"UID",
"Title",
"Description",
"Type",
"effective",
"start",
"created",
"end",
"path_string",
"mime_type",
"location",
"contact_email",
"contact_phone",
"contact_building",
"contact_room",
"image_scales",
"image_field"
],
"searchTabs": [
{
"label": "All",
"filter": "Type(*)"
},
{
"label": "Pages",
"filter": "Type:(Page)"
},
{
"label": "Events",
"filter": "Type:(Event)"
},
{
"label": "Images",
"filter": "Type:(Image)"
},
{
"label": "Files",
"filter": "Type:(File)"
},
{
"label": "Persons",
"filter": "Type:(Person)",
"layouts": ["list", "grid"],
"facetFields": [
{
"name": "contact_building",
"label": "Building",
},
{
"name":"contact_room",
"label": "Room"
}
]
}
]
}</value>
</records>
</registry>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<registry>
<records interface="plone.base.interfaces.controlpanel.IMailSchema"
prefix="plone"
purge="false"
>
<value key="email_from_name">kitconcept.intranet.demo</value>
</records>
</registry>
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<registry>
<records interface="plone.base.interfaces.controlpanel.ISiteSchema"
prefix="plone"
purge="false"
>
<value key="site_title">kitconcept.intranet.demo</value>
</records>
</registry>
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<registry>
<records interface="plone.i18n.interfaces.ILanguageSchema"
prefix="plone"
purge="false"
>
<value key="available_languages">
<element>en</element>
</value>
<value key="default_language">en</value>
</records>
</registry>
5 changes: 5 additions & 0 deletions src/kitconcept/intranet/profiles/default/theme.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<theme>
<name>barceloneta</name>
<enabled>true</enabled>
</theme>
10 changes: 10 additions & 0 deletions src/kitconcept/intranet/profiles/default/types.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<object meta_type="Plone Types Tool"
name="portal_types"
>
<!--
<object meta_type="Dexterity FTI"
name="MyType"
/>
-->
</object>
12 changes: 12 additions & 0 deletions src/kitconcept/intranet/profiles/default/types/Person.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<object xmlns:i18n="http://xml.zope.org/namespaces/i18n"
meta_type="Dexterity FTI"
name="Person"
i18n:domain="collective.person"
>
<property name="behaviors"
purge="false"
>
<element value="kitconcept.intranet.demo.additional_contact_info" />
</property>
</object>
Loading
Loading