Example #1
0
def compare_language(request, *args, **kwargs):
    me = 'language'

    def single_lang(request, lang, *args, **kwargs):
        kwargs['slug'] = lang.slug
        return True, show_language(request, *args, **kwargs)

    def multi_lang(request, langs, *args, **kwargs):
        return False, (langs, [l.slug for l in langs])

    finished, payload = dispatch_langslugs(request, single_lang, multi_lang,
                                           *args, **kwargs)
    if finished:
        return payload
    langs, langslugs = payload

    if request.method == 'POST':
        comparison_type = request.POST.get('compare', kwargs.get('opt', None))
        same, different = _generate_comparison_type(comparison_type)

        # remove slugs from langslugs
        remove_langs = request.POST.getlist('removelang')
        if remove_langs:
            langslugs = [l for l in langslugs if l not in remove_langs]
            redirect_to = _generate_comparison_url(langslugs, comparison_type)
            return HttpResponseRedirect(redirect_to)

        if not len(langslugs):  # Nothing to compare
            raise Http404
        # Add a slug to langslugs
        return _compare(request, langslugs, comparison_type)

    comparison_type = kwargs.get('opt', request.GET.get('compare', None))
    same, different = _generate_comparison_type(comparison_type)
    cform = CompareTwoForm()
    _LOG.debug('0: %s', comparison_type)
    _LOG.debug('1: same %s, different %s', same, different)
    comparison = compare_languages(langs, same=same, different=different)
    _LOG.debug('Last: Features compared: %s (%s)', len(comparison),
               comparison_type)
    data = {
        'comparison': comparison,
        'me': me,
        'cform': cform,
        'langs': langs,
        'comparison_type': comparison_type,
    }
    return render(request, 'language_compare.html', data)
Example #2
0
def compare_language(request, *args, **kwargs):
    me = 'language'

    def single_lang(request, lang, *args, **kwargs):
        kwargs['slug'] = lang.slug
        return True, show_language(request, *args, **kwargs)

    def multi_lang(request, langs, *args, **kwargs):
        return False, (langs, [l.slug for l in langs])

    finished, payload = dispatch_langslugs(request, single_lang, multi_lang, *args, **kwargs)
    if finished:
        return payload
    langs, langslugs = payload

    if request.method == 'POST':
        comparison_type = request.POST.get('compare', kwargs.get('opt', None))
        same, different = _generate_comparison_type(comparison_type)

        # remove slugs from langslugs
        remove_langs = request.POST.getlist('removelang')
        if remove_langs:
            langslugs = [l for l in langslugs if l not in remove_langs]
            redirect_to = _generate_comparison_url(langslugs, comparison_type)
            return HttpResponseRedirect(redirect_to)

        if not len(langslugs): # Nothing to compare
            raise Http404
        # Add a slug to langslugs
        return _compare(request, langslugs, comparison_type)

    comparison_type = kwargs.get('opt', request.REQUEST.get('compare', None))
    same, different = _generate_comparison_type(comparison_type)
    cform = CompareTwoForm()
    _LOG.debug('0: %s', comparison_type)
    _LOG.debug('1: same %s, different %s', same, different)
    comparison = compare_languages(langs, same=same, different=different)
    _LOG.debug('Last: Features compared: %s (%s)', len(comparison), comparison_type)
    data = {
            'comparison': comparison,
            'me': me,
            'cform': cform,
            'langs': langs,
            'comparison_type': comparison_type,
            }
    return render(request, 'language_compare.html', data)
Example #3
0
 def multi_lang(request, langs, *args, **kwargs):
     comparison = compare_languages(langs, same=True, different=False)[1:]
     fvlist = [featureline[1] for featureline in comparison]
     return True, create_language(request, fvlist=fvlist, clone=True)
Example #4
0
 def multi_lang(request, langs, *args, **kwargs):
     comparison = compare_languages(langs, same=True, different=False)[1:]
     fvlist = [featureline[1] for featureline in comparison]
     return True, create_language(request, fvlist=fvlist, clone=True)