mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-20 11:48:27 -06:00
Add groups, and the option for objects to be linked to one (or more) groups. #3128
This commit is contained in:
parent
07c7bf1d49
commit
61e24a41a2
21
app/Models/ObjectGroup.php
Normal file
21
app/Models/ObjectGroup.php
Normal file
@ -0,0 +1,21 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace FireflyIII\Models;
|
||||
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
/**
|
||||
* Class ObjectGroup
|
||||
*/
|
||||
class ObjectGroup extends Model
|
||||
{
|
||||
/**
|
||||
* @return \Illuminate\Database\Eloquent\Relations\MorphToMany
|
||||
*/
|
||||
public function piggyBanks()
|
||||
{
|
||||
return $this->morphedByMany(PiggyBank::class, 'object_groupable');
|
||||
}
|
||||
}
|
@ -126,6 +126,14 @@ class PiggyBank extends Model
|
||||
throw new NotFoundHttpException;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all of the tags for the post.
|
||||
*/
|
||||
public function objectGroups()
|
||||
{
|
||||
return $this->morphToMany(ObjectGroup::class, 'object_groupable');
|
||||
}
|
||||
|
||||
/**
|
||||
* @codeCoverageIgnore
|
||||
* @return MorphMany
|
||||
|
@ -145,7 +145,7 @@ return [
|
||||
'encryption' => null === env('USE_ENCRYPTION') || true === env('USE_ENCRYPTION'),
|
||||
'version' => '5.2.6',
|
||||
'api_version' => '1.1.0',
|
||||
'db_version' => 13,
|
||||
'db_version' => 14,
|
||||
'maxUploadSize' => 15242880,
|
||||
'send_error_message' => env('SEND_ERROR_MESSAGE', true),
|
||||
'site_owner' => env('SITE_OWNER', ''),
|
||||
|
63
database/migrations/2020_06_05_061116_changes_for_v530.php
Normal file
63
database/migrations/2020_06_05_061116_changes_for_v530.php
Normal file
@ -0,0 +1,63 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
|
||||
/**
|
||||
* Class ChangesForV530
|
||||
*/
|
||||
class ChangesForV530 extends Migration
|
||||
{
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table(
|
||||
'users', static function (Blueprint $table) {
|
||||
$table->dropColumn('provider');
|
||||
}
|
||||
);
|
||||
Schema::dropIfExists('object_groupables');
|
||||
Schema::dropIfExists('object_groups');
|
||||
}
|
||||
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table(
|
||||
'users', static function (Blueprint $table) {
|
||||
$table->string('provider', 50)->nullable();
|
||||
}
|
||||
);
|
||||
|
||||
if (!Schema::hasTable('object_groups')) {
|
||||
Schema::create(
|
||||
'object_groups', static function (Blueprint $table) {
|
||||
$table->increments('id');
|
||||
$table->timestamps();
|
||||
$table->softDeletes();
|
||||
$table->string('title', 255);
|
||||
$table->mediumInteger('order', false, true)->default(0);
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
if (!Schema::hasTable('object_groupables')) {
|
||||
Schema::create(
|
||||
'object_groupables', static function (Blueprint $table) {
|
||||
$table->integer('object_group_id');
|
||||
$table->integer('object_groupable_id', false, true);
|
||||
$table->string('object_groupable_type', 255);
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user