
ksmclane at us
Apr 6, 2012, 5:56 AM
Post #3 of 3
(207 views)
Permalink
|
From: Hernan Lopes <hernanlopes [at] gmail> To: The elegant MVC web framework <catalyst [at] lists> Date: 04/05/2012 06:18 PM Subject: Re: [Catalyst] Datagrid with details view? This is my first attempt. I did get it working, I am using this as a learning exercise. You have given me several different things to try for this as alternatives. Please see my comments/answers inline below. Kenneth, you are using ->search which return multiple records, and you are using [% details.account_code %] on your code. Maybe you should: 1. [% details.0.account_code %] and ->all or 2. while ( $item = $results->next ) { ... } Kenneth> I used search as that was what I found an example of, plus in my case it only returns one record. I ended up wrapping my template code in a FOREACH and changing to a singular reference. and you can always do $results = $c->model('ORANGES::AccountDetails')->search({account_id => {'=', \$acctid}}) $c->stash(details => $results ) instead of $c->stash(details => [$c->model('ORANGES::AccountDetails')->search({account_id => {'=', \$acctid}})]); and, why are you using \$acctid ? why not simply $acctit? Kenneth> the code did not want to accept it without the escape for some reason, perhaps I needed to wrap it in double quotes. It wasn't interpolating it. and why ->search and not ->find if its one record... you need find Kenneth> good to know. good luck -hernan On Thu, Apr 5, 2012 at 3:07 PM, Kenneth S Mclane <ksmclane [at] us> wrote: I am trying to duplicate a .aspx website. I have succeeded in getting a page based on a db view. In the original site you can click on a row and a details view appears at the bottom of the page. I don't know if this is possible, but I have been trying to simply get a second page to come up with the details. I created a view with the fields I need and re-created my schema. I created a controller and added this code: sub detail :Local :Args(1) { my ($self, $c, $acctid) = @_; $c->stash(details => [$c->model('ORANGES::AccountDetails')->search({account_id => {'=', \$acctid}})]); $c->stash(template => 'accountdetails/detail.tt2'); } This appears to create a valid sql query, I get results when running it directly on the db. I added code to my list.tt2 file to create a link to the /accountdetails/detail URI by wrapping one of my TD in an href statement like this: <td><a href="[% c.uri_for('/accountdetails/detail/') %][% account.account_id %]">[% account.account_code %]</a></td> I created my detail.tt2 file containing this: [% META title = 'Account Detail' -%] <center> <table border="1" style="width:33%;border-collapse:collapse;"> <tr style="backround-color:#F8F8F8;"> <td style="background-color:#E5ECF9;">Account Code</td><td>[% details.account_code %]</td></tr> <tr style="backround-color:White;"> <td style="background-color:#E5ECF9;">Account Name</td><td>[% details.account_name %]</td></tr> <tr style="backround-color:#F8F8F8;"> <td style="background-color:#E5ECF9;">Account Policy</td><td>[% details.account_policy %]</td></tr> <tr style="backround-color:White;"> <td style="background-color:#E5ECF9;">Account Target</td><td>[% details.account_target %]</td></tr> <tr style="backround-color:#F8F8F8;"> <td style="background-color:#E5ECF9;">Account Workitem</td><td>[% details.account_workitem %]</td></tr> <tr style="backround-color:White;"> <td style="background-color:#E5ECF9;">Start Date</td><td>[% details.start_date %]</td></tr> <tr style="backround-color:#F8F8F8;"> <td style="background-color:#E5ECF9;">Kit Date</td><td>[% details.kit_date %]</td></tr> <tr style="backround-color:White;"> <td style="background-color:#E5ECF9;">Upgrade Date</td><td>[% details.upgrade_date %]</td></tr> <tr style="backround-color:#F8F8F8;"> <td style="background-color:#E5ECF9;">Approval Date</td><td>[% details.approval_date %]</td></tr> <tr style="backround-color:White;"> <td style="background-color:#E5ECF9;">Sunset Date</td><td>[% details.sunset_date %]</td></tr> <tr style="backround-color:#F8F8F8;"> <td style="background-color:#E5ECF9;">Alert Flag</td><td>[% details.alert_flag %]</td></tr> <tr style="backround-color:White;"> <td style="background-color:#E5ECF9;">Cirats Flag</td><td>[% details.cirats_flag %]</td></tr> <tr style="backround-color:#F8F8F8;"> <td style="background-color:#E5ECF9;">Report Flag</td><td>[% details.report_flag %]</td></tr> <tr style="backround-color:White;"> <td style="background-color:#E5ECF9;">Sample Flag</td><td>[% details.sample_flag %]</td></tr> <tr style="backround-color:#F8F8F8;"> <td style="background-color:#E5ECF9;">Sample Rate</td><td>[% details.sample_rate %]</td></tr> <tr style="backround-color:White;"> <td style="background-color:#E5ECF9;">Department Code</td><td>[% details.department_code %]</td></tr> </table> </center> My link works, I get the detail page with all the formatting and the pre-populated TD's, but the data is not showing up. I think I am missing something. Once again all help is appreciated.
|