scripts/stats.py
changeset 2218 84b0ce492cf5
parent 2151 f58515b0b2e1
child 2222 a91d55e9c9cd
equal deleted inserted replaced
2217:2c6ec0357149 2218:84b0ce492cf5
    24 
    24 
    25 import cPickle
    25 import cPickle
    26 import datetime
    26 import datetime
    27 import operator
    27 import operator
    28 import sys
    28 import sys
       
    29 import time
    29 
    30 
    30 import interactive
    31 import interactive
    31 
    32 
    32 
    33 
    33 def dateFetch(queryGen, last=None, batchSize=100):
    34 def dateFetch(queryGen, last=None, batchSize=100):
   201 
   202 
   202      entity = ReviewFollower(**properties)
   203      entity = ReviewFollower(**properties)
   203      result.append(entity)
   204      result.append(entity)
   204 
   205 
   205   return result
   206   return result
       
   207 
       
   208 
       
   209 def convertProposals(org):
       
   210   """Convert all proposals for the specified organization.
       
   211 
       
   212   Args:
       
   213     org: the organization for which all proposals will be converted
       
   214   """
       
   215 
       
   216   from soc.logic.models.student_proposal import logic as proposal_logic
       
   217   from soc.logic.models.student_project import logic as project_logic
       
   218 
       
   219   proposals = proposal_logic.getProposalsToBeAcceptedForOrg(org)
       
   220 
       
   221   for proposal in proposals:
       
   222     fields = {
       
   223         'link_id': 't%i' % (int(time.time()*100)),
       
   224         'scope_path': proposal.org.key().id_or_name(),
       
   225         'scope': proposal.organization,
       
   226         'program': proposal.program,
       
   227         'student': proposal.scope,
       
   228         'title': proposal.title,
       
   229         'abstract': proposal.abstract,
       
   230         'mentor': proposal.mentor,
       
   231         }
       
   232 
       
   233     project = project_logic.updateOrCreateFromFields(fields)
       
   234 
       
   235     fields = {
       
   236         'status':'accepted',
       
   237         }
       
   238     proposal_logic.updateEntityProperties(proposal, fields)
       
   239 
       
   240   fields = {
       
   241       'status': ['new', 'pending', 'invalid'],
       
   242       'org': org,
       
   243       }
       
   244 
       
   245   query = proposal_logic.getQueryForFields(filter)
       
   246   proposals = interactive.deepFetch(query)
       
   247 
       
   248   fields = {
       
   249       'status': 'rejected',
       
   250       }
       
   251 
       
   252   for proposal in proposals:
       
   253     proposal_logic.updateEntityProperties(proposal, fields)
   206 
   254 
   207 
   255 
   208 def loadPickle(name):
   256 def loadPickle(name):
   209   """Loads a pickle.
   257   """Loads a pickle.
   210   """
   258   """