Skip to content

Commit

Permalink
feaet(admin): campaign verification
Browse files Browse the repository at this point in the history
  • Loading branch information
tioirawan committed Jun 27, 2023
1 parent 93bfa71 commit 4919edb
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 1 deletion.
19 changes: 19 additions & 0 deletions app/Http/Controllers/Admin/CampaignCrudController.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
namespace App\Http\Controllers\Admin;

use App\Http\Requests\CampaignRequest;
use App\Models\Campaign;
use Backpack\CRUD\app\Http\Controllers\CrudController;
use Backpack\CRUD\app\Library\CrudPanel\CrudPanelFacade as CRUD;

Expand Down Expand Up @@ -40,6 +41,7 @@ public function setup()
protected function setupListOperation()
{
CRUD::column('partner_id');
CRUD::column('verified_at');
CRUD::column('title');
CRUD::column('status');
CRUD::column('fund_target');
Expand All @@ -51,6 +53,8 @@ protected function setupListOperation()
CRUD::column('finish_date');
CRUD::column('slug');

CRUD::addButtonFromModelFunction('line', 'verify', 'verifyButton', 'end');

// CRUD::column('description');

/**
Expand Down Expand Up @@ -100,4 +104,19 @@ protected function setupUpdateOperation()
{
$this->setupCreateOperation();
}

// custom function to verify campaign
public function verify(Campaign $campaign)
{
$campaign->verify();

return redirect()->back();
}

public function unverify(Campaign $campaign)
{
$campaign->unverify();

return redirect()->back();
}
}
27 changes: 26 additions & 1 deletion app/Models/Campaign.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ class Campaign extends Model
'tenor',
'start_date',
'finish_date',
'status'
'status',
'verified_at'
];

public function __construct()
Expand Down Expand Up @@ -90,4 +91,28 @@ public function getCollectedPerTotalAttribute()

return 'Rp. ' . number_format($this->fundings->sum('fund_nominal'), 0, ',', '.') . " / Rp. " . number_format($this->fund_target, 0, ',', '.');
}

public function getIsVerifiedAttribute()
{
return $this->verified_at != null;
}

public function verify()
{
$this->update(['verified_at' => now()]);
}

public function unverify()
{
$this->update(['verified_at' => null]);
}

public function verifyButton()
{
if ($this->is_verified) {
return '<a href="' . backpack_url('campaign/' . $this->slug . '/unverify') . '" class="btn btn-sm btn-link-secondary"><i class="la la-times"></i> Batalkan Verifikasi</a>';
}

return '<a href="' . backpack_url('campaign/' . $this->slug . '/verify') . '" class="btn btn-sm btn-link"><i class="la la-check"></i> Verifikasi</a>';
}
}
3 changes: 3 additions & 0 deletions routes/backpack/custom.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,7 @@

Route::get('partner/{partner}/verify', 'PartnerCrudController@verify')->name('partner.verify');
Route::get('partner/{partner}/unverify', 'PartnerCrudController@unverify')->name('partner.unverify');

Route::get('campaign/{campaign}/verify', 'CampaignCrudController@verify')->name('campaign.verify');
Route::get('campaign/{campaign}/unverify', 'CampaignCrudController@unverify')->name('campaign.unverify');
}); // this should be the absolute last line of this file

0 comments on commit 4919edb

Please sign in to comment.