Skip to content
Snippets Groups Projects
Select Git revision
  • b42b62b737d2fdf193194a17b96271c704a5869e
  • main default protected
  • ud_training_script
  • fix_seed
  • merged-with-ner
  • multiword_fix_transformer
  • transformer_encoder
  • combo3
  • save_deprel_matrix_to_npz
  • master protected
  • combo-lambo
  • lambo-sent-attributes
  • adding_lambo
  • develop
  • update_allenlp2
  • develop_tmp
  • tokens_truncation
  • LR_test
  • eud_iwpt
  • iob
  • eud_iwpt_shared_task_bert_finetuning
  • 3.3.1
  • list
  • 3.2.1
  • 3.0.3
  • 3.0.1
  • 3.0.0
  • v1.0.6
  • v1.0.5
  • v1.0.4
  • v1.0.3
  • v1.0.2
  • v1.0.1
  • v1.0.0
34 results

example.conllu

Blame
  • views.py 3.85 KiB
    from django.apps import apps
    from django.contrib.auth.decorators import login_required, permission_required
    from django.contrib.auth.models import User
    from django.contrib.contenttypes.models import ContentType
    from django.contrib.sites.shortcuts import get_current_site
    from django.http import JsonResponse
    from django.shortcuts import get_object_or_404, render, redirect
    from django.utils.translation import gettext_lazy as _
    from django.views.decorators.http import require_http_methods
    
    from common.decorators import ajax
    from users.forms import UserForm, UserProfileForm, NoteForm
    from users.models import Note
    from users.utils import send_new_user_email
    from django.conf import settings
    
    
    @permission_required('users.view_user')
    def user_list(request):
        return render(request, 'user_list.html', {'users': User.objects.order_by('username')})
    
    
    @login_required
    def user_profile(request):
        if request.method == 'POST':
            form = UserProfileForm(instance=request.user, data=request.POST)
            if form.is_valid():
                form.save()
                return redirect('dash')
        else:
            form = UserProfileForm(instance=request.user)
        return render(request, 'user_profile.html', {'form': form})
    
    
    @permission_required('users.add_user')
    def user_add(request):
        if request.method == 'POST':
            form = UserForm(instance=User(), data=request.POST)
            if form.is_valid():
                user = form.save()
                send_new_user_email(site=get_current_site(request), user=user, use_https=request.is_secure())
                return redirect('users:user_list')
        else:
            form = UserForm(instance=User())
        return render(request, 'user_form.html', {'form': form, 'title': _('Dodaj użytkownika')})
    
    
    @permission_required('users.change_user')
    def user_edit(request, pk):
        user = get_object_or_404(User, pk=pk)
        if request.method == 'POST':
            form = UserForm(instance=user, data=request.POST)
            if form.is_valid():
                form.save()
                return redirect('users:user_list')
        else:
            form = UserForm(instance=user)
        return render(request, 'user_form.html', {'form': form, 'title': _('Edytuj użytkownika')})
    
    
    @login_required
    def get_notes(request, model, pk, type):
        model = apps.get_model(*model.split('.'))
        subject = get_object_or_404(model, pk=pk)
        ct = ContentType.objects.get_for_model(model)
        notes = Note.objects.filter(subject_ct=ct, subject_id=subject.pk).for_user(request.user).order_by('created_at')
        if type:
            notes = notes.filter(type=type)
        return JsonResponse({
            "notes": [{
                "pk": note.pk,
                "owner_label": "własne" if note.author.pk is request.user.pk else note.author.username,
                "created_at": note.created_at,
                "title": note.title,
                "note": note.note,
                "type": note.type,
                "super": "Tak" if note.super else "Nie"
            } for note in notes],
        })
    
    
    @require_http_methods(["POST"])
    @login_required
    def add_note(request, model, pk, type=None):
        model = apps.get_model(*model.split('.'))
        subject = get_object_or_404(model, pk=pk)
        user = request.user
        if request.POST.get('super', 'off') == 'on' \
                and user.groups.filter(name=settings.SUPER_LEXICOGRAPHS_GROUP_NAME).exists():
            user = subject.assignments.first().user
        note = Note(author=user, subject=subject)
        if type:
            note.type = type
        form = NoteForm(instance=note, data=request.POST)
        if form.is_valid():
            form.save()
            return JsonResponse({})
        return JsonResponse(form.errors.get_json_data(), status=400)
    
    
    @require_http_methods(["DELETE"])
    @login_required
    def delete_note(request, pk, type=None):
        note = get_object_or_404(Note.objects.for_user(request.user), pk=pk, type=type) if type else \
            get_object_or_404(Note.objects.for_user(request.user), pk=pk)
        note.delete()
        return JsonResponse({})