def import_tutorial_assignment(request): """ View in the admin """ if request.method == 'POST': form = ImportTutorialAssignmentForm(request.POST, request.FILES) if form.is_valid(): file = form.files['csv_file'] reader = csv.reader(file, delimiter=str(form.cleaned_data['delimiter']), quotechar=str(form.cleaned_data['quotechar'])) succeded = failed = 0 for row in reader: try: user = User.objects.get( mat_number=row[form.cleaned_data['mat_coloum']]) tutorial = Tutorial.objects.get( name=row[form.cleaned_data['name_coloum']]) user.tutorial = tutorial user.save() succeded += 1 except: failed += 1 #assert False request.user.message_set.create( message="%i assignments were imported successfully, %i failed." % (succeded, failed)) return HttpResponseRedirect( urlresolvers.reverse('admin:accounts_user_changelist')) else: form = ImportTutorialAssignmentForm() return render_to_response( 'admin/accounts/user/import_tutorial_assignment.html', { 'form': form, 'title': "Import tutorial assignment" }, RequestContext(request))
def import_tutorial_assignment(request): """ View in the admin """ if request.method == 'POST': form = ImportTutorialAssignmentForm(request.POST, request.FILES) if form.is_valid(): file = form.files['csv_file'] reader = csv.reader(file, delimiter=str(form.cleaned_data['delimiter']), quotechar=str(form.cleaned_data['quotechar'])) succeded = not_present = failed = 0 for row in reader: try: matching_users = User.objects.filter(mat_number = row[form.cleaned_data['mat_coloum']]) if not matching_users.exists(): not_present += 1 continue user = matching_users.get() tutorial = Tutorial.objects.get(name = row[form.cleaned_data['name_coloum']]) user.tutorial = tutorial user.save() succeded += 1 except: failed += 1 #assert False messages.warning(request, "%i assignments were imported successfully, %i users not found, %i failed." % (succeded, not_present, failed)) return HttpResponseRedirect(urlresolvers.reverse('admin:accounts_user_changelist')) else: form = ImportTutorialAssignmentForm() return render(request, 'admin/accounts/user/import_tutorial_assignment.html', {'form': form, 'title':"Import tutorial assignment" })
def import_tutorial_assignment(request): """ View in the admin """ if request.method == 'POST': form = ImportTutorialAssignmentForm(request.POST, request.FILES) if form.is_valid(): file = form.files['csv_file'] file.seek(0) try: reader = csv.reader( io.StringIO(file.read().decode('utf-8')), delimiter=str(form.cleaned_data['delimiter']), quotechar=str(form.cleaned_data['quotechar'])) except UnicodeDecodeError as e: messages.error(request, "Import failed: %s" % str(e)) return render( request, 'admin/accounts/user/import_tutorial_assignment.html', { 'form': form, 'title': "Import tutorial assignment" }) succeeded = not_present = failed = 0 for row in reader: try: matching_users = User.objects.filter( mat_number=row[form.cleaned_data['mat_coloum']]) if not matching_users.exists(): not_present += 1 continue user = matching_users.get() tutorial = Tutorial.objects.get( name=row[form.cleaned_data['name_coloum']]) user.tutorial = tutorial user.save() succeeded += 1 except: failed += 1 #assert False messages.warning( request, "%i assignments were imported successfully, %i users not found, %i failed." % (succeeded, not_present, failed)) return HttpResponseRedirect( reverse('admin:accounts_user_changelist')) else: form = ImportTutorialAssignmentForm() return render(request, 'admin/accounts/user/import_tutorial_assignment.html', { 'form': form, 'title': "Import tutorial assignment" })
def import_tutorial_assignment(request): """ View in the admin """ if request.method == 'POST': form = ImportTutorialAssignmentForm(request.POST, request.FILES) if form.is_valid(): file = form.files['csv_file'] reader = csv.reader(file, delimiter=str(form.cleaned_data['delimiter']), quotechar=str(form.cleaned_data['quotechar'])) succeded = failed = 0 for row in reader: try: user = User.objects.get(mat_number = row[form.cleaned_data['mat_coloum']]) tutorial = Tutorial.objects.get(name = row[form.cleaned_data['name_coloum']]) user.tutorial = tutorial user.save() succeded += 1 except: failed += 1 #assert False request.user.message_set.create(message="%i assignments were imported successfully, %i failed." % (succeded, failed)) return HttpResponseRedirect(urlresolvers.reverse('admin:accounts_user_changelist')) else: form = ImportTutorialAssignmentForm() return render_to_response('admin/accounts/user/import_tutorial_assignment.html', {'form': form, 'title':"Import tutorial assignment" }, RequestContext(request))