Esempio n. 1
0
File: views.py Progetto: jamslevy/PQ
	def get_proficiencies(self):
	    from model.user import QuizTaker
	    qt = QuizTaker.get_by_key_name(self.profile.unique_identifier)
	    proficiency_levels = qt.proficiency_levels
	    self.proficiencies = []
	    for pl in proficiency_levels:
	        self.proficiencies.append({'name': pl.proficiency.name, 'key': pl.proficiency.key()})
Esempio n. 2
0
def delete_user(user_key):
  # check in case entity was sent
  if type(user_key).__name__ == "Profile":
    user_key = user_key.key()
  # this will only work with dummy users
  # does not yet get links, etc.
  # best for after messing up and creating a wrong user   
  from model.account import Account
  from model.user import Profile, QuizTaker
  from model.activity import ActivityProfile, UserTopicScores, PostedLink, Scoop, SharedItem
  from model.sponsor import Sponsor, Pledge
  from model.student import Student
  from model.timeline import ProfileTimeline
  
  delete = []    
  p = Profile.get(user_key)
  if p:
    delete.append(p)
  else:
    logging.error('unable to delete user. User key %s not found' % user_key)
    return False
  student = p.student.get()
  if student:
    delete.append(student)
    delete.extend(student.pledges.fetch(50))
  sponsor = p.sponsor.get()
  if sponsor:
    delete.append(sponsor)
    delete.extend(sponsor.pledges.fetch(50))
  key_name = p.key().name()
  failed_links = []
  activity_profiles = p.activity_profiles.fetch(5)
  for a in activity_profiles:
    if a:  
      delete.append(a)
      links = a.links.fetch(1000)
      failed_links.extend(links)
  delete_links(failed_links)
  ts = p.topic_scores.get()
  if ts:
    delete.append(ts)
  ac = Account.get_by_key_name(key_name)
  if ac:
    delete.append(ac)
  shared_items = p.shared_items.fetch(300)
  if shared_items:
    delete.extend(shared_items)
  pt = p.timeline.get()
  if pt:
    delete.append(pt)
  qt = QuizTaker.get_by_key_name(key_name)
  if qt:
    delete.append(qt)
  
  delete.extend(Scoop.all().filter(
    'scooper IN', [a.key() for a in activity_profiles]).fetch(1000))
  delete.extend(Scoop.all().filter(
    'scooped IN', [a.key() for a in activity_profiles]).fetch(1000))                      
  logging.error('deleting %d entities - %s' % (len(delete), str([e.key() for e in delete])))
  db.delete(delete)
Esempio n. 3
0
 def refresh_scores(self, verbose):
     scores = []
     json_file = open(ROOT_PATH + "/data/item_scores.json")
     json_str = json_file.read()
     newdata = simplejson.loads(json_str)  # Load JSON file as object
     # Retrieve Proficiency. If new, then save it.
     for item in newdata:
         # Store Item in Datastore
         if item["type"] == "trash":
             continue
         if item["type"] == "temp":
             continue
         this_taker = QuizTaker.get(item["quiz_taker"]["key"])
         this_vendor = Employer.get(item["vendor"]["key"])
         this_item = QuizItem.get(item["quiz_item"]["key"])
         score = ItemScore(
             quiz_taker=this_taker,
             picked_answer=item["picked_answer"],
             correct_answer=item["correct_answer"],
             score=item["score"],
             quiz_item=this_item,
             vendor=this_vendor,
             type=item["type"],
         )
         # Add List of Answers
         scores.append(score)
         if verbose[0] == "loud":
             print encode(score)
     db.put(scores)  # save scores
Esempio n. 4
0
File: rpc.py Progetto: jamslevy/PQ
  def set_awards(self, *args):
	from utils.appengine_utilities.sessions import Session
  	self.session = Session()
  	if not self.session['user']: return "Not Logged In"
  	from accounts.methods import Awards
  	from model.user import QuizTaker
  	awards = Awards()
  	return awards.check_all( QuizTaker.get_by_key_name(self.session['user'].unique_identifier) )
Esempio n. 5
0
File: rpc.py Progetto: jamslevy/PQ
  def set_levels(self, *args):
	from utils.appengine_utilities.sessions import Session
  	self.session = Session()
  	if not self.session['user']: return "Not Logged In"
  	from quiztaker.methods import ProficiencyLevels
  	from model.user import QuizTaker
  	pl = ProficiencyLevels()
  	return pl.set_for_user( QuizTaker.get_by_key_name(self.session['user'].unique_identifier) )
Esempio n. 6
0
    def set_all(self):  # Set levels for all users -- this can't *actually*  be used.
        return  # Deprecated
        from ranking.methods import TopicLevelData, ProficiencyLevelData

        quiz_takers = QuizTaker.all().fetch(1000)  # this can only do a thousand at a time
        ptl = TopicLevelData()
        for qt in quiz_takers:
            ptl.set(qt)
        pl = ProficiencyLevelData()
        for qt in quiz_takers:
            pl.set(qt)