project blueprint - optional steps working
This commit is contained in:
parent
595c275100
commit
8da0fb0e36
30 changed files with 296 additions and 127 deletions
|
|
@ -6,7 +6,7 @@ Optionalsteps: industrialIdeation, physicalSample
|
|||
|
||||
----
|
||||
|
||||
Currentstep: brief
|
||||
Currentstep: extendedBrief
|
||||
|
||||
----
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,25 @@
|
|||
Title: Brief client
|
||||
|
||||
----
|
||||
|
||||
Stepname: clientBrief
|
||||
|
||||
----
|
||||
|
||||
Stepindex: 1
|
||||
|
||||
----
|
||||
|
||||
Uuid: 8B7d4RgY8eFqvqOB
|
||||
|
||||
----
|
||||
|
||||
Briefclientpdf:
|
||||
|
||||
----
|
||||
|
||||
Description:
|
||||
|
||||
----
|
||||
|
||||
Briefclientimages:
|
||||
13
public/content/projects/_drafts/test/2_proposal/proposal.txt
Normal file
13
public/content/projects/_drafts/test/2_proposal/proposal.txt
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
Title: Offre commerciale
|
||||
|
||||
----
|
||||
|
||||
Stepname: proposal
|
||||
|
||||
----
|
||||
|
||||
Stepindex: 2
|
||||
|
||||
----
|
||||
|
||||
Uuid: AORTte4et35lhTXL
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
Title: Brief enrichi
|
||||
|
||||
----
|
||||
|
||||
Stepname: extended-brief
|
||||
|
||||
----
|
||||
|
||||
Stepindex: 3
|
||||
|
||||
----
|
||||
|
||||
Uuid: oBp6AlnPTY1xpfNU
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
Title: Échantillon virtuel
|
||||
|
||||
----
|
||||
|
||||
Stepname: virtualSample
|
||||
|
||||
----
|
||||
|
||||
Stepindex: 5
|
||||
|
||||
----
|
||||
|
||||
Uuid: KvcDJf8bfJXQnxML
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
Title: Idéation industrielle
|
||||
|
||||
----
|
||||
|
||||
Stepname: industrialIdeation
|
||||
|
||||
----
|
||||
|
||||
Stepindex: 4
|
||||
|
||||
----
|
||||
|
||||
Uuid: jGfYrEyipW8esCwk
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
Title: Échantillon physique
|
||||
|
||||
----
|
||||
|
||||
Stepname: physicalSample
|
||||
|
||||
----
|
||||
|
||||
Stepindex: 6
|
||||
|
||||
----
|
||||
|
||||
Uuid: IbgnF5QBMM0WsmRK
|
||||
9
public/content/projects/_drafts/test/project.txt
Normal file
9
public/content/projects/_drafts/test/project.txt
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
Title: test
|
||||
|
||||
----
|
||||
|
||||
Client:
|
||||
|
||||
----
|
||||
|
||||
Uuid: 96WmogVvmpMRmgzj
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
Title: Projet Test
|
||||
|
||||
----
|
||||
|
||||
Client: - page://G418qZ4ABsoWFx4i
|
||||
|
||||
----
|
||||
|
||||
Briefclientpdf:
|
||||
|
||||
----
|
||||
|
||||
Description: Maecenas sed diam eget risus varius blandit sit amet non magna. Curabitur blandit tempus porttitor. Nullam quis risus eget urna mollis ornare vel eu leo. Maecenas faucibus mollis interdum.
|
||||
|
||||
----
|
||||
|
||||
Briefclientimages:
|
||||
|
||||
----
|
||||
|
||||
Pdf:
|
||||
|
||||
----
|
||||
|
||||
Text:
|
||||
|
||||
----
|
||||
|
||||
Uuid: Bdho8W2PQkSk1x21
|
||||
|
|
@ -21,6 +21,9 @@ tabs:
|
|||
columns:
|
||||
- width: 1/1
|
||||
fields:
|
||||
stepName:
|
||||
type: hidden
|
||||
value: test
|
||||
briefClientPdf:
|
||||
label: PDF
|
||||
type: files
|
||||
|
|
|
|||
|
|
@ -13,3 +13,9 @@ options:
|
|||
move: false
|
||||
duplicate: false
|
||||
sort: false
|
||||
|
||||
tabs:
|
||||
contentTab:
|
||||
fields:
|
||||
stepName:
|
||||
type: hidden
|
||||
|
|
|
|||
11
public/site/blueprints/pages/industrial-ideation.yml
Normal file
11
public/site/blueprints/pages/industrial-ideation.yml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
title: Idéation industrielle
|
||||
icon: light-bulb
|
||||
image:
|
||||
back: black
|
||||
color: white
|
||||
|
||||
tabs:
|
||||
contentTab:
|
||||
fields:
|
||||
stepName:
|
||||
type: hidden
|
||||
11
public/site/blueprints/pages/physical-sample.yml
Normal file
11
public/site/blueprints/pages/physical-sample.yml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
title: Échantillon physique
|
||||
icon: image
|
||||
image:
|
||||
back: black
|
||||
color: white
|
||||
|
||||
tabs:
|
||||
contentTab:
|
||||
fields:
|
||||
stepName:
|
||||
type: hidden
|
||||
|
|
@ -8,15 +8,6 @@ tabs:
|
|||
columns:
|
||||
- width: 1/1
|
||||
fields:
|
||||
optionalSteps:
|
||||
label: Étapes optionnelles
|
||||
type: checkboxes
|
||||
width: 1/2
|
||||
columns: 2
|
||||
options:
|
||||
industrialIdeation: Idéation industrielle
|
||||
physicalSample: Échantillon physique
|
||||
help: Après modification, sauvegardez et rechargez la page pour mettre à jour la liste ci-dessous.
|
||||
currentStep:
|
||||
label: Étape en cours
|
||||
type: radio
|
||||
|
|
@ -43,11 +34,14 @@ tabs:
|
|||
stepsSection:
|
||||
label: Étapes
|
||||
type: pages
|
||||
sortBy: stepIndex asc
|
||||
templates:
|
||||
- client-brief
|
||||
- proposal
|
||||
- extended-brief
|
||||
- sample
|
||||
- industrial-ideation
|
||||
- virtual-sample
|
||||
- physical-sample
|
||||
|
||||
# client:
|
||||
# label: Client
|
||||
|
|
|
|||
|
|
@ -13,3 +13,9 @@ options:
|
|||
move: false
|
||||
duplicate: false
|
||||
sort: false
|
||||
|
||||
tabs:
|
||||
contentTab:
|
||||
fields:
|
||||
stepName:
|
||||
type: hidden
|
||||
|
|
|
|||
|
|
@ -13,3 +13,9 @@ options:
|
|||
move: false
|
||||
duplicate: false
|
||||
sort: false
|
||||
|
||||
tabs:
|
||||
contentTab:
|
||||
fields:
|
||||
stepName:
|
||||
type: hidden
|
||||
|
|
@ -1,37 +1,67 @@
|
|||
<?php
|
||||
|
||||
return function($page) {
|
||||
if ($page->template() != "project") return;
|
||||
|
||||
$page->createChild([
|
||||
'slug' => 'client-brief',
|
||||
'template' => 'client-brief',
|
||||
'content' => [
|
||||
'title' => 'Brief client'
|
||||
]
|
||||
]);
|
||||
|
||||
$page->createChild([
|
||||
'slug' => 'proposal',
|
||||
'template' => 'proposal',
|
||||
'content' => [
|
||||
'title' => 'Offre commerciale'
|
||||
]
|
||||
]);
|
||||
|
||||
$page->createChild([
|
||||
'slug' => 'extended-brief',
|
||||
'template' => 'extended-brief',
|
||||
'content' => [
|
||||
'title' => 'Brief enrichi'
|
||||
]
|
||||
]);
|
||||
|
||||
$page->createChild([
|
||||
'slug' => 'sample',
|
||||
'template' => 'sample',
|
||||
'content' => [
|
||||
'title' => 'Échantillon virtuel'
|
||||
]
|
||||
]);
|
||||
if ($page->template() == "project") {
|
||||
kirby()->impersonate('kirby');
|
||||
|
||||
$brief = $page->createChild([
|
||||
'slug' => 'client-brief',
|
||||
'template' => 'client-brief',
|
||||
'content' => [
|
||||
'title' => 'Brief client',
|
||||
'stepName' => 'clientBrief',
|
||||
'stepIndex' => 1
|
||||
],
|
||||
])->changeStatus('listed');
|
||||
|
||||
$page->createChild([
|
||||
'slug' => 'proposal',
|
||||
'template' => 'proposal',
|
||||
'content' => [
|
||||
'title' => 'Offre commerciale',
|
||||
'stepName' => 'proposal',
|
||||
'stepIndex' => 2
|
||||
]
|
||||
])->changeStatus('listed');
|
||||
|
||||
$page->createChild([
|
||||
'slug' => 'extended-brief',
|
||||
'template' => 'extended-brief',
|
||||
'content' => [
|
||||
'title' => 'Brief enrichi',
|
||||
'stepName' => 'extended-brief',
|
||||
'stepIndex' => 3
|
||||
]
|
||||
])->changeStatus('listed');
|
||||
|
||||
$page->createChild([
|
||||
'slug' => 'industrial-ideation',
|
||||
'template' => 'industrial-ideation',
|
||||
'content' => [
|
||||
'title' => 'Idéation industrielle',
|
||||
'stepName' => 'industrialIdeation',
|
||||
'stepIndex' => 4
|
||||
]
|
||||
]);
|
||||
|
||||
$page->createChild([
|
||||
'slug' => 'virtual-sample',
|
||||
'template' => 'virtual-sample',
|
||||
'content' => [
|
||||
'title' => 'Échantillon virtuel',
|
||||
'stepName' => 'virtualSample',
|
||||
'stepIndex' => 5
|
||||
]
|
||||
])->changeStatus('listed');
|
||||
|
||||
$page->createChild([
|
||||
'slug' => 'physical-sample',
|
||||
'template' => 'physical-sample',
|
||||
'content' => [
|
||||
'title' => 'Échantillon physique',
|
||||
'stepName' => 'physicalSample',
|
||||
'stepIndex' => 6
|
||||
]
|
||||
]);
|
||||
}
|
||||
};
|
||||
0
public/site/models/client-brief.php
Normal file
0
public/site/models/client-brief.php
Normal file
|
|
@ -3,39 +3,12 @@
|
|||
class ProjectPage extends Page {
|
||||
public function getSteps() {
|
||||
|
||||
$steps = [
|
||||
[
|
||||
'text' => '1. Brief',
|
||||
'value' => 'brief'
|
||||
],
|
||||
[
|
||||
'text' => '2. Offre commerciale',
|
||||
'value' => 'proposal'
|
||||
],
|
||||
[
|
||||
'text' => '3. Brief enrichi',
|
||||
'value' => 'extendedBrief'
|
||||
],
|
||||
];
|
||||
|
||||
if (str_contains($this->optionalSteps(), 'industrialIdeation')) {
|
||||
$steps[] = [
|
||||
'text' => '4. Idéation industrielle',
|
||||
'value' => 'industrialIdeation'
|
||||
$steps = array_map(function($child) {
|
||||
return [
|
||||
'text' => $child['content']['title'],
|
||||
'value' => $child['content']['stepname']
|
||||
];
|
||||
}
|
||||
|
||||
$steps[] = [
|
||||
'text' => count($steps) + 1 . '. Échantillon virtuel',
|
||||
'value' => 'virtualSample'
|
||||
];
|
||||
|
||||
if (str_contains($this->optionalSteps(), 'physicalSample')) {
|
||||
$steps[] = [
|
||||
'text' => count($steps) + 1 . '.Échantillon physique',
|
||||
'value' => 'physicalSample'
|
||||
];
|
||||
}
|
||||
}, $this->children()->toArray());
|
||||
|
||||
return $steps;
|
||||
}
|
||||
|
|
|
|||
6
public/site/plugins/icons/index.js
Normal file
6
public/site/plugins/icons/index.js
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
panel.plugin("my/icons", {
|
||||
icons: {
|
||||
"light-bulb":
|
||||
'<path d="M9.97308 18H14.0269C14.1589 16.7984 14.7721 15.8065 15.7676 14.7226C15.8797 14.6006 16.5988 13.8564 16.6841 13.7501C17.5318 12.6931 18 11.385 18 10C18 6.68629 15.3137 4 12 4C8.68629 4 6 6.68629 6 10C6 11.3843 6.46774 12.6917 7.31462 13.7484C7.40004 13.855 8.12081 14.6012 8.23154 14.7218C9.22766 15.8064 9.84103 16.7984 9.97308 18ZM14 20H10V21H14V20ZM5.75395 14.9992C4.65645 13.6297 4 11.8915 4 10C4 5.58172 7.58172 2 12 2C16.4183 2 20 5.58172 20 10C20 11.8925 19.3428 13.6315 18.2443 15.0014C17.624 15.7748 16 17 16 18.5V21C16 22.1046 15.1046 23 14 23H10C8.89543 23 8 22.1046 8 21V18.5C8 17 6.37458 15.7736 5.75395 14.9992ZM13 10.0048H15.5L11 16.0048V12.0048H8.5L13 6V10.0048Z"></path>',
|
||||
},
|
||||
});
|
||||
4
public/site/plugins/icons/index.php
Normal file
4
public/site/plugins/icons/index.php
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?php
|
||||
Kirby::plugin('adrienpayet/pochet-icons', [
|
||||
'icons' => []
|
||||
]);
|
||||
|
|
@ -5,7 +5,9 @@ $project = [
|
|||
'url' => $page->url(),
|
||||
'modified' => $page->modified('Y-MM-d'),
|
||||
'status' => $page->status(),
|
||||
'logo' => $page->client()->toPage()->logo()->toFile()->url()
|
||||
'logo' => $page->client()->toPage()->logo()->toFile()->url(),
|
||||
'currentStep' => $page->currentStep()->value(),
|
||||
'steps' => $page->getSteps()
|
||||
];
|
||||
|
||||
$data = array_merge($genericData, $project);
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ $children = $page->children()->map(function ($child) {
|
|||
'uri' => '/' . $child->uri(),
|
||||
'modified' => $child->modified('Y-MM-d'),
|
||||
'status' => $child->status(),
|
||||
'logo' => $child->client()->toPage()->logo()->toFile()->url()
|
||||
'logo' => $child->client()->toPage()->logo()->toFile()->url(),
|
||||
];
|
||||
})->values();
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue