Hi Andy,

One important issue here is whether all the applications you are going
to build with web2py need to share authentication with non-web2py
applications or not. If yes you need federated authentication (for
example CAS) and things can get complex. If no, then you can simply
your life a lot if

1) make a single controller for each complaint
2) make a single model for all complains
3) extend your application with one controller and one model file for
each main function of the company

This design will allow to easily share the built-in authentication
(auth and db.py) and layout.html
It is modular enough that if you later choose to break it into
separate apps and implement some other distriuted authentication
mechanism you can do so.

Massimo

On Apr 8, 3:42 am, AndyBuchan <mr_buc...@hotmail.com> wrote:
> Hello all,
>
> I've never worked with a web framework before, other than going
> through the examples in the web2py manual, and have been tasked with
> creating an application which handles internal 'complaints' for the
> furniture manufacturing company I work for, and am looking for some
> advice on how to structure it all...
>
> Requirements:
> - Complaints can be one of 3 types: 'Transport Complaint', 'Client
> Complaint', 'Corrective Action'.
> - These all have some fields in common, but also have their own
> fields, and all behave differently (i.e. have different actions).
> - Any type of complaint can require that a 'replacement' be sent to
> the client.
> - A replacement has its own set of fields and actions (requires
> authorisation etc...)
> - The user should access a main screen from which he can select which
> type of complaint to generate, which will bring him to a form. If they
> check the box 'Requires replacement', then additional fields are shown/
> enabled on the form.
>
> Design ideas:
> For the relational model I made a table called 'ComplaintBase' which
> stores the fields common to all types of complaint, and identifies the
> type of complaint. Then there is a table for each of the 3 types of
> complaint, where each row references a row in 'ComplaintBase', and
> finally a table for 'Replacement' which also references
> 'ComplaintBase'.
>
> So far so good, but now I'm wondering:
> - Should I make a controller for each type of complaint?
> - Should I make classes in a separate file to represent each type of
> complaint (and wrap a ComplaintBase object inside each of them, which
> will also handle the 'Replacement' as that works the same for all
> complaints). If I'm doing this, then the controllers are just a
> gateway between the interface and the 'business objects', is this how
> it should go?
> - Should I skip the idea of separate classes for business objects
> altogether, and just treat the controller as the business object
> (going functional instead of oop)? If so, how could I make the
> controller classes behave in the same way for certain actions
> (inheritance/composition)?
>
> - On a more general note: am I going the right way about organising
> this as a full application? I intend to create many similar small
> applications for various functions in the company, but would like
> certain elements to be shared across these applications (look and
> feel, user authentication etc...), tell me I shouldn't be creating on
> application for the whole business, and use controllers for each
> individual 'application'. (May be bleeding obvious to some, but
> thought I'd double check...)
>
> I look forward to hearing your thoughts/advice, and hope it will be
> useful to more than just my situation...
>
> regards, Andy.

-- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web...@googlegroups.com.
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en.

Reply via email to