Commit graph

92 commits

Author SHA1 Message Date
a2fa701396
Handle broken opening hours (#121)
Those are skipped during import and written as error to TYPO3 logs.
That way entries with broken opening hours can still be imported.

Resolves: #11377
2024-09-10 07:07:24 +02:00
56c1f75b35
Add support for slogan as array (#117)
Relates: #10890
2024-01-24 11:54:48 +01:00
54d244b804
TYPO3 V12 Update (#116)
* Support TYPO3 v12 and PHP 8.3
2023-12-05 09:43:55 +01:00
651fc17fd9
Respect possible arrays in accessibility certification (#114) 2023-08-30 14:14:51 +02:00
8663d5a759
Add support for additional images added via TYPO3 (#112)
Some installations might need to add further images
to records imported from ThüCAT.
The records are now extended to support adding images by editors.
The images are not touched during import.
The images are also ignored during clean ups,
the editor is in full control.

This feature for now is only added to tourist attractions by default.
The feature is implemented in a way that all objects extending the
``WerkraumMedia\ThueCat\Domain\Model\Frontend\Base`` class are usable
by adding an ``editorial_images`` field to their table.
2023-08-29 13:54:16 +02:00
2a39dc7753
Catch mapping exceptions during converting entities. (#109)
Those are handled the same way,
the entity is skipped and errors are logged.
That way further entities can be imported
while only none working entities are skipped.

Relates: #10653
2023-08-29 11:56:06 +02:00
773098623e Add command to allow import of a single configuration.
The command is also available as scheduler task.
This finally allows to regularly execute imports.
This also allows to import from CLI context
with differently configured timeouts.
2023-08-29 11:04:22 +02:00
4cb2b9ad80
Allow to execute update wizard within web ui (#108)
The wizard will use makeInstance() instead of DI.
The DI worked on CLI, but not web ui.
This approach now also works within web ui.
2023-02-02 11:41:10 +01:00
6f98b353fe
!!!|Own module group (#106)
Add own module group and migrate old menu to different modules.
This should improve user experience as most users are used to modules
and are not aware of the dropdown menu.

Rename Overview controller to Configuration controller
As it handled configurations.
This streamlines with labels and identifiers.
2023-01-30 15:51:17 +01:00
45eda76e98
Fix PHP Warning (#92)
First check for existence before accessing.
The ObjectStorage itself has no check which will result in an PHP
warning due to accessing a none existing array key.

Relates: #10197
2023-01-05 14:51:07 +01:00
928f42e7fc
Add merged opening hours (#104)
This allows to fetch merged opening hours instead of actually edited
opening hours.
They will be merged per valid time span.
The data structure is a bit different as each time span has a list of
week days, each with its own open and end.

Relates: #10246
2023-01-05 09:30:23 +00:00
94e1eba741
Respect givenName and familyName of media authors (#103)
Only name was respected until now.

Relates: #10247
2023-01-04 07:33:48 +01:00
723ea3b512
Skip import of none mappable objects (#100)
The schema is very flexible and some values are not validated upfront.
This will result in many objects which we currently can not map.
This resulted in an exception breaking the rest of the import.
We now handle the broken mapping and skip those objects with proper
logging.
This allows to continue with import and report and debug those objects
in order to improve the mapping step by step.

Relates: #10198
2022-12-15 12:41:35 +01:00
61ae59c127
Add new import configuration based on containsPlace (#98)
Adds a new type of import configuration.
This configuration allows to define a single resource.
All the resources referenced via schema:containsPlace will be imported.

Relates: #10237
2022-12-15 10:42:41 +01:00
d7c7d8eaee Do not break during import on openingHours presence
The objects might have an openingHours property.
This would break as our internal name would match during symfony
serialization.

We now use the expected property name.
2022-12-14 15:52:38 +01:00
4f81120aee Properly handle single valued meansOfTransport
We will turn a single string into an array to always have the same
structure.
2022-12-14 15:52:38 +01:00
17cb4b390d
Change icons (#94)
Relates: #10231
2022-12-13 15:02:25 +01:00
15db95f7b6
Respect editorial sorting of attractions within content element (#97)
Relates: #10206
2022-12-12 14:12:32 +01:00
6b289db27c
Support types of public transport (#96)
Add a list of types to distance to public transport.

Relates: #10223
2022-12-12 13:51:08 +01:00
f194220153
Provide method to get parking facilities sorted by alphabet (#95)
Relates: #10230
2022-12-12 13:35:16 +01:00
bfa67d3514
Filter out duplicate media (#91)
Relates: #10194
2022-11-30 10:35:44 +01:00
6c119f28af
Allow to get all images except main image (#88)
Relates: #10194
2022-11-29 11:56:53 +01:00
20dc69694d
Add URL to tourist attraction (#87)
The tourist attraction can have an URL to their own website.
This URL is now imported and provided to templates.

Relates: #10193
2022-11-29 11:50:22 +01:00
35398b49c7
Improve opening hours (#86)
Strip off seconds from strings.
Prepare code to easily provide a structured data to allow integrators to
format timing differently.
Provide a method to easily check if an opening hour is only valid for a
single day.

Relates: #10185
2022-11-29 10:02:44 +01:00
0c9700cf42
Allow to import configurations via backend module again (#85)
This broke with introduction of latest import date.
This could not be validated, but we do not need validation anyway and
therefore turn it off.

Relates: #9266
2022-11-28 15:36:26 +01:00
8acbe136d4
Add special opening hours (#84)
It is possible to define special opening hours, e.g. for holidays.
Those are now also imported and provided to the templates.

Relates: #10185
2022-11-28 11:06:54 +01:00
672f78a5dc
Filter and sort opening hours (#83)
Opening hours are filtered. Opening hours from the past are no longer
available.
Opening hours are sorted. Newer opening hours are shown last.

Relates: #10185
2022-11-24 15:55:50 +01:00
4cb1cf1438
Import image author beside image license author (#82)
This allows to use a fallback.
Some maintain the actual copyright as author instead of license author.

Relates: #10183
2022-11-24 11:05:13 +01:00
5447b95c0a
Show last import time beside each import configuration in backend module (#77) 2022-09-29 15:17:06 +02:00
2fd4b1bc2f
Handle multiple offerType values (#75)
The import resulted in an exception if there was an array of types
instead of a string.
Both situations are now handled and API of models is kept.
Existing imported data is also kept.
2022-09-29 14:33:19 +02:00
4a3eb42c73
Allow to import things organised by generic organisations (#74)
Not all things are managed by TouristMarketingCompany, some are managed
by generic organisations.
Those are now handled the same way as TouristMarketingCompany are
already handled.

That way those things can also be imported, as they now can import their
manager.
2022-09-29 14:10:36 +02:00
65f4ef991e
Fix PHP warning of accessing invalid array key (#73) 2022-09-14 11:23:17 +02:00
7f6bd13628
Remove deprecated usage of StringUtility::endsWith() (#70)
This is deprecated in newer PHP versions, one should use native
str_ends_with() instead.

We remove the deprecation by using this function. But we also support
older PHP versions, so we add symfony/polyfill-php80 as dependency to
always ensure this function exists.
2022-09-13 09:44:54 +02:00
Benjamin Franzke
9bdb998f6d
Use decorator pattern for RequestFactory (#54)
The implementation of the TYPO3 RequestFactory and Uri classes is
internal API.

It is therefore better to decorate the PSR-17 interfaces instead
of extending or using the TYPO3 implementation directly.
2022-09-13 09:09:43 +02:00
2e4c9cc04e
Add TYPO3 v11 support (#60)
* Support generation of code coverage generation
* Remove useless caching within GitHub
* Add TYPO3 11.5 within CI
* Update phpstan

Replace friendsoftypo3/phpstan-typo3 with saschaegerer/phpstan.
The friendsoftypo3 is intended for TYPO3 itself, while saschaegerer is
intended for community.
Also update all related packages.
Fix some new findings and update baseline.

* Run composer none interactive in CI
* Remove dependency checker
* Migrate tests to no longer use legacy dependencies
* https://forge.typo3.org/issues/97479
* Fix phpstan findings
2022-09-13 09:05:47 +02:00
355e4717b0
Support PublicHolidays for opening hours (#51)
DayOfWeek is an enum as defined at https://schema.org/DayOfWeek
We missed the PublicHolidays enum value when building
`getDaysOfWeekWithMondayFirstWeekDay()` which is used in templates to
get ordered result.
Opening hours for public holidays were not rendered, which is now fixed.
2021-09-14 14:51:14 +02:00
e8a44c555a
Sort offers by type (#52)
That ensures grouped output of related offers.
Offers are not sorted in any way and might end up in entry, parking,
entry, etc. Sorting ensures all of same type are rendered one after the
other, entry, entry, parking.

Sorting is done by alphabet on the technical enum value.
2021-09-14 14:39:28 +02:00
185dcab2bc
Add Offer Type (#49) 2021-09-13 10:32:12 +02:00
c97b9bd24d Skip import of entities without content responsible
We always expect someone to be responsible for content.
If there is no one, skip the import of the entity.
2021-09-08 15:22:43 +02:00
dd0f08e157 Fix none working Extbase queries
The queries missed an call to matching() to actually apply the
constraint.
2021-09-08 11:03:21 +02:00
2932a620e4 Don't store empty info for opening hour
Do not store none existing info.
Just store nothing if something is missing.

Frontend model already checks for existence.
2021-09-06 13:47:12 +02:00
5179e82706 Improve skipping detection in TYPO3 converter
All records which are not saved or useable are now skipped.
Some records were converted but could not be stored, e.g. because no
localization was configured for that table.

This should bring small performance improvement and also align import
log with actually imported (converted) records.

Logging is added as well, only debug level, to allow developer and
integrator to analyse why some records are skipped.

Ignore some errors which don't actually exist.
We already check type of entity, and logger is always injected.
2021-09-06 13:47:12 +02:00
07f189a7f8 Support multiple price rules 2021-09-06 13:47:12 +02:00
592269baa8 Handle references ending in 404
Catch the exception and return null.
That is already a possible return type which should be handled by
callers.

Add test case with referenced 404 image.
2021-09-06 13:47:12 +02:00
73db8b5d9d Assume default timezone if not provided.
Data is coming from Germany and affects German places only.
We therefore expect German timezone.
2021-09-06 13:47:12 +02:00
265cb27236 Support multiple provided URLs
An object might have more then a single URL.
This is now added.
2021-09-06 13:47:12 +02:00
8315d42934 Add accessibility_specification 2021-09-06 13:47:12 +02:00
cc216429a5 Add parking_facility_near_by
- Removed individual converters for TYPO3.
  Conversion is now handled in a single converter.
- The new converter will import necessary dependencies upfront, e.g.
  town or organisation.
- Move import state into extra class.

Relates: #34
2021-09-06 13:47:12 +02:00
5859c14525 Add distanceToPublicTransport property to tourist attraction
Relates: #34
2021-09-06 13:47:12 +02:00
46fe3a2e81 Add availableLanguage property to tourist attraction
Relates: #34
2021-09-06 13:47:12 +02:00