About the first problem: you can do:

linked_cards == db.userCard.with_alias('linked_cards')
groupCards = db(....).select(db.userCard.ALL,linked_cards.ALL      left=
linked_cards.on((linked_cards.card_id ==db.card.id))) 

I do not have a simple solution to the second problem. Let me think about 
it.




On Wednesday, 25 July 2012 08:43:01 UTC-5, jw wrote:
>
> Hi!
>
> I'm trying to develop a E-Learning-System. The idea is to give the student 
> a bunch of cards to learn every day.
> Therefore I have a table 'cards' which includes only the answer.
> Table 'userCard' includes the date when the user learnt the card the last 
> time and in which stage (multiplier for the timedelta) the card is for this 
> special user.
> Table 'subject' holds the name of the subject and table 'studyGroup' hold 
> the name of the studyGroup of the student.
>
> To get the cards for the day for this student in a special subject with 
> the answers for his studyGroup and with only the cards he didnt learn the 
> last days I tried the following select:
>
> groupCards = db((db.groupCards.card_id == db.card.id) \
>         & (db.groupCards.studyGroup_id == auth.user.studyGroup_id) \
>         & (session.chosenSubject_id == db.card.subject_id)     
>         & (db.userCard.stage <= 5) \
>         & (db.userCard.lastTimeLearned < (datetime.date.today() - datetime
> .timedelta(days=(1))))
>         & ((datetime.date.today()) <= db.userCard.lastTimeLearned) 
>         ).select(db.userCard.ALL, left=db.userCard.on((db.userCard.card_id 
> == db.card.id))) 
>
>
> I used the left outer join to include the cards, he never learned before. 
> The userCards are created later if they don't exist.
>
> Now I have the problem, that I have userCard before and in the select. In 
> the select, it seems, that I can't do the both querys and without them 
> before select, there is no card selected at all.
>
> The other problem is, that in timedelta, I would like to change the '1' 
> with db.userCard.stage, but I only get the exception, that I can't use a 
> field in timedelta.
>
> Any idea?
>
> P.S.: Sorry for my english ;o) 
>

-- 



Reply via email to