Thank you Villas, you've been much helpful On Thursday, July 23, 2020 at 2:05:49 PM UTC+2, villas wrote: > > As you've discovered, random doesn't work in this context. Make an array > of class attendee numbers and then allocate the class which has the fewest > students. > > > On Thursday, 23 July 2020 12:50:00 UTC+1, mostwanted wrote: >> >> Well the whole concept behind this application was that allocation of >> spaces in time, days & class rooms should be automatic, the user should >> just select the lecturer, the subject & the period the subject takes >> (Double session=2hrs, Single session=1hr) from there after the user submits >> that information its allocated time, day & class room automatically. >> >> To determine the whole automatic process I used the random() method, the >> problem with it is that after a while of entering details some random >> determinants start to repeat & alot more than desired causing conflict & >> triggering (conflict handling methods) in my validation function! >> >> With the above code I wanted to just keep up with the whole automatic >> notion of it! >> >> On Thursday, July 23, 2020 at 1:12:17 PM UTC+2, villas wrote: >>> >>> Suggestion: >>> Your idea of overriding the user's selections with random choices seems >>> strange. >>> Why not ask the user to specify a date and then show him which classes >>> are available nearest that date/time? >>> He can then choose one of those. >>> >>> >>> On Wednesday, 22 July 2020 19:04:27 UTC+1, mostwanted wrote: >>>> >>>> After a form has failed to save because that information already exists >>>> in the database I wanna try & alter the value that determines a day where >>>> the info is saved in the db for the form to be saved in a different day >>>> that does not contain similar form details currently attempting to be >>>> saved >>>> and this should be done automatically without the engaging the user E.G: >>>> >>>> >>>> def my_validator(form): >>>> control=['1', '2', '3', '4' ,'5'] >>>> form.vars.controller = random.choice(control) >>>> if db((db.lecture.id == form.vars.id) & (d.controller==form.vars. >>>> controller) & (db.lecture.lecture_time == form.vars.lecture_time)). >>>> count() >0: >>>> >>>> if int(form.vars.controller) < int(control[4]): >>>> int(form.vars.controller) +1 >>>> response.flash=T('Saved in',' ', int(form.vars.controller) >>>> +1) >>>> >>>> if int(form.vars.controller) > int(control[4]): >>>> int(form.vars.controller) -1 >>>> repsonse.flash=T('Saved in',' ', int(form.vars.controller) >>>> -1) >>>> >>>> else: >>>> form.errors.lecturer=SPAN("Record already exists in the whole >>>> database", _style="font-weight: bold;") >>>> >>>> The above code doesnt work but its the concept thats in my head, where >>>> can I fix it? >>>> >>>> >>>> On Tuesday, July 21, 2020 at 12:16:29 PM UTC+2, villas wrote: >>>>> >>>>> Your my_validator function iterates through the whole table. This is >>>>> OK when you have a few records, but very inefficient if you have >>>>> thousands/millions. Why not simply query the table? Something like >>>>> this... >>>>> >>>>> def my_validator(form): >>>>> if db((db.lecture.id == form.vars.id) & (db.lecture.lecture_time >>>>> == form.vars.lecture_time) >>>>> ).count() >0: >>>>> form.errors.lecturer=SPAN("Record already exists", >>>>> _style="font-weight: >>>>> bold;") >>>>> >>>>>
-- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/web2py/474f2a31-021e-4a17-8fb3-5294622dc7a3o%40googlegroups.com.