equal
deleted
inserted
replaced
25 from google.appengine.ext import db |
25 from google.appengine.ext import db |
26 from google.appengine.api import users |
26 from google.appengine.api import users |
27 from soc.logic.models.job import logic as job_logic |
27 from soc.logic.models.job import logic as job_logic |
28 from soc.logic.models.priority_group import logic as priority_logic |
28 from soc.logic.models.priority_group import logic as priority_logic |
29 from soc.logic.models.user import logic as user_logic |
29 from soc.logic.models.user import logic as user_logic |
30 from soc.models.user import User |
|
31 |
30 |
32 |
31 |
33 # amount of users to create jobs for before updating |
32 # amount of users to create jobs for before updating |
34 DEF_USER_STEP_SIZE = 10 |
33 DEF_USER_STEP_SIZE = 10 |
35 |
34 |
45 the address is not a valid/existing google account. |
44 the address is not a valid/existing google account. |
46 """ |
45 """ |
47 user = users.User(address) |
46 user = users.User(address) |
48 key = TempUserWithUniqueId(user=user).put() |
47 key = TempUserWithUniqueId(user=user).put() |
49 obj = TempUserWithUniqueId.get(key) |
48 obj = TempUserWithUniqueId.get(key) |
|
49 # pylint: disable-msg=E1103 |
50 return (obj, obj.user.user_id()) |
50 return (obj, obj.user.user_id()) |
51 |
51 |
52 |
52 |
53 def setupUniqueUserIdAdder(job_entity): |
53 def setupUniqueUserIdAdder(job_entity): |
54 """Job that setup jobs that will add unique user ids to all Users. |
54 """Job that setup jobs that will add unique user ids to all Users. |
56 Args: |
56 Args: |
57 job_entity: a Job entity with key_data set to |
57 job_entity: a Job entity with key_data set to |
58 [last_completed_user] |
58 [last_completed_user] |
59 """ |
59 """ |
60 |
60 |
61 from soc.cron.job import FatalJobError |
61 key_data = job_entity.key_data |
62 |
|
63 user_fields = {'user_id': None} |
62 user_fields = {'user_id': None} |
64 |
63 |
65 if len(key_data) == 1: |
64 if len(key_data) == 1: |
66 # start where we left off |
65 # start where we left off |
67 user_fields['__key__ >'] = key_data[0] |
66 user_fields['__key__ >'] = key_data[0] |
68 |
67 |
69 m_users = user_logic.getForFields(user_fields, |
68 m_users = user_logic.getForFields(user_fields, |
91 |
90 |
92 # update our own job |
91 # update our own job |
93 last_user_key = m_users[-1].key() |
92 last_user_key = m_users[-1].key() |
94 |
93 |
95 if len(key_data) == 1: |
94 if len(key_data) == 1: |
96 key_data[0] = last_student_key |
95 key_data[0] = last_user_key |
97 else: |
96 else: |
98 key_data.append(last_student_key) |
97 key_data.append(last_user_key) |
99 |
98 |
100 updated_job_fields = {'key_data': key_data} |
99 updated_job_fields = {'key_data': key_data} |
101 job_logic.updateEntityProperties(job_entity, updated_job_fields) |
100 job_logic.updateEntityProperties(job_entity, updated_job_fields) |
102 |
101 |
103 # rinse and repeat |
102 # rinse and repeat |
104 user_fields['__key__ >'] = last_user_key |
103 user_fields['__key__ >'] = last_user_key |
105 m_users = student_logic.getForFields(user_fields, |
104 m_users = user_logic.getForFields(user_fields, |
106 limit=DEF_USER_STEP_SIZE) |
105 limit=DEF_USER_STEP_SIZE) |
107 |
106 |
108 # we are finished |
107 # we are finished |
109 return |
108 return |
110 |
109 |
111 |
110 |