Gaming Con event filtering and RapidApp

I'm a fussy person I guess. I haven't really like the way I can filter or search for events that might interest me for the two gaming conventions I've attended the last few years, GenCon and Gary Con.

GenCon provides an excel file of events that gets updated before event registration starts. Gary Con hasn't had this yet so I scrape it. For both of them I munged that data into a sqlite db.

Now, being the sharing guy that I am I was wondering how I could share this data, other than just throwing the sqlite file somewhere. RapidApp to the rescue. I tinkered with it a bit for last year's GenCon, I didn't get it sorted out well enough to show off to the public.

This year however is different (at least for Gary Con). Especially after vanstyns' talk at YAPC::NA 2015.

I sorted out the nginx proxy-routing and such to serve it up from somewhere other than my home server. You can give it a try at gizmomathboy.com u:gary, p:gygax.

As part of the data I was grabbing was the url for the event. In RapidApp this isn't normally an active link. After lots of help from Henry I was able to get it working.

I needed to modify some code in [app root dir]/lib/MyApp/Model/DB.pm

First, you need to pull in RapidApp::Util to get jsfunc.

Then you need to mess with how the column is rendered.

You are passing a javascript function into jsfunc which is passed along to ExtJS to render things.


SKIPSOMESTUFF

use RapidApp::Util ':all';

SKIPSOMEMORESTUFF

       TableSpecs => {
         'Event' => {

           columns => {
             url => {
               renderer => jsfunc join('', 
               'function(v){', 
               'return \'<a href="\'+v+\'">\' + v + ',
               '\'</a>\';',
               '}'),
             },
           },

         },
       },

SKIPYETSOMEMORE

Then you fire it up and the contents in the url column are now active links.

While I did beat my head against the wall a bit with the renderer stuff, until Henry helped out, I spent way more time reconfiguring my home server firewall (for my testing) and figuring out nginx proxy passing configurations than actually dealing with RapidApp.

While I'm just using it to make it easy to search/filter a database it is still a full Catalyst app underneath it all. So there is tons more I could do with this if I wanted to (like figuring out how to let folks create their own accounts...maybe I'll tackle that problem next year).

Thanks Henry for such an easy to use bit of software.

Leave a comment

About gizmo_mathboy

user-pic I blog about Perl.