From efde852cacf929e8c6a12573643e0418d53f866f Mon Sep 17 00:00:00 2001 From: MercierCorentin Date: Wed, 18 Mar 2020 14:04:35 +0100 Subject: [PATCH 1/3] [Database][Asso]Add short_description --- .../Controllers/Resource/AssoController.php | 1 + app/Models/Asso.php | 4 +-- config/validation.php | 6 ++++ database/factories/AssosFactory.php | 6 ++-- ...ription_and_change_name_of_assos_table.php | 34 +++++++++++++++++++ 5 files changed, 47 insertions(+), 4 deletions(-) create mode 100644 database/migrations/2020_03_18_124532_add_short_description_and_change_name_of_assos_table.php diff --git a/app/Admin/Controllers/Resource/AssoController.php b/app/Admin/Controllers/Resource/AssoController.php index a48796db6..50716a1b7 100644 --- a/app/Admin/Controllers/Resource/AssoController.php +++ b/app/Admin/Controllers/Resource/AssoController.php @@ -30,6 +30,7 @@ protected function getFields(): array 'shortname' => 'text', 'login' => 'text', 'image' => 'image', + 'short_description' => 'text', 'description' => 'textarea', 'type' => AssoType::get(['id', 'name']), 'parent' => Asso::get(['id', 'name']), diff --git a/app/Models/Asso.php b/app/Models/Asso.php index 5ce78e728..5506d4ad3 100644 --- a/app/Models/Asso.php +++ b/app/Models/Asso.php @@ -44,7 +44,7 @@ class Asso extends Model implements CanBeOwner, CanHaveContacts, CanHaveCalendar ]; protected $fillable = [ - 'name', 'shortname', 'login', 'image', 'description', 'type_id', 'parent_id', 'in_cemetery_at' + 'name', 'shortname', 'login', 'image', 'description', 'short_description', 'type_id', 'parent_id', 'in_cemetery_at' ]; protected $hidden = [ @@ -60,7 +60,7 @@ class Asso extends Model implements CanBeOwner, CanHaveContacts, CanHaveCalendar ]; protected $must = [ - 'name', 'shortname', 'login', 'image', 'in_cemetery_at', 'deleted_at', + 'shortname', 'login', 'image', 'in_cemetery_at', 'deleted_at', ]; // Children in the case of a staged mode display. diff --git a/config/validation.php b/config/validation.php index 77bce1ab0..7a1a763ab 100644 --- a/config/validation.php +++ b/config/validation.php @@ -49,6 +49,12 @@ ], // Short association description. + 'short_description' => [ + 'min' => 0, + 'max' => 255, + ], + + // Association description. 'description' => [ 'min' => 0, 'max' => 8191, diff --git a/database/factories/AssosFactory.php b/database/factories/AssosFactory.php index 69a3deef1..33c8a2e14 100644 --- a/database/factories/AssosFactory.php +++ b/database/factories/AssosFactory.php @@ -17,14 +17,16 @@ $assoTypeIdentifiers = explode(',', config("seeder.asso.type.identifiers")); $assoParents = explode(',', config("seeder.asso.parents")); + $shortname = $faker->company(); return [ 'id' => Uuid::generate()->string, 'type_id' => AssoType::where('type', $faker->randomElement($assoTypeIdentifiers))->first()->id, 'parent_id' => Asso::where('login', $faker->randomElement($assoParents))->first()->id, 'login' => $faker->regexify('\w{6,30}'), - 'shortname' => $faker->company(), - 'name' => $faker->catchPhrase(), + 'shortname' => $shortname, + 'name' => ($faker->boolean(50) ? $shortname.' '.$faker->companySuffix() : null), 'image' => config("seeder.asso.generate_images", false) ? '/images/assos/'.$faker->image('public/images/assos', config('seeder.asso.image_width'), config('seeder.asso.image_height'), null, false) : null , + 'short_description' => $faker->catchPhrase(), 'description' => $faker->realText(400, 2), 'in_cemetery_at' => $faker->boolean(20) ? $faker->dateTimeBetween('-5 years', 'now') : null, ]; diff --git a/database/migrations/2020_03_18_124532_add_short_description_and_change_name_of_assos_table.php b/database/migrations/2020_03_18_124532_add_short_description_and_change_name_of_assos_table.php new file mode 100644 index 000000000..f6cd84543 --- /dev/null +++ b/database/migrations/2020_03_18_124532_add_short_description_and_change_name_of_assos_table.php @@ -0,0 +1,34 @@ +string('name', validation_max('name'))->nullable()->change(); + $table->string('short_description', validation_max("short_description")); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('assos', function (Blueprint $table) { + $table->dropColumn('short_description'); + $table->string('name', validation_max('name'))->nullable(false)->change(); + }); + } +} From 27e75212a1638f3dc5abcdf56a2449754bd9cc7b Mon Sep 17 00:00:00 2001 From: MercierCorentin Date: Thu, 19 Mar 2020 18:54:59 +0100 Subject: [PATCH 2/3] Adapt front to name changes --- resources/assets/react/screens/Asso/Home.js | 9 ++++++--- resources/assets/react/screens/AssoList.js | 13 +++++++------ 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/resources/assets/react/screens/Asso/Home.js b/resources/assets/react/screens/Asso/Home.js index 46ed83a89..0aab2e8b8 100644 --- a/resources/assets/react/screens/Asso/Home.js +++ b/resources/assets/react/screens/Asso/Home.js @@ -195,10 +195,13 @@ class AssoHomeScreen extends React.Component {

{asso.shortname}{' '} - - {asso.name} - + {asso.name && ( + + {asso.name} + + )}

+ {asso.short_description &&

{asso.short_description}

} {asso.type && asso.type.description} {asso.in_cemetery_at == null && ( diff --git a/resources/assets/react/screens/AssoList.js b/resources/assets/react/screens/AssoList.js index 4940cc035..d2ac430a6 100644 --- a/resources/assets/react/screens/AssoList.js +++ b/resources/assets/react/screens/AssoList.js @@ -73,12 +73,13 @@ class AssoListScreen extends React.Component { .normalize('NFD') .replace(/[\u0300-\u036f]/g, '') ) || - regex.test( - name - .toLowerCase() - .normalize('NFD') - .replace(/[\u0300-\u036f]/g, '') - )) && + (name && + regex.test( + name + .toLowerCase() + .normalize('NFD') + .replace(/[\u0300-\u036f]/g, '') + ))) && in_cemetery_at === null ); } From ff6f41cef98d1b0a4873f8b96b9e07ebdfaaebc4 Mon Sep 17 00:00:00 2001 From: MercierCorentin Date: Fri, 20 Mar 2020 11:55:58 +0100 Subject: [PATCH 3/3] [AssoPage][Home] Style for asso shortdescription --- resources/assets/react/screens/Asso/Home.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/resources/assets/react/screens/Asso/Home.js b/resources/assets/react/screens/Asso/Home.js index 0aab2e8b8..962c8b141 100644 --- a/resources/assets/react/screens/Asso/Home.js +++ b/resources/assets/react/screens/Asso/Home.js @@ -201,7 +201,14 @@ class AssoHomeScreen extends React.Component { )} - {asso.short_description &&

{asso.short_description}

} + {asso.short_description && ( +

+ {asso.short_description} +

+ )} {asso.type && asso.type.description} {asso.in_cemetery_at == null && (