Hi there! I started creating a website for a game at my college with
web2py last winter, and this winter I am cleaning up a lot of the
things I did rushed, and making it something that others can use...

IE: not so reliant on me creating one time use controllers, or going
straight to the shell to fix things.

With that in mind, my default controller has become what appears to be
a bloated beast of a python file and I'm wondering if I am right that
I need to do something about it, or if I should just clean it up where
I can and keep it all together.

A big part of me loves compartmentalized modules, with a couple of
functions in each, and I feel like for what I am doing it seems weird
that I am writing what i would consider utility functions in the
controller that also does page logic.

For example, in the game the site is for a database has to often be
checked to see what team the user is on, this can change rapidly and
is needed in lots of places, so I created a utility function called
"zombieTest()" with an optional argument for an inputted id number.

In my mind I want this to be in the 'modules' folder and imported in.
In practice this raised a bit of problems for me. When I finally
started doing just that i realized a couple of things: first off db's
have to be passed in, so it just adds another layer to using the
zombieTest. It seems like I would always be putting in zombieTest(db),
and if I want to test the current user id zombieTest(db, auth)
Or maybe always requiring auth.user.id to be passed in directly for
the id number.
And while I could do that it just seems like a step backwards....


...

So I come to the much more experienced people at this than myself, and
ask:

"Is the default controller being around 100kb a real issue?"
"Is it wrong to create utility like functions like the one above that
aren't ever meant to support views in the controller?"

and if so-

"How do I keep similar functionality, but put them in the correct
place, or seperate the controllers."

and if not:

"When should I seperate the controllers- or should I only do that for
parts of the site that are practically seperate for eachother?"


Thanks! I just realized that I might be making my life harder rather
than easier so I thought I would ask before I go much farther.


Reply via email to