site_deploy_lookup = defaultdict(list)
for site_deployment in site_deployments:
site_deploy_lookup[site_deployment.site].append(site_deployment.deployment)
-
- user_deployments = []
- for user in User.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None)):
+
+ user_deploy_lookup = defaultdict(list)
+ for user_deployment in UserDeployments.objects.all():
+ user_deploy_lookup[user_deployment.user].append(user_deployment.deployment)
+
+ user_deployments = []
+ for user in User.objects.filter():
if user.is_admin:
# admins should have an account at all deployments
expected_deployments = deployments
# normal users should have an account at their site's deployments
expected_deployments = site_deploy_lookup[user.site]
for expected_deployment in expected_deployments:
- ud = UserDeployments(user=user, deployment=expected_deployment)
- user_deployments.append(ud)
+ if not user in user_deploy_lookup or \
+ expected_deployment not in user_deploy_lookup[user]:
+ # add new record
+ ud = UserDeployments(user=user, deployment=expected_deployment)
+ user_deployments.append(ud)
+ #else:
+ # # update existing record
+ # ud = UserDeployments.objects.get(user=user, deployment=expected_deployment)
+ # user_deployments.append(ud)
return user_deployments
# user_driver.create_keypair(**key_fields)
user_deployment.save()
+ user = User.objects.get(id=user_deployment.user.id)
+ user.save()