diff --git a/app/models/communication/website/imported/medium.rb b/app/models/communication/website/imported/medium.rb index 0331b0903883ef067fd51acc09d2a6dbdd6d222a..9211ae7245554c64943b8c7e4770b12e7c4ce01b 100644 --- a/app/models/communication/website/imported/medium.rb +++ b/app/models/communication/website/imported/medium.rb @@ -33,8 +33,12 @@ class Communication::Website::Imported::Medium < ApplicationRecord belongs_to :medium, class_name: 'Communication::Website::Medium', optional: true - has_many :pages, class_name: 'Communication::Website::Imported::Page', foreign_key: :featured_medium_id - has_many :posts, class_name: 'Communication::Website::Imported::Post', foreign_key: :featured_medium_id + has_many :pages, + class_name: 'Communication::Website::Imported::Page', + foreign_key: :featured_medium_id + has_many :posts, + class_name: 'Communication::Website::Imported::Post', + foreign_key: :featured_medium_id before_validation :sync diff --git a/docs/websites/export.md b/docs/websites/export.md new file mode 100644 index 0000000000000000000000000000000000000000..32f1173a4bc9f5b7bd88fa3963ee13cdd65759e4 --- /dev/null +++ b/docs/websites/export.md @@ -0,0 +1,3 @@ +# Export + +Comment exporter les attachments, qu'ils soient liés à un objet active storage, ou dans un champ action text ? \ No newline at end of file diff --git a/docs/websites/import.md b/docs/websites/import.md index 3dca015fe554a88cc1d724fe46545efbb79ecc12..2e2127707493b46bcc38a1cfc14ce2dd66c741cd 100644 --- a/docs/websites/import.md +++ b/docs/websites/import.md @@ -43,6 +43,35 @@ Etapes : 4. Import du contenu brut des pages importées 5. Analyse du contenu des pages importées et création / mise à jour des pages +## Import depuis WordPress + +### Media +1. On importe les media depuis l'API +2. On crée des objets en DB (Communication::Website::Imported::Medium) + +### Pages +1. On importe les pages depuis l'API +2. On crée des objets en DB (Communication::Website::Imported::Page) +3. Les objets importés créent ou mettent à jour les objets réels (Communication::Website::Page) + 3.1 sans écraser de modifs locales + 3.2 uniquement si l'import a bougé + 3.3 Le contenu de l'html est filtré + 3.3.1 enlever les balises problématiques + 3.3.2 supprimer les classes + 3.3.3 supprimer les ids + 3.3.4 décaler les titres si h1 + 3.4 la featured image est transformée en attachment + 3.5 si pas de featured image, la première image est enlevée du texte et devient featured + 3.6 les medias dans le texte html sont transformés en action text attachments + 3.6.1 lister les files dans le domaine + 3.6.2 identifier le media master correspondant (via data:jsonb) + 3.6.3 s'il n'existe pas, le créer (le cas se produit il ?) + 3.6.4 crée l'attachment + 3.6.5 on remplace le code du media par l'action text attachement + +### Posts +Idem pages + ## Exemples ### Condé