def task_mass_assign_tasks(request, monitoring_pk): monitoring = get_object_or_404(Monitoring, pk = monitoring_pk) if not request.user.has_perm('exmo2010.admin_monitoring', monitoring): return HttpResponseForbidden(_('Forbidden')) organizations = Organization.objects.filter(monitoring = monitoring) title = _('Mass assign tasks') groups = [] for group_name in ['expertsA','expertsB','expertsB_manager']: group, created = Group.objects.get_or_create(name = group_name) groups.append(group) users = User.objects.filter(is_active = True).filter(groups__in = groups) log = [] if request.method == 'POST' and request.POST.has_key('organizations') and request.POST.has_key('users'): for organization_id in request.POST.getlist('organizations'): for user_id in request.POST.getlist('users'): try: user = User.objects.get(pk = (user_id)) organization = Organization.objects.get(pk = int(organization_id)) task = Task( user = user, organization = organization, status = Task.TASK_OPEN, ) task.full_clean() task.save() except ValidationError, e: log.append('; '.join(['%s: %s' % (i[0], ', '.join(i[1])) for i in e.message_dict.items()])) except Exception, e: log.append(e) else: log.append('%s: %s' % (user.userprofile.legal_name, organization.name))