Added organisations page to admin interface
This commit is contained in:
parent
25c0d06211
commit
98f15a67af
8 changed files with 217 additions and 19 deletions
42
lib/Pear/LocalLoop/Controller/Admin/Organisations.pm
Normal file
42
lib/Pear/LocalLoop/Controller/Admin/Organisations.pm
Normal file
|
@ -0,0 +1,42 @@
|
|||
package Pear::LocalLoop::Controller::Admin::Organisations;
|
||||
use Mojo::Base 'Mojolicious::Controller';
|
||||
|
||||
sub list {
|
||||
my $c = shift;
|
||||
|
||||
my $valid_orgs_rs = $c->schema->resultset('Organisation');
|
||||
my $pending_orgs_rs = $c->schema->resultset('PendingOrganisation');
|
||||
|
||||
$c->stash(
|
||||
valid_orgs_rs => $valid_orgs_rs,
|
||||
pending_orgs_rs => $pending_orgs_rs,
|
||||
);
|
||||
}
|
||||
|
||||
sub valid_read {
|
||||
my $c = shift;
|
||||
my $valid_org = $c->schema->resultset('Organisation')->find( $c->param('id') );
|
||||
$c->stash( valid_org => $valid_org );
|
||||
}
|
||||
|
||||
sub pending_read {
|
||||
my $c = shift;
|
||||
my $pending_org = $c->schema->resultset('PendingOrganisation')->find( $c->param('id') );
|
||||
$c->stash( pending_org => $pending_org );
|
||||
}
|
||||
|
||||
sub pending_approve {
|
||||
my $c = shift;
|
||||
my $pending_org = $c->schema->resultset('PendingOrganisation')->find( $c->param('id') );
|
||||
my $valid_org = $c->schema->resultset('Organisation')->create({
|
||||
name => $pending_org->name,
|
||||
street_name => $pending_org->street_name,
|
||||
town => $pending_org->town,
|
||||
postcode => $pending_org->postcode,
|
||||
});
|
||||
$c->copy_transactions_and_delete( $pending_org, $valid_org );
|
||||
$c->flash( success => 'Validated Organisation' );
|
||||
$c->redirect_to( '/admin/organisations/valid/' . $valid_org->id );
|
||||
}
|
||||
|
||||
1;
|
|
@ -102,24 +102,5 @@ sub post_admin_merge {
|
|||
);
|
||||
}
|
||||
|
||||
sub copy_transactions_and_delete {
|
||||
my ( $c, $from_org, $to_org ) = @_;
|
||||
|
||||
my $from_org_transaction_rs = $from_org->transactions;
|
||||
|
||||
while ( my $from_org_transaction = $from_org_transaction_rs->next ) {
|
||||
$to_org->create_related(
|
||||
'transactions', {
|
||||
buyer_id => $from_org_transaction->buyer_id,
|
||||
value => $from_org_transaction->value,
|
||||
proof_image => $from_org_transaction->proof_image,
|
||||
submitted_at => $from_org_transaction->submitted_at,
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
$from_org->delete;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
|
|
Reference in a new issue