From 6e7ddeeac3fb17b42facc726b5540220db1d87c3 Mon Sep 17 00:00:00 2001 From: Andreas Granig Date: Mon, 29 Jul 2013 18:16:38 +0200 Subject: [PATCH] Properly propagate new contract back to reseller. --- lib/NGCP/Panel/Controller/Contract.pm | 1 + lib/NGCP/Panel/Controller/Reseller.pm | 14 ++++++-------- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/NGCP/Panel/Controller/Contract.pm b/lib/NGCP/Panel/Controller/Contract.pm index 0dbba1f742..dce083d2e6 100644 --- a/lib/NGCP/Panel/Controller/Contract.pm +++ b/lib/NGCP/Panel/Controller/Contract.pm @@ -117,6 +117,7 @@ sub create :Chained('contract_list') :PathPart('create') :Args(0) { ); delete $c->session->{created_objects}->{contact}; delete $c->session->{created_objects}->{billing_profile}; + $c->session->{created_objects}->{contract} = { id => $contract->id }; $c->flash(messages => [{type => 'success', text => 'Contract successfully created!'}]); }); } catch($e) { diff --git a/lib/NGCP/Panel/Controller/Reseller.pm b/lib/NGCP/Panel/Controller/Reseller.pm index 25dbee877c..90345a8298 100644 --- a/lib/NGCP/Panel/Controller/Reseller.pm +++ b/lib/NGCP/Panel/Controller/Reseller.pm @@ -50,15 +50,15 @@ sub create :Chained('list_reseller') :PathPart('create') :Args(0) { $c->detach('/denied_page') if($c->user->read_only); - my $params = delete $c->session->{created_object} || {}; + my $params = {}; + $params = Hash::Merge->new('RIGHT_PRECEDENT')->merge($params, $c->session->{created_objects}); my $posted = $c->request->method eq 'POST'; my $form = NGCP::Panel::Form::Reseller->new; $form->process( posted => $posted, - item => $params, params => $c->request->params, - action => $c->uri_for('create'), + item => $params, ); NGCP::Panel::Utils::Navigation::check_form_buttons( c => $c, @@ -72,6 +72,7 @@ sub create :Chained('list_reseller') :PathPart('create') :Args(0) { $form->params->{contract_id} = delete $form->params->{contract}->{id}; delete $form->params->{contract}; $c->model('DB')->resultset('resellers')->create($form->params); + delete $c->session->{created_objects}->{contract}; $c->flash(messages => [{type => 'success', text => 'Reseller successfully created.'}]); } catch($e) { @@ -178,14 +179,11 @@ sub edit :Chained('base') :PathPart('edit') :Args(0) { my $form = NGCP::Panel::Form::Reseller->new; my $params = { $c->stash->{reseller}->first->get_inflated_columns }; $params->{contract}{id} = delete $params->{contract_id}; - if($c->session->{created_object}) { # got a contract id from next step - $params = Hash::Merge->new('RIGHT_PRECEDENT')->merge($params, delete $c->session->{created_object}); - } + $params = Hash::Merge->new('RIGHT_PRECEDENT')->merge($params, $c->session->{created_objects}); $form->process( posted => $posted, params => $c->request->params, item => $params, - action => $c->request->uri, ); NGCP::Panel::Utils::Navigation::check_form_buttons( c => $c, form => $form, fields => [qw/contract.create/], @@ -197,8 +195,8 @@ sub edit :Chained('base') :PathPart('edit') :Args(0) { $form->params->{contract_id} = delete $form->params->{contract}{id}; delete $form->params->{contract}; $c->stash->{reseller}->first->update($form->params); + delete $c->session->{created_objects}->{contract}; $c->flash(messages => [{type => 'success', text => 'Reseller successfully changed.'}]); - delete $c->session->{contract_id}; } catch($e) { $c->log->error($e); $c->flash(messages => [{type => 'error', text => 'Updating reseller failed.'}]);