Exemplo n.º 1
0
def translate_from_scratch(request,
                           source,
                           target,
                           title,
                           aid,
                           template_name="wt_articles/translate_form.html"):
    """
    Loads a source article by provided article id (aid) and generates formsets
    to contain each sentence in the requested translation.
    """
    sa_set = SourceArticle.objects.filter(id=aid)
    if len(sa_set) < 1:
        no_match = True
        return render_to_response(template_name, {"no_match": True},
                                  context_instance=RequestContext(request))
    article = sa_set[0]
    ss_list = article.sourcesentence_set.all()
    TranslatedSentenceSet = formset_factory(TranslatedSentenceMappingForm,
                                            extra=0)

    if request.method == "POST":
        formset = TranslatedSentenceSet(request.POST, request.FILES)
        if formset.is_valid():
            ts_list = []
            ta = TranslatedArticle()
            for form in formset.forms:
                ss = form.cleaned_data['source_sentence']
                text = form.cleaned_data['text']
                ts = TranslatedSentence(
                    segment_id=ss.segment_id,
                    source_sentence=ss,
                    text=text,
                    translated_by=request.user.username,
                    translation_date=datetime.now(),
                    language=target,
                    best=True,  ### TODO figure something better out
                    end_of_paragraph=ss.end_of_paragraph)
                ts_list.append(ts)
            ta.article = ss.article
            ta.title = ss.article.title
            ta.timestamp = datetime.now()
            ta.language = target
            ta.save()
            for ts in ts_list:
                ts.save()
            ta.sentences = ts_list
            ta.save()
            return HttpResponseRedirect(ta.get_absolute_url())
    else:
        initial_ss_set = [{'source_sentence': s} for s in ss_list]
        formset = TranslatedSentenceSet(initial=initial_ss_set)
    for form, s in zip(formset.forms, ss_list):
        form.fields['text'].label = s.text

    return render_to_response(template_name, {
        "formset": formset,
        "title": article.title,
    },
                              context_instance=RequestContext(request))
Exemplo n.º 2
0
def translate_from_scratch(request, source, target, title, aid,
                           template_name="wt_articles/translate_form.html"):
    """
    Loads a source article by provided article id (aid) and generates
    formsets to contain each sentence in the requested translation.
    """
    sa_set = SourceArticle.objects.filter(id=aid)
    if len(sa_set) < 1:
        return render_to_response(template_name,
                                  {"no_match": True},
                                  context_instance=RequestContext(request))
    article = sa_set[0]
    ss_list = article.sourcesentence_set.all()
    TranslatedSentenceSet = formset_factory(TranslatedSentenceMappingForm,
                                            extra=0)

    if request.method == "POST":
        formset = TranslatedSentenceSet(request.POST, request.FILES)
        if formset.is_valid():
            ts_list = []
            trans_art = TranslatedArticle()
            for form in formset.forms:
                src_sent = form.cleaned_data['source_sentence']
                text = form.cleaned_data['text']
                trans_sent = TranslatedSentence(
                    segment_id=src_sent.segment_id,
                    source_sentence=src_sent,
                    text=text,
                    translated_by=request.user.username,
                    translation_date=datetime.now(),
                    language=target,
                    best=True,
                    end_of_paragraph=src_sent.end_of_paragraph)
                ts_list.append(trans_sent)
            trans_art.article = src_sent.article
            trans_art.title = src_sent.article.title
            trans_art.timestamp = datetime.now()
            trans_art.language = target
            trans_art.save()
            for trans_sent in ts_list:
                trans_sent.save()
            trans_art.sentences = ts_list
            trans_art.save()
            return HttpResponseRedirect(trans_art.get_absolute_url())
    else:
        initial_ss_set = [{'source_sentence': s} for s in ss_list]
        formset = TranslatedSentenceSet(initial=initial_ss_set)
    for form, sent in zip(formset.forms, ss_list):
        form.fields['text'].label = sent.text

    return render_to_response(template_name, {
        "formset": formset,
        "title": article.title,
    }, context_instance=RequestContext(request))
Exemplo n.º 3
0
def translate_from_scratch(request, source, target, title, aid, template_name="wt_articles/translate_form.html"):
    """
    aid in this context is the source article id
    """
    sa_set = SourceArticle.objects.filter(id=aid)
    if len(sa_set) < 1:
        no_match = True
        return render_to_response(template_name,
                                  {"no_match": True},
                                  context_instance=RequestContext(request))
    article = sa_set[0]
    ss_list = article.sourcesentence_set.all()
    TranslatedSentenceSet = formset_factory(TranslatedSentenceMappingForm, extra=0)
    if request.method == "POST":
        formset = TranslatedSentenceSet(request.POST, request.FILES)
        if formset.is_valid():
            ts_list = []
            ta = TranslatedArticle()
            for form in formset.forms:
                ss = form.cleaned_data['source_sentence']
                text = form.cleaned_data['text']
                ts = TranslatedSentence(segment_id=ss.segment_id,
                                        source_sentence=ss,
                                        text=text,
                                        translated_by=request.user.username,
                                        translation_date=datetime.now(),
                                        language=target,
                                        best=True, ### TODO figure something better out
                                        end_of_paragraph=ss.end_of_paragraph)
                ts_list.append(ts)
            ta.article = ss.article
            ta.title = ss.article.title
            ta.timestamp = datetime.now()
            ta.language = target
            ta.save()
            for ts in ts_list:
                ts.save()
            ta.sentences = ts_list
            ta.save()
            return HttpResponseRedirect(ta.get_absolute_url())
    else:
        initial_ss_set = [{'source_sentence': s} for s in ss_list]
        formset = TranslatedSentenceSet(initial=initial_ss_set)
    for form,s in zip(formset.forms,ss_list):
        form.fields['text'].label = s.text
    
    return render_to_response(template_name, {
        "formset": formset,
        "title": article.title,
    }, context_instance=RequestContext(request))