scripts/stats.py
changeset 2245 46e490606f3d
parent 2234 69539a5ca63a
child 2262 5b0576dcc107
equal deleted inserted replaced
2244:96d8083cf974 2245:46e490606f3d
   270       'key_data': [program_entity.key()]}
   270       'key_data': [program_entity.key()]}
   271 
   271 
   272   job_logic.updateOrCreateFromFields(job_fields)
   272   job_logic.updateOrCreateFromFields(job_fields)
   273 
   273 
   274 
   274 
       
   275 def deleteEntities(model, step_size=25):
       
   276   """Deletes all entities of the specified type
       
   277   """
       
   278 
       
   279   print "Deleting..."
       
   280   count = 0
       
   281 
       
   282   while True:
       
   283     entities = model.all().fetch(step_size)
       
   284 
       
   285     if not entities:
       
   286       break
       
   287 
       
   288     for entity in entities:
       
   289       entity.delete()
       
   290 
       
   291     count += step_size
       
   292 
       
   293     print "deleted %d entities" % count
       
   294 
       
   295   print "Done"
       
   296 
   275 def loadPickle(name):
   297 def loadPickle(name):
   276   """Loads a pickle.
   298   """Loads a pickle.
   277   """
   299   """
   278 
   300 
   279   f = open(name + '.dat')
   301   f = open(name + '.dat')
   297   from soc.models.organization import Organization
   319   from soc.models.organization import Organization
   298   from soc.models.user import User
   320   from soc.models.user import User
   299   from soc.models.student import Student
   321   from soc.models.student import Student
   300   from soc.models.mentor import Mentor
   322   from soc.models.mentor import Mentor
   301   from soc.models.org_admin import OrgAdmin
   323   from soc.models.org_admin import OrgAdmin
       
   324   from soc.models.job import Job
       
   325   from soc.models.student_proposal import StudentProposal
       
   326   from soc.models.student_project import StudentProject
   302 
   327 
   303   def slotSaver(org, value):
   328   def slotSaver(org, value):
   304     org.slots = value
   329     org.slots = value
   305   def popSaver(org, value):
   330   def popSaver(org, value):
   306     org.nr_applications = value
   331     org.nr_applications = value
   311       'load': loadPickle,
   336       'load': loadPickle,
   312       'dump': dumpPickle,
   337       'dump': dumpPickle,
   313       'orgStats': orgStats,
   338       'orgStats': orgStats,
   314       'printPopularity': printPopularity,
   339       'printPopularity': printPopularity,
   315       'saveValues': saveValues,
   340       'saveValues': saveValues,
       
   341       'getEntities': getEntities,
       
   342       'deleteEntities': deleteEntities,
   316       'getOrgs': getEntities(Organization),
   343       'getOrgs': getEntities(Organization),
   317       'getUsers': getEntities(User),
   344       'getUsers': getEntities(User),
   318       'getStudents': getEntities(Student),
   345       'getStudents': getEntities(Student),
   319       'getMentors': getEntities(Mentor),
   346       'getMentors': getEntities(Mentor),
   320       'getOrgAdmins': getEntities(OrgAdmin),
   347       'getOrgAdmins': getEntities(OrgAdmin),
   321       'getProps': getProps,
   348       'getProps': getProps,
   322       'countStudentsWithProposals': countStudentsWithProposals,
   349       'countStudentsWithProposals': countStudentsWithProposals,
   323       'convertProposals': convertProposals,
   350       'convertProposals': convertProposals,
   324       'addFollower': addFollower,
   351       'addFollower': addFollower,
   325       'Organization': Organization,
   352       'Organization': Organization,
       
   353       'Job': Job,
   326       'User': User,
   354       'User': User,
   327       'Student': Student,
   355       'Student': Student,
   328       'Mentor': Mentor,
   356       'Mentor': Mentor,
   329       'OrgAdmin': OrgAdmin,
   357       'OrgAdmin': OrgAdmin,
       
   358       'StudentProject': StudentProject,
       
   359       'StudentProposal': StudentProposal,
   330       'slotSaver': slotSaver,
   360       'slotSaver': slotSaver,
   331       'popSaver': popSaver,
   361       'popSaver': popSaver,
   332       'rawSaver': rawSaver,
   362       'rawSaver': rawSaver,
   333       'startSpam': startSpam,
   363       'startSpam': startSpam,
   334   }
   364   }