Skip to content

Commit

Permalink
Merge branch 'develop' into WEBUMENIA-1740-artwork-highlight-backend
Browse files Browse the repository at this point in the history
  • Loading branch information
eronisko authored Feb 24, 2022
2 parents c2d2ef9 + 044c4f0 commit 75d94b0
Show file tree
Hide file tree
Showing 16 changed files with 718 additions and 604 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ All notable changes to this project will be documented in this file[^1].
- Featured Artworks back-end section
- new Tailwind component for back-end/admin

### Changed
- font loading (fix for Source Serif Pro)

## [2.45.0] - 2022-02-18
### Added
- age group "all" and media type "activities" to edu article tags
Expand Down
17 changes: 11 additions & 6 deletions app/Importers/OglImporter.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
namespace App\Importers;

use App\Repositories\IFileRepository;
use Illuminate\Contracts\Translation\Translator;
use Illuminate\Translation\Translator;
use Illuminate\Support\Str;

class OglImporter extends AbstractImporter
Expand Down Expand Up @@ -57,14 +57,19 @@ protected function getItemId(array $record) {
protected function getItemImageFilenameFormat(array $record) {
$filename = sprintf('%s%s', $record['Rada_S'], str_pad($record['PorC_S'], 5, '0', STR_PAD_LEFT));
if ($record['Lomeni_S'] != '_') {
$filename = sprintf('%s_%s', $filename, $record['Lomeni_S']);
$filename = sprintf('%s%s', $filename, $record['Lomeni_S']);
}

return $filename . '{_*,}';
}

protected function hydrateWorkType(array $record, $locale) {
return $this->translateAttribute("work_type", $record['Skupina'], $locale);
$workType = config('demus.work_type')[$record['Skupina']];
if ($locale !== 'cs') {
$workType = $this->translateAttribute("work_type", $workType, $locale);
}

return $workType;
}

protected function hydrateTopic(array $record, $locale) {
Expand Down Expand Up @@ -109,10 +114,10 @@ protected function hydrateMeasurement(array $record, $locale) {

protected function translateAttribute($attribute, $key, $locale)
{
if (!$this->translator->hasForLocale("importer.demus.$attribute.$key", $locale)) {
if (!$this->translator->hasForLocale("importer.cs.$attribute.$key", $locale)) {
return null;
}

return $this->translator->get("importer.demus.$attribute.$key", [], $locale);
return $this->translator->get("importer.cs.$attribute.$key", [], $locale);
}
}
}
273 changes: 32 additions & 241 deletions app/Importers/PnpKarasekImporter.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
use App\Import;
use App\ImportRecord;
use App\Repositories\IFileRepository;
use Illuminate\Contracts\Translation\Translator;
use Illuminate\Translation\Translator;
use Illuminate\Support\Str;

class PnpKarasekImporter extends AbstractImporter
Expand All @@ -32,228 +32,9 @@ class PnpKarasekImporter extends AbstractImporter
'gallery:cs' => 'Památník národního písemnictví, PNP',
];

protected $workTypeTranslations = [
'sk' => [
'malba' => 'maľba',
'kresba' => 'kresba',
'grafika' => 'grafika',
'busta' => 'busta',
'socha' => 'socha',
'akvarel' => 'akvarel',
'kvaš' => 'gvaš',
'plastika' => 'plastika',
'pastel' => 'pastel',
],
'en' => [
'malba' => 'painting',
'kresba' => 'drawing',
'grafika' => 'graphics',
'busta' => 'bust',
'socha' => 'statue',
'akvarel' => 'watercolor',
'kvaš' => 'gouache',
'plastika' => 'sculpture',
'pastel' => 'pastel',
],
];

protected $topicTranslations = [
'sk' => [
'krajina' => 'krajina',
'figurální' => 'figurálny',
'autoportrét' => 'autoportrét',
'fauna' => 'fauna',
'portrét' => 'portrét',
'architektura' => 'architektúra',
'město' => 'mesto',
'žánr' => 'žáner',
'marina' => 'marína',
'zátiší' => 'zátišie',
'kostým' => 'kostým',
'náboženský' => 'náboženský',
'mytologický' => 'mytologický',
'alegorický' => 'alegorický',
'veduta' => 'veduta',
'divadlo' => 'divadlo',
'dekorativní' => 'dekoratívny',
'alegorie' => 'alegória',
'církevní' => 'cirkevný',
'historický' => 'historický',
'karikatura' => 'karikatúra',
'ornamentální' => 'ornamentálny',
],
'en' => [
'krajina' => 'landscape',
'figurální' => 'figural',
'autoportrét' => 'self-portrait',
'fauna' => 'fauna',
'portrét' => 'portrait',
'architektura' => 'architecture',
'město' => 'city',
'žánr' => 'genre',
'marina' => 'marine',
'zátiší' => 'still life',
'kostým' => 'costume',
'náboženský' => 'religious',
'mytologický' => 'mythological',
'alegorický' => 'allegorical',
'veduta' => 'veduta',
'divadlo' => 'theater',
'dekorativní' => 'decorative',
'alegorie' => 'allegory',
'církevní' => 'religious',
'historický' => 'historical',
'karikatura' => 'caricature',
'ornamentální' => 'ornamental',
],
];

protected $mediumTranslations = [
'sk' => [
'plátno' => 'plátno',
'papír' => 'papier',
'lepenka na dřevě' => 'lepenka na dreve',
'lepenka' => 'lepenka',
'olej' => 'olej',
'plátno na lepence' => 'plátno na lepenke',
'deska' => 'doska',
'karton' => 'kartón',
'sádra patinovaná na keramiku' => 'sadra patinovaná na keramiku',
'pálená hlína' => 'pálená hlina',
'plátno na překližce' => 'plátno na preglejke',
'dřevo' => 'drevo',
'plá' => 'plátno',
'pergamen' => 'pergamen',
'papír modrošedý' => 'papier modrošedý',
'polokarton' => 'polokartón',
'patinovaná sádra' => 'patinovaná sadra',
'balicí papír' => 'baliaci papier',
'bronz' => 'bronz',
'vápenec' => 'vápenec',
],
'en' => [
'plátno' => 'canvas',
'papír' => 'paper',
'lepenka na dřevě' => 'paperboard on wood',
'lepenka' => 'paperboard',
'olej' => 'oil',
'plátno na lepence' => 'canvas on paperboard',
'deska' => 'board',
'karton' => 'cardboard',
'sádra patinovaná na keramiku' => 'gypsum patinated on ceramics',
'pálená hlína' => 'fired clay',
'plátno na překližce' => 'canvas on plywood',
'dřevo' => 'wood',
'plá' => 'canvas',
'pergamen' => 'parchment',
'papír modrošedý' => 'blue-gray paper',
'polokarton' => 'half cardboard',
'patinovaná sádra' => 'patinated gypsum',
'balicí papír' => 'wrapping paper',
'bronz' => 'bronze',
'vápenec' => 'limestone',
],
];

protected $techniqueTranslations = [
'sk' => [
'olej' => 'olej',
'akvarel' => 'akvarel',
'lepenka' => 'lepenka',
'tempera' => 'tempera',
'plastika' => 'plastika',
'kombinovaná technika' => 'kombinovaná technika',
'dřevoryt' => 'drevoryt',
'tónovaná akvatinta s leptem' => 'tónovaná akvatinta s leptom',
'barevný' => 'farebný',
'mezzotinta' => 'mezzotinta',
'dřevořez' => 'drevorez',
'mědiryt' => 'medirytina',
'kolorovaný' => 'kolorovaný',
'rytina' => 'rytina',
'kresba štětcem' => 'kresba štětcom',
'tinta' => 'tinta',
'kresba křídou' => 'kresba kríedou',
'kresba uhlem' => 'kresba uhľom',
'kolorováno' => 'kolorované',
'černá tinta' => 'čierna tinta',
'perokresba' => 'perokresba',
'kresba tužkou' => 'kresba ceruzou',
'křídou' => 'kriedou',
'lavírováno' => 'lavírované',
'akvatinta' => 'akvatinta',
'litografie' => 'litografia',
'suchá jehla' => 'suchá ihla',
'černá křída' => 'čierna krieda',
'heliogravura' => 'heliogravúra',
'lept' => 'lept',
'pero' => 'pero',
'štětec' => 'štětec',
'grafit' => 'grafit',
'rudka' => 'rudka',
'lavírovaná' => 'lavírovaná',
'kolorovaná tuš' => 'kolorovaný tuš',
'kvaš' => 'gvaš',
'barevná křída' => 'farebná krieda',
'tužka' => 'ceruza',
'pastel' => 'pastel',
'tuš' => 'tuš',
'běloba' => 'beloba',
'křída' => 'krieda',
'uhel' => 'uhoľ',
'bílá křída' => 'biela krieda',
'linoryt' => 'linoryt',
'linořez' => 'linorez',
],
'en' => [
'olej' => 'oil',
'akvarel' => 'watercolor',
'lepenka' => 'cardboard',
'tempera' => 'tempera',
'plastika' => 'plastic',
'kombinovaná technika' => 'combined technique',
'dřevoryt' => 'woodcut',
'tónovaná akvatinta s leptem' => 'tinted aquatint with etching',
'barevný' => 'color',
'mezzotinta' => 'mezzotint',
'dřevořez' => 'woodcut',
'mědiryt' => 'copperplate',
'kolorovaný' => 'colored',
'rytina' => 'engraving',
'kresba štětcem' => 'brush drawing',
'tinta' => 'tinta',
'kresba křídou' => 'chalk drawing',
'kresba uhlem' => 'charcoal drawing',
'kolorováno' => 'colored',
'černá tinta' => 'black tinta',
'perokresba' => 'line drawing',
'kresba tužkou' => 'pencil drawing',
'křídou' => 'chalk',
'lavírováno' => 'wash',
'akvatinta' => 'aquatint',
'litografie' => 'lithography',
'suchá jehla' => 'drypoint',
'černá křída' => 'black chalk',
'heliogravura' => 'heliogravure',
'lept' => 'lept',
'pero' => 'but',
'štětec' => 'brush',
'grafit' => 'graphite',
'rudka' => 'rudka',
'lavírovaná' => 'wash',
'kolorovaná tuš' => 'colored ink',
'kvaš' => 'gouache',
'barevná křída' => 'colored chalk',
'tužka' => 'pencil',
'pastel' => 'pastel',
'tuš' => 'ink',
'běloba' => 'white',
'křída' => 'chalk',
'uhel' => 'coal',
'bílá křída' => 'white chalk',
'linoryt' => 'linocut',
'linořez' => 'linocut',
],
protected $workTypeReplacements = [
'Malba' => 'malířství',
'Socha' => 'sochařství',
];

protected $counter;
Expand All @@ -274,7 +55,7 @@ public function import(Import $import, array $file)
return parent::import($import, $file);
}

public function importSingle(array $record, Import $import, ImportRecord $import_record)
protected function importSingle(array $record, Import $import, ImportRecord $import_record)
{
$this->counter++;
return parent::importSingle($record, $import, $import_record);
Expand All @@ -296,27 +77,28 @@ protected function getSlug($identifier)
return strtr($identifier, ' ', '_');
}

public function hydrateWorkType(array $record, $locale)
protected function hydrateWorkType(array $record, $locale)
{
return $this->translateSingle($record['Výtvarný druh:'], 'workTypeTranslations', $locale);
$workType = $this->workTypeReplacements[$record['Výtvarný druh:']] ?? $record['Výtvarný druh:'];
return $this->translateSingle($workType, 'work_type', $locale);
}

public function hydrateTopic(array $record, $locale)
protected function hydrateTopic(array $record, $locale)
{
return $this->translateMultiple($record['Námět:'], 'topicTranslations', $locale);
return $this->translateMultiple($record['Námět:'], 'topic', $locale);
}

public function hydrateMedium(array $record, $locale)
protected function hydrateMedium(array $record, $locale)
{
return $this->translateSingle($record['Materiál:'], 'mediumTranslations', $locale);
return $this->translateSingle($record['Materiál:'], 'medium', $locale);
}

public function hydrateTechnique(array $record, $locale)
protected function hydrateTechnique(array $record, $locale)
{
return $this->translateMultiple($record['Technika:'], 'techniqueTranslations', $locale);
return $this->translateMultiple($record['Technika:'], 'technique', $locale);
}

public function hydrateAdditionals(array $record, $locale)
protected function hydrateAdditionals(array $record, $locale)
{
if ($locale !== 'cs') {
return null;
Expand All @@ -340,13 +122,19 @@ protected function translateSingle($single, $map, $locale)
return null;
}

$single = Str::lower($single);
$single = Str::of($single)
->lower()
->trim();

if ($locale === 'cs') {
return $single;
}

return $this->{$map}[$locale][$single];
if (!$this->translator->hasForLocale("importer.cs.$map.$single", $locale)) {
return null;
}

return $this->translator->get("importer.cs.$map.$single", [], $locale);
}

protected function translateMultiple($multiple, $map, $locale)
Expand All @@ -355,11 +143,14 @@ protected function translateMultiple($multiple, $map, $locale)
return null;
}

$exploded = explode(',', $multiple);
$translated = array_map(function ($single) use ($map, $locale) {
$single = trim($single);
return $this->translateSingle($single, $map, $locale);
}, $exploded);
return implode('; ', $translated);
return Str::of($multiple)
->explode(',')
->map(function ($single) use ($map, $locale) {
return $this->translateSingle($single, $map, $locale);
})
->reject(function ($single) {
return $single === null;
})
->implode('; ');
}
}
Loading

0 comments on commit 75d94b0

Please sign in to comment.