*/
public function map($user): array
{
- return [
+ $place = $user->organization !== null && $user->organization->unique_address ?
+ $user->organization->place() :
+ $user->place();
+
+ return array_merge([
$user->first_name,
$user->last_name,
- $user->email,
- $user->address_line_1,
- $user->city,
- $user->postal_code,
- $user->country,
+ $user->email
+ ], $place, [
$user->phone,
- (string) $user->organization,
+ $user->organization_str ?? (string) $user->organization,
$user->position,
-
-
-
- ];
+ ]);
}
public function headings(): array
use Illuminate\Http\Request;
use Laravel\Nova\Fields\BelongsTo;
use Laravel\Nova\Fields\Boolean;
+use Laravel\Nova\Fields\Country;
use Laravel\Nova\Fields\HasMany;
use Laravel\Nova\Fields\ID;
+use Laravel\Nova\Fields\Place;
use Laravel\Nova\Fields\Text;
use Laravel\Nova\Http\Requests\NovaRequest;
+use Laravel\Nova\Panel;
class Organization extends Resource
{
public function fields(Request $request)
{
return [
-// ID::make()->sortable(),
Text::make('Nom', 'name'),
+ new Panel('Adresse', $this->addressFields()),
HasMany::make('Membres', 'members', User::class),
BelongsTo::make('Type', 'type', OrganizationType::class),
+ Boolean::make('Adresse unique', 'unique_address'),
];
}
+
+ /**
+ * Get the address fields for the resource.
+ *
+ *
+ */
+ protected function addressFields()
+ {
+ return [
+ Place::make('Adresse', 'address_line_1')->hideFromIndex(),
+ Text::make('Ville', 'city')->hideFromIndex(),
+ Text::make('Code Postal', 'postal_code')->hideFromIndex(),
+ Country::make('Pays', 'country')->hideFromIndex(),
+ ];
+ }
+
/**
* Get the cards available for the request.
*
--- /dev/null
+<?php
+
+use Illuminate\Database\Migrations\Migration;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
+
+class AddUnqiueAddressToOrganizations extends Migration
+{
+ /**
+ * Run the migrations.
+ *
+ * @return void
+ */
+ public function up()
+ {
+ Schema::table('organizations', function (Blueprint $table) {
+ $table->boolean('unique_address')->default(0);
+ $table->string('address_line_1')->nullable();
+ $table->string('city')->nullable();
+ $table->string('postal_code')->nullable();
+ $table->string('country')->nullable();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ *
+ * @return void
+ */
+ public function down()
+ {
+ Schema::table('organizations', function (Blueprint $table) {
+ $table->dropColumn('unique_address');
+ $table->dropColumn('address_line_1');
+ $table->dropColumn('city');
+ $table->dropColumn('postal_code');
+ $table->dropColumn('country');
+ });
+ }
+}