示例#1
0
def entry_edit(request, pk):
    post = get_object_or_404(Entry, pk=pk)
    if request.method == "POST":
        form = entryForm(request.POST, instance=post)
        if form.is_valid():
            entry = form.save(commit=False)
            entry.save()
            return redirect('entry_detail', pk=entry.pk)
    else:
        form = entryForm(instance=post)
    return render(request, 'Database/entry_edit.html', {'form': form})
示例#2
0
def entry_new(request, pk):
    if request.method == "POST":
        form = entryForm(request.POST)
        if form.is_valid():
            entry = form.save(commit=False)
            entry.dictionary = Dictionary.objects.get(id=pk)
            entry.save()
            #print >> sys.stderr, "saved word: ", entry.word
            return redirect('entry_detail', pk=entry.pk)
    else:
        form = entryForm()

    return render(request, 'Database/entry_edit.html', {'form': form})
示例#3
0
def entry_detail(request, pk):
    form = entryForm()
    entry = Entry.objects.get(id=pk)
    return render(request, 'Database/entry_detail.html', {
        'form': form,
        'entry': entry
    })
示例#4
0
def entry_list2(request):
    file = request.FILES['myfile']  # this is my file
    contentOfFile = file.read()
    form = entryForm()
    entries = []

    try:
        #print("FILE:", contentOfFile, file=sys.stderr)
        # print >> sys.stderr, "FILE: ", contentOfFile
        logging.info('File: ', contentOfFile)
        data = simplejson.loads(contentOfFile)
    except ValueError:
        # messages.error(request, "Something wrong with JSON format")
        messages.warning(request, 'Wrong JSON format.')
        # return JsonResponse({'status': 'false', 'message': "didnt parse a correct JSON file"}, status=500)
        # return render(request, 'Database/index.html')
        return HttpResponseRedirect('/Database/')
    else:
        # contentOfFile.encode('utf-8')
        # print >> sys.stderr, "data: ", data
        #d = Dictionary.objects.create(language="test")
        #d.save()

        for item in data:
            #print >> sys.stderr, "item: ", item
            logging.info('item: ', item)
            #            print >> sys.stderr, item['word']
            e = Entry.objects.create(dictionary=d)

            for key in item:
                #print >> sys.stderr, key, ": ", item[key]
                logging.info('key: ', item[key])
                if (key == 'database'):
                    d = Entry.objects.get_or_create(pk=item[key])
                    e.__setattr__(key, d)
                else:
                    e.__setattr__(key, item[key])
            e.get_HFW()
            e.save()

            #print >> sys.stderr, e.word
            logging.info(e.word)
            e.refresh_from_db()
            #print >> sys.stderr, e.get_entry()
            logging.info(e.get_entry())
            entries = Entry.objects.filter(dictionary__language='test')

        return render(request, 'Database/entry_list.html', {
            'file': file,
            'entries': entries,
            'form': form,
            'id': d.pk
        })
示例#5
0
def wordout_add_distractor(request, rpk, gpk):
    #print >> sys.stderr, rpk, gpk
    gametype = GameType.objects.get(pk=gpk)
    rule = LinguisticRule.objects.get(pk=rpk)
    if request.method == 'POST':
        distractor = request.POST.get('rules')
        return redirect('wordout_add_question', rpk=rpk, gpk=gpk, dpk=distractor)


    rform = rulesForm()
    lform = linguisticsRForm(instance=rule)
    wform = entryForm()
    entries = list()
    entries,message = get_entries_that_match(instance=rule)
    num_entries = len(entries)
    messages.warning(request, message)


    return render(request, 'Wordout/wordout_add_distractor.html',
                  {'gametype': gametype, 'rule': rule,
                   'rform': rform, 'lform': lform,
                   'entries': entries, 'wform': wform,'num_entries': num_entries
                   })
示例#6
0
def wordout_add_question(request,rpk,gpk,dpk):
    #print >> sys.stderr, rpk, gpk, dpk
    gametype = GameType.objects.get(pk=gpk)
    rule = LinguisticRule.objects.get(pk=rpk)
    distractor = LinguisticRule.objects.get(pk=dpk)
    if request.method == 'POST':
        #print >> sys.stderr, request.method
        question = request.POST.get('question')
        name = request.POST.get('name')
        association = AssociationTable.objects.create()
        association.name = name
        association.gameType = gametype
        association.linguistic_rule_input = rule
        association.linguistic_rule_output = distractor
        association.question = question
        association.save()
        #print >> sys.stderr, association
        return redirect('wordout_print', pk=association.pk)

    rform = rulesForm()
    lform = linguisticsRForm(instance=rule)
    wform = entryForm()
    entries = list()
    entries, message1 = get_entries_that_match(instance=rule)
    num_entries = len(entries)
    distractors = list()
    distractors, message2 = get_entries_that_match(instance=distractor)
    num_distractors = len(distractors)
    messages.warning(request, message1+message2)

    return render(request, 'Wordout/wordout_add_question.html',
                  {'gametype': gametype, 'rule': rule,
                   'rform': rform, 'lform': lform,
                   'entries': entries, 'wform': wform,'num_entries': num_entries,
                   'distractor': distractor,
                   'distractors': distractors, 'num_distractors': num_distractors
                   })
示例#7
0
def entry_list(request):
    file = request.FILES['myfile']  # this is my file
    contentOfFile = file.read()
    form = entryForm()
    entries = []
    created = 0
    created_total = 0

    try:
        print >> sys.stderr, "FILE: ", contentOfFile
        data = simplejson.loads(contentOfFile)
    except ValueError:
        # messages.error(request, "Something wrong with JSON format")
        messages.warning(request, 'Wrong JSON format.')
        # return JsonResponse({'status': 'false', 'message': "didnt parse a correct JSON file"}, status=500)
        # return render(request, 'Database/index.html')
        return HttpResponseRedirect('/Database/')
    else:
        # contentOfFile.encode('utf-8')
        #print >> sys.stderr, "data: ", data
        logging.info('data:', data)
        #d = Dictionary.objects.create(language="test")
        #d.save()

        #print >> sys.stderr, "first item: ", data[0]
        logging.info("first item: ", data[0])
        #print >> sys.stderr, "first dictionary: ", data[0]['dictionary']
        #(d,created) = Dictionary.objects.get_or_create(id = data[0]['dictionary'])
        all_dicts = Dictionary.objects.all()
        for d in all_dicts:
            d.delete()

        d = Dictionary.objects.create()
        #print >> sys.stderr, "dictionary name: ", d.language
        logging.info("dictionary name: ", d.language)
        #print >> sys.stderr, "Needed to create a new dictionary?: ", created
        logging.info("Needed to create a new dictionary?: ", created)

        for item in data:
            #    print >> sys.stderr, "item: ", item
            logging.info(sys.stderr, "item: ", item)
            #print >> sys.stderr, "item.id: ", item['id']
            # (e,created) = Entry.objects.get_or_create(id = item['id'],dictionary=d)
            e = Entry.objects.create()
            e.dictionary = d
            e.__setattr__('word', item['Word'])
            e.__setattr__('gr', item['gr'])
            e.__setattr__('ph', item['ph'])
            e.__setattr__('CVC', item['CVC'])
            e.save()
            e.get_HFW()
            e.save()
            #print >> sys.stderr, "created: ", created
            created_total += created

        #print >> sys.stderr, "new entries created: ", created_total
        entries = Entry.objects.filter(dictionary=d.pk)
        #print >> sys.stderr, "Entries: ", entries
        num_entries = len(entries)
        return render(
            request, 'Database/entry_list.html', {
                'file': file,
                'entries': entries,
                'form': form,
                'd': d,
                'id': d.pk,
                'num_entries': num_entries
            })