Ejemplo n.º 1
0
    def form_valid(self, form):
        blocks = {
            'ru': WordBlock.objects.create(),
            'en': WordBlock.objects.create(),
            'de': WordBlock.objects.create(),
        }

        for lang, block in blocks.items():
            for i in range(1, 4):
                value = form.cleaned_data.get('%s_value%s' % (lang, i))
                info = form.cleaned_data.get('%s_info%s' % (lang, i))
                if value:
                    Word.objects.create(
                        value=value,
                        info=info,
                        order=i,
                        lang=lang,
                        block=block,
                    )

        tag_name = form.cleaned_data.get('tag')
        tag, created = Tag.objects.get_or_create(name=tag_name)
        if created:
            tag.color = Tag.get_random_color()
            tag.save()

        Chain.objects.create(
            ru_block=blocks['ru'],
            en_block=blocks['en'],
            de_block=blocks['de'],
            part_speech=form.cleaned_data.get('part_speech'),
            tag=tag,
        )

        return super(AddView, self).form_valid(form)
Ejemplo n.º 2
0
    def create_chain(value, order, part_speech, tag_name):
        ru_word_block = WordBlock.objects.create()
        Word.objects.create(value=value, order=order, block=ru_word_block)

        en_word_block = WordBlock.objects.create()
        Word.objects.create(value=value, order=order, block=en_word_block)

        de_word_block = WordBlock.objects.create()
        Word.objects.create(value=value, order=order, block=de_word_block)

        part_speech = part_speech

        tag = Tag.objects.create(name=tag_name)
        tag.color = Tag.get_random_color()

        return Chain.objects.create(ru_block=ru_word_block,
                                    en_block=en_word_block,
                                    de_block=de_word_block,
                                    part_speech=part_speech,
                                    tag=tag)
Ejemplo n.º 3
0
    def form_valid(self, form):
        self.object = self.get_object()  # chain

        self.object.ru_block.words.all().delete()
        self.object.en_block.words.all().delete()
        self.object.de_block.words.all().delete()

        blocks = {
            'ru': self.object.ru_block,
            'en': self.object.en_block,
            'de': self.object.de_block,
        }

        for lang, block in blocks.items():
            for i in range(1, 4):
                value = form.cleaned_data.get('%s_value%s' % (lang, i))
                info = form.cleaned_data.get('%s_info%s' % (lang, i))
                if value:
                    Word.objects.create(
                        value=value,
                        info=info,
                        order=i,
                        lang=lang,
                        block=block,
                    )

        tag_name = form.cleaned_data.get('tag')
        tag, created = Tag.objects.get_or_create(name=tag_name)
        if created:
            tag.color = Tag.get_random_color()
            tag.save()

        self.object.tag = tag
        self.object.part_speech = form.cleaned_data.get('part_speech')
        self.object.save()

        return HttpResponseRedirect(self.get_success_url())