Commit graph

157 commits

Author SHA1 Message Date
Daniel Siepmann 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
Daniel Siepmann 075a591256 Add strict_types to all files 2021-08-12 09:46:37 +02:00
Daniel Siepmann 7c8dd0df3b Cleanup refactoring after big refactoring 2021-08-12 09:46:37 +02:00
Daniel Siepmann 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
Daniel Siepmann 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
Daniel Siepmann a980f3c2ad Update phpstan ignoreErrors
TYPO3 changed return type hint.
2021-08-12 09:30:48 +02:00
Daniel Siepmann 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
Daniel Siepmann dc09713884 Move namespace below initial file comment 2021-08-10 09:41:54 +02:00
Daniel Siepmann a27eae4148 Add missing test for opening and media 2021-08-09 16:19:58 +02:00
Daniel Siepmann 5185c06015 Fix label of CI tasks 2021-08-09 09:03:24 +02:00
Daniel Siepmann db8963d92d Add functional tests for import of tourist information 2021-08-09 09:00:20 +02:00
Daniel Siepmann 2d9540436a Add functional tests for import of town 2021-08-09 09:00:20 +02:00
Daniel Siepmann 9c60e275d0 Handle 404 for assigned media 2021-06-08 14:05:24 +02:00
Daniel Siepmann baf32b3477 Add info regarding storagePid and language relation 2021-06-08 14:05:24 +02:00
Daniel Siepmann 80827049f9 Enable usage of DataHandler with mysql strict mode 2021-06-08 14:05:24 +02:00
Daniel Siepmann 6b19485a36 Handle resources with missing containedInPlace
Check for situation and return empty array.
Do not create unnecessary requests to database but directly return.
2021-06-08 14:05:24 +02:00
Daniel Siepmann eac551e2bc Add documentation
Add detailed documentation rendered at docs.typo3.org beside existing
readme.

Resolves: #20
2021-06-01 14:59:08 +02:00
Daniel Siepmann 9cfb0fdb3a Fix @covers and @uses annotations within tests
Always use `\` prefix as best practice.
Add missing new classes.
2021-06-01 11:27:23 +02:00
Daniel Siepmann e13bb35252 Handle removed configuration in log overview
Resolves: #13
2021-06-01 11:23:25 +02:00
Daniel Siepmann 1088a580a0 Allow editor to create and edit import configuration
Import Configuration can now be stored on folders, beside the site root.
That way editors can create and edit records.
The default storage pid for new records can be defined via TypoScript.

Resolves: #24
2021-06-01 09:53:58 +02:00
Daniel Siepmann 1b304945c0 Add hint regarding formatted descriptions 2021-06-01 09:50:50 +02:00
Daniel Siepmann 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
Daniel Siepmann 22932545d3 Handle relation to single "containedInPlace"
Only multiple containedInPlace were supported.
Some instances only have a single containedInPlace. This is now handled
as well.
2021-05-10 09:41:25 +02:00
Daniel Siepmann bbf7ada1d2 Add tests for modified models
That's necessary as models grow.
Added features should be tested to not break with future changes.

The tests revealed an existing error in fallback which got fixed to make
new test pass.

Relates: #18
2021-04-14 11:33:37 +02:00
svenfnzd 960d2debec Update openingHours model to add count
Needed countable for checking if model contains content.

Relates: werkraum-media#18
2021-04-14 11:33:37 +02:00
svenfnzd 99b95ee3ed Update offers model to add count
Needed countable for checking if model contains content.

Relates: #18
2021-04-14 11:33:37 +02:00
Daniel Siepmann c73bf1c53a Fulfill phpstan requirements
Ensure proper annotation and usage of assertNull.
2021-04-13 15:32:10 +02:00
Daniel Siepmann 5e5c019704 Do not run CI on push
The steps are only necessary to check changes before merging.
Everyone always creates pull requests.
Therefore no need to run in push in addition to PR.
2021-04-13 15:32:10 +02:00
Daniel Siepmann c91f665d98 Make compatible with PHP 7.3
As some projects still might run on PHP 7.3 and supported TYPO3 version
still supports 7.3.
2021-04-13 15:32:10 +02:00
svenfnzd 3bcddd94bb Decreased priority of template path
Adapted to follow EXT:fluid_styled_content
To allow integrators to use the extension in the same way

Resolves: #14
2021-04-12 14:57:52 +02:00
Daniel Siepmann 08de6ae129 Trigger CI on pull request 2021-04-12 14:55:34 +02:00
Daniel Siepmann bf1ae9540b Fix two bugs: Language handling and price structure
Sorry for fixing two things in one commit.

First fixed bug is single offer and / or single price.
Those lead to exception / fatal error and are now handled.

Second fixed bug is wrong multi language handling.
Instead of using supported languages from entity (which does not exist
and was miss interpreted) we use configured system languages.
Each record is inserted with default language.
Also tourist attractions are inserted for all other languages.
They are only inserted if they have a title for that language.
2021-02-25 09:23:06 +01:00
Daniel Siepmann 261039361b Improve icons 2021-02-18 16:07:26 +01:00
Daniel Siepmann 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
Daniel Siepmann 775db67efa Add new page type for tourist attraction
Allows to select a single tourist attraction.
Provides static TypoScript to resolve reference for Fluid based
rendering.
2021-02-18 08:52:20 +01:00
Daniel Siepmann 16ae83e841 Add icons 2021-02-17 16:06:09 +01:00
Daniel Siepmann 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
Daniel Siepmann 92c8bbedaa Add multi language handling
Import entities in all available languages.
Provide translated records in frontend.
2021-02-17 14:51:00 +01:00
Daniel Siepmann 46144de0a7 Add first functional tests for import
To ensure the whole process is still working.
Setup environment and execute request of backend module through extbase.

Ensure expected records are created.
2021-02-17 09:20:24 +01:00
Daniel Siepmann 6478526004 Add media to tourist attraction 2021-02-17 09:20:24 +01:00
Daniel Siepmann eab2eee8b3 Add address to tourist attraction 2021-02-17 09:20:24 +01:00
Daniel Siepmann 9176ba0cec Import tourist attraction only in German language
Allows to import entity of type TouristAttraction.
Right now only in German, as this is most important.
Add output of tourist attraction via custom content element.
2021-02-16 12:01:35 +01:00
Daniel Siepmann a3261ab17e Remove deprecated CGL sets
Actually they were meant as code migration, which should happen via
rector.
2021-02-16 11:46:31 +01:00
Daniel Siepmann ce787c90b6 Use storage pids from example setup
As long as those are hard coded, use matching storage pids from example
setup.
2021-02-16 11:09:18 +01:00
Daniel Siepmann dc5a4546f3 Ensure proper types when saving import log
Insertion is stored as integer in database.
Therefore cast boolean to integer.
Otherwise DataHandler might throw error as saved data type differs from
provided data type.
2021-02-16 11:09:18 +01:00
Daniel Siepmann b8b0c4f668 Sort log entries by existing column
Sorting by none existing column might result in exceptions.
2021-02-16 11:09:18 +01:00
Daniel Siepmann 043a28472f Provide basic info in readme 2021-02-16 11:09:18 +01:00
Daniel Siepmann 2ddd52b284 Change flash message in case of error
Still very simple, but can be improved in future updates.
E.g. add info regarding error, or deep link to single import log with
errors, etc.
To provide that, we need to add some more code, which is not necessary
yet.
2021-02-16 11:09:18 +01:00
Daniel Siepmann ba564f29f7 Remove functional tests from CI
We don't have functional tests yet
2021-02-16 11:09:18 +01:00
Daniel Siepmann ded93e0d8e Integrate phpstan 2021-02-16 11:09:18 +01:00