~azzar1/unity/add-show-desktop-key

« back to all changes in this revision

Viewing changes to lib/common/db.py

  • Committer: mattgiuca
  • Date: 2008-03-15 04:48:04 UTC
  • Revision ID: svn-v3-trunk0:2b9c9e99-6f39-0410-b283-7f802c844ae2:trunk:694
db: insert_problem_attempt now takes an exercisename and login name instead of
    DB ID keys. So it is higher level.
    It internally works out the problem ID and login ID before inserting.
tutorialservice: Now calls insert_problem_attempt passing the new arguments
    (again, tutorialservice does a lot less work now).

Show diffs side-by-side

added added

removed removed

Lines of Context:
455
455
 
456
456
        return d['problemid']
457
457
 
458
 
    def insert_problem_attempt(self, problemid, loginid, date, complete,
 
458
    def insert_problem_attempt(self, exercisename, login, date, complete,
459
459
        attempt, dry=False):
460
460
        """Inserts the details of a problem attempt into the database.
461
 
        problemid, loginid: Primary keys to map to the problem and login
462
 
            tables, respectively.
 
461
        exercisename: Name of the exercise. (identifier field of problem
 
462
            table). If this exercise does not exist, also creates a new row in
 
463
            the problem table for this exercise name.
 
464
        login: Name of the user submitting the attempt. (login field of the
 
465
            login table).
463
466
        date: struct_time, the date this attempt was made.
464
467
        complete: bool. Whether the test passed or not.
465
468
        attempt: Text of the attempt.
 
469
 
 
470
        Note: Even if dry, will still physically call get_problem_problemid,
 
471
        which may mutate the DB, and get_user_loginid, which may fail.
466
472
        """
 
473
        problemid = self.get_problem_problemid(exercisename)
 
474
        loginid = self.get_user_loginid(login)  # May raise a DBException
 
475
 
467
476
        return self.insert({
468
477
                'problemid': problemid,
469
478
                'loginid': loginid,