コード例 #1
0
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))
コード例 #2
0
ファイル: views.py プロジェクト: ifrh/Praktomat
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"  })
コード例 #3
0
ファイル: views.py プロジェクト: schlom/Praktomat-1
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"
                  })
コード例 #4
0
ファイル: views.py プロジェクト: t001/Praktomat
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))