Commit graph

52 commits

Author SHA1 Message Date
aeaae9b42c
Support TYPO3 v12 and PHP 8.3
Use rector, PHPUnit, Codeception and PHPStan to find and fix issues.
2023-12-04 09:32:23 +01:00
f69db97990
Support translated offers (#115) 2023-08-30 14:21:25 +02: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
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
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
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
bfa67d3514
Filter out duplicate media (#91)
Relates: #10194
2022-11-30 10:35:44 +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
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
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
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
def55cbdc9 Make compatible with mysql 8 strict modes 2021-09-08 13:23:23 +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
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
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
4c9b055e0c Add publicAccess property to tourist attraction
Relates: #34
2021-09-06 13:47:12 +02:00
ffd894c102 Add isAccessibleForFree property to tourist attraction
Relates: #34
2021-09-06 13:47:12 +02:00
bd717d1596 Add petsAllowed property to tourist attraction
Relates: #34
2021-09-06 13:47:12 +02:00
ce6a34b543 Add photography property to tourist attraction
Relates: #34
2021-09-06 13:47:12 +02:00
07cd56fef4 Add digitalOffer property to tourist attraction
Relates: #34
2021-09-06 13:47:12 +02:00
4a1928ece6 Add paymentAccepted property to tourist attraction
Relates: #34
2021-09-06 13:47:12 +02:00
c1167a7848 Add trafficInfrastructure property to tourist attraction
Relates: #34
2021-09-06 13:47:12 +02:00
3ce8f13b04 Add architecturalStyle property to tourist information
Relates: #34
2021-09-06 13:47:12 +02:00
92d33c0956 Add museumService property to tourist information
Relates: #34
2021-09-06 13:47:12 +02:00
b41ba9b6d1 Add otherService propterty to tourist attraction
Relates: #34
2021-09-06 13:47:12 +02:00
b1ce004ddb Add sanitation property to tourist attraction
Relates: #34
2021-09-06 13:47:12 +02:00
78796e1efa Add startOfConstruction property to tourist attraction
Relates: #34
2021-09-06 13:47:12 +02:00
0f59085653 Add slogan property to tourist attraction
Relates: #34
2021-09-06 13:47:12 +02:00
8ef79d51cb Sort offer prices by title
ThüCAT doesn't provide the editorial order of prices.
Therefore our frontend now renders them based on title in alphabetical
order.
2021-08-23 16:35:13 +02:00
bfd4c77a17 Refactor parsing of JSON-LD
Use Symfony components to map incoming JSON onto objects.
Those provide a mapping. They can then be used to fetch the data in a
common way and insert it into the system.

- Handle languages within JsonDecode
  (normalize incoming data based on language)
- Handle Single Value and List of Values within Entities. They will map
  incoming Data to proper Objects. (We now generally transform during
  serialization process if target is array but we got single entity)
- Add missing tests for existing data.
- Finish migration of all existing data, this includes next step
- Provide discriminator to ObjectNormalizer to auto detect target class
  based on "type" property. (Done for now by own registry)
- Combine generated object with current structure for import -> generate
  data array out of it.
- Resolve foreign references to existing entities,
  (images, contentresponsible, etc.)
2021-08-12 09:46:37 +02:00
fb6b494993 Remove rdfs:label from tests
The endpoint no longer delivers that data which seemed to be a duplicate
of schema:name which we already used anyway.
2021-08-12 09:46:37 +02:00
1a6940633e Add first frontend test
This should ensure rendering works as expected.
Most important: This ensures data is available in frontend templates.

Add dev dependency to fluid_styled_content. This is necessary to test
our rendering integration with fluid_styled_content defaults.

Relates: #34
2021-08-12 09:30:48 +02:00
a27eae4148 Add missing test for opening and media 2021-08-09 16:19:58 +02:00
db8963d92d Add functional tests for import of tourist information 2021-08-09 09:00:20 +02:00
2d9540436a Add functional tests for import of town 2021-08-09 09:00:20 +02:00
197a3e4696 Support sync scope
Add new configuration to support sync scope.
This one requires the provided sync scope id and will always update all
entries.

Relates: #23
2021-06-01 09:43:33 +02:00
442a6842ec Add prices to tourist attraction
Import prices, show them in records and make them accessible in
frontend.
2021-02-18 16:00:07 +01:00
2e0102894f Allow to configure storage pid for each import configuration
Each import configuration now offers an input to define storage pid.
That enables integrators to have different storage folders per
configuration.
2021-02-17 15:37:49 +01:00