scripts/stats.py
changeset 2222 a91d55e9c9cd
parent 2218 84b0ce492cf5
child 2234 69539a5ca63a
equal deleted inserted replaced
2221:1177ab97c2f0 2222:a91d55e9c9cd
   220 
   220 
   221   for proposal in proposals:
   221   for proposal in proposals:
   222     fields = {
   222     fields = {
   223         'link_id': 't%i' % (int(time.time()*100)),
   223         'link_id': 't%i' % (int(time.time()*100)),
   224         'scope_path': proposal.org.key().id_or_name(),
   224         'scope_path': proposal.org.key().id_or_name(),
   225         'scope': proposal.organization,
   225         'scope': proposal.org,
   226         'program': proposal.program,
   226         'program': proposal.program,
   227         'student': proposal.scope,
   227         'student': proposal.scope,
   228         'title': proposal.title,
   228         'title': proposal.title,
   229         'abstract': proposal.abstract,
   229         'abstract': proposal.abstract,
   230         'mentor': proposal.mentor,
   230         'mentor': proposal.mentor,
   231         }
   231         }
   232 
   232 
   233     project = project_logic.updateOrCreateFromFields(fields)
   233     project = project_logic.updateOrCreateFromFields(fields, silent=True)
   234 
   234 
   235     fields = {
   235     fields = {
   236         'status':'accepted',
   236         'status':'accepted',
   237         }
   237         }
   238     proposal_logic.updateEntityProperties(proposal, fields)
   238 
       
   239     proposal_logic.updateEntityProperties(proposal, fields, silent=True)
   239 
   240 
   240   fields = {
   241   fields = {
   241       'status': ['new', 'pending', 'invalid'],
   242       'status': ['new', 'pending'],
   242       'org': org,
   243       'org': org,
   243       }
   244       }
   244 
   245 
   245   query = proposal_logic.getQueryForFields(filter)
   246   querygen = lambda: proposal_logic.getQueryForFields(fields)
   246   proposals = interactive.deepFetch(query)
   247   proposals = [i for i in interactive.deepFetch(querygen)]
       
   248 
       
   249   print "rejecting %d proposals" % len(proposals)
   247 
   250 
   248   fields = {
   251   fields = {
   249       'status': 'rejected',
   252       'status': 'rejected',
   250       }
   253       }
   251 
   254 
   252   for proposal in proposals:
   255   for proposal in proposals:
   253     proposal_logic.updateEntityProperties(proposal, fields)
   256     proposal_logic.updateEntityProperties(proposal, fields, silent=True)
   254 
   257 
   255 
   258 
   256 def loadPickle(name):
   259 def loadPickle(name):
   257   """Loads a pickle.
   260   """Loads a pickle.
   258   """
   261   """
   299       'getStudents': getEntities(Student),
   302       'getStudents': getEntities(Student),
   300       'getMentors': getEntities(Mentor),
   303       'getMentors': getEntities(Mentor),
   301       'getOrgAdmins': getEntities(OrgAdmin),
   304       'getOrgAdmins': getEntities(OrgAdmin),
   302       'getProps': getProps,
   305       'getProps': getProps,
   303       'countStudentsWithProposals': countStudentsWithProposals,
   306       'countStudentsWithProposals': countStudentsWithProposals,
       
   307       'convertProposals': convertProposals,
   304       'addFollower': addFollower,
   308       'addFollower': addFollower,
   305       'Organization': Organization,
   309       'Organization': Organization,
   306       'User': User,
   310       'User': User,
   307       'Student': Student,
   311       'Student': Student,
   308       'Mentor': Mentor,
   312       'Mentor': Mentor,