Can now edit valid and pending organisations
This commit is contained in:
parent
45a8a58b30
commit
db2dc9fc0f
4 changed files with 90 additions and 7 deletions
|
@ -172,7 +172,9 @@ sub startup {
|
||||||
|
|
||||||
$admin_routes->get('/organisations')->to('admin-organisations#list');
|
$admin_routes->get('/organisations')->to('admin-organisations#list');
|
||||||
$admin_routes->get('/organisations/valid/:id')->to('admin-organisations#valid_read');
|
$admin_routes->get('/organisations/valid/:id')->to('admin-organisations#valid_read');
|
||||||
|
$admin_routes->get('/organisations/valid/:id/edit')->to('admin-organisations#valid_edit');
|
||||||
$admin_routes->get('/organisations/pending/:id')->to('admin-organisations#pending_read');
|
$admin_routes->get('/organisations/pending/:id')->to('admin-organisations#pending_read');
|
||||||
|
$admin_routes->get('/organisations/pending/:id/edit')->to('admin-organisations#pending_edit');
|
||||||
$admin_routes->get('/organisations/pending/:id/approve')->to('admin-organisations#pending_approve');
|
$admin_routes->get('/organisations/pending/:id/approve')->to('admin-organisations#pending_approve');
|
||||||
|
|
||||||
$admin_routes->get('/feedback')->to('admin-feedback#index');
|
$admin_routes->get('/feedback')->to('admin-feedback#index');
|
||||||
|
|
|
@ -2,6 +2,7 @@ package Pear::LocalLoop::Controller::Admin::Organisations;
|
||||||
use Mojo::Base 'Mojolicious::Controller';
|
use Mojo::Base 'Mojolicious::Controller';
|
||||||
|
|
||||||
use Try::Tiny;
|
use Try::Tiny;
|
||||||
|
use Data::Dumper;
|
||||||
|
|
||||||
sub list {
|
sub list {
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
|
@ -30,6 +31,43 @@ sub valid_read {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub valid_edit {
|
||||||
|
my $c = shift;
|
||||||
|
|
||||||
|
my $validation = $c->validation;
|
||||||
|
$validation->required('name');
|
||||||
|
$validation->required('street_name');
|
||||||
|
$validation->required('town');
|
||||||
|
$validation->required('postcode')->postcode;
|
||||||
|
|
||||||
|
if ( $validation->has_error ) {
|
||||||
|
$c->flash( error => 'The validation has failed' );
|
||||||
|
$c->app->log->warn(Dumper $validation);
|
||||||
|
return $c->redirect_to( '/admin/organisations/valid/' . $c->param('id') );
|
||||||
|
}
|
||||||
|
|
||||||
|
my $valid_org = $c->schema->resultset('Organisation')->find( $c->param('id') );
|
||||||
|
|
||||||
|
try {
|
||||||
|
$c->schema->storage->txn_do( sub {
|
||||||
|
$valid_org->update({
|
||||||
|
name => $validation->param('name'),
|
||||||
|
street_name => $validation->param('street_name'),
|
||||||
|
town => $validation->param('town'),
|
||||||
|
postcode => $validation->param('postcode'),
|
||||||
|
});
|
||||||
|
} );
|
||||||
|
} finally {
|
||||||
|
if ( @_ ) {
|
||||||
|
$c->flash( error => 'Something went wrong Updating the Organisation' );
|
||||||
|
$c->app->log->warn(Dumper @_);
|
||||||
|
} else {
|
||||||
|
$c->flash( success => 'Updated Organisation' );
|
||||||
|
}
|
||||||
|
};
|
||||||
|
$c->redirect_to( '/admin/organisations/valid/' . $valid_org->id );
|
||||||
|
}
|
||||||
|
|
||||||
sub pending_read {
|
sub pending_read {
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
my $pending_org = $c->schema->resultset('PendingOrganisation')->find( $c->param('id') );
|
my $pending_org = $c->schema->resultset('PendingOrganisation')->find( $c->param('id') );
|
||||||
|
@ -45,6 +83,43 @@ sub pending_read {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub pending_edit {
|
||||||
|
my $c = shift;
|
||||||
|
|
||||||
|
my $validation = $c->validation;
|
||||||
|
$validation->required('name');
|
||||||
|
$validation->required('street_name');
|
||||||
|
$validation->required('town');
|
||||||
|
$validation->required('postcode')->postcode;
|
||||||
|
|
||||||
|
if ( $validation->has_error ) {
|
||||||
|
$c->flash( error => 'The validation has failed' );
|
||||||
|
$c->app->log->warn(Dumper $validation);
|
||||||
|
return $c->redirect_to( '/admin/organisations/pending/' . $c->param('id') );
|
||||||
|
}
|
||||||
|
|
||||||
|
my $pending_org = $c->schema->resultset('PendingOrganisation')->find( $c->param('id') );
|
||||||
|
|
||||||
|
try {
|
||||||
|
$c->schema->storage->txn_do( sub {
|
||||||
|
$pending_org->update({
|
||||||
|
name => $validation->param('name'),
|
||||||
|
street_name => $validation->param('street_name'),
|
||||||
|
town => $validation->param('town'),
|
||||||
|
postcode => $validation->param('postcode'),
|
||||||
|
});
|
||||||
|
} );
|
||||||
|
} finally {
|
||||||
|
if ( @_ ) {
|
||||||
|
$c->flash( error => 'Something went wrong Updating the Organisation' );
|
||||||
|
$c->app->log->warn(Dumper @_);
|
||||||
|
} else {
|
||||||
|
$c->flash( success => 'Updated Organisation' );
|
||||||
|
}
|
||||||
|
};
|
||||||
|
$c->redirect_to( '/admin/organisations/valid/' . $pending_org->id );
|
||||||
|
}
|
||||||
|
|
||||||
sub pending_approve {
|
sub pending_approve {
|
||||||
my $c = shift;
|
my $c = shift;
|
||||||
my $pending_org = $c->schema->resultset('PendingOrganisation')->find( $c->param('id') );
|
my $pending_org = $c->schema->resultset('PendingOrganisation')->find( $c->param('id') );
|
||||||
|
|
|
@ -16,10 +16,12 @@
|
||||||
%= $pending_org->name
|
%= $pending_org->name
|
||||||
</h3>
|
</h3>
|
||||||
<ul class="list-group list-group-flush">
|
<ul class="list-group list-group-flush">
|
||||||
<li class="list-group-item">Street Name: <%= $pending_org->street_name %></li>
|
<form action="<%= url_for . '/edit' %>">
|
||||||
<li class="list-group-item">Town: <%= $pending_org->town %></li>
|
<li class="list-group-item"><input id="name" type="text" class="form-control" placeholder="Organisation Name" name="name" value="<%= $valid_org->name %>"></li>
|
||||||
<li class="list-group-item">Postcode: <%= $pending_org->postcode %></li>
|
<li class="list-group-item"><input id="street_name" type="text" class="form-control" placeholder="Street Name" name="street_name" value="<%= $pending_org->street_name %>"></li>
|
||||||
<li class="list-group-item"><a href="<%= url_for . '/approve' %>" class="btn btn-success">Approve Organisation</a></li>
|
<li class="list-group-item"><input id="town" type="text" class="form-control" placeholder="Town" name="town" value="<%= $pending_org->town %>"></li>
|
||||||
|
<li class="list-group-item"><input id="postcode" type="text" class="form-control" placeholder="Postcode" name="postcode" value="<%= $pending_org->postcode %>"></li>
|
||||||
|
<li class="list-group-item"><button class="btn btn-success" type="submit">Update</button><a href="<%= url_for . '/approve' %>" class="btn btn-success">Approve Organisation</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="card mb-3">
|
<div class="card mb-3">
|
||||||
|
|
|
@ -16,9 +16,13 @@
|
||||||
%= $valid_org->name
|
%= $valid_org->name
|
||||||
</h3>
|
</h3>
|
||||||
<ul class="list-group list-group-flush">
|
<ul class="list-group list-group-flush">
|
||||||
<li class="list-group-item">Street Name: <%= $valid_org->street_name %></li>
|
<form action="<%= url_for . '/edit' %>">
|
||||||
<li class="list-group-item">Town: <%= $valid_org->town %></li>
|
<li class="list-group-item"><input id="name" type="text" class="form-control" placeholder="Organisation Name" name="name" value="<%= $valid_org->name %>"></li>
|
||||||
<li class="list-group-item">Postcode: <%= $valid_org->postcode %></li>
|
<li class="list-group-item"><input id="street_name" type="text" class="form-control" placeholder="Street Name" name="street_name" value="<%= $valid_org->street_name %>"></li>
|
||||||
|
<li class="list-group-item"><input id="town" type="text" class="form-control" placeholder="Town" name="town" value="<%= $valid_org->town %>"></li>
|
||||||
|
<li class="list-group-item"><input id="postcode" type="text" class="form-control" placeholder="Postcode" name="postcode" value="<%= $valid_org->postcode %>"></li>
|
||||||
|
<li class="list-group-item"><button class="btn btn-success" type="submit">Edit Organisation</button></li>
|
||||||
|
</form>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="card mb-3">
|
<div class="card mb-3">
|
||||||
|
|
Reference in a new issue