Suppose I have three different types of users: buyer, distributor, and reseller.
All buyers, distributors, and resellers have an email, password, and ratings. Since email and password are already part of auth_user, the ratings Field will be an extra field in auth_user. To separate the user roles, we can user auth_membership and auth_group to designate an auth_user as a 'buyer', 'distributor', or 'reseller'. Although each user role uses the same backend code for storing email and password (through auth_user), how would one go about storing a custom rating mechanism for each user role? For example, let's say: A buyer is rated with some combination of # of product reviews written and credible purchase history. A reseller is rated with some combination of buyer reviews and warranty service. A distributor is rated with reseller reviews. Assuming I have the following functions which returns on an integer with range 1 - 100 for ratings: def buyer_calc_rating(): # Random calcluation for this example comment_num = len(db(db.comments.user == db.buyer.id).select()) purchase_history = #... some calculation that returns int return comment_num + purchase_history def reseller_calc_rating(); # Assume similar calculation returns int def distributor_calc_rating(); # Assume similar calculation returns int I have two questions: - How would I go about assigning these functions to user's ratings Field in auth_user? - How would the ratings be dynamically updated each time something changes pertaining to rating calculation (ie, when a buyer rates a seller, etc)? Would the preferred way be to stick the above functions in a module which is then called wherever some controller function changes ratings? I would always get an update-to-date rating on the user this way (simply by querying 'db.auth_user.rating'), but that would also be a code-maintanence nightmare since I would have to keep track of all the places in the code that manipulates ratings? Thanks in advance. -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.