Exemplo n.º 1
0
def create_menu(request, library_code, managed_libraries=[]):
    library = org_utils.get_library(library_code, managed_libraries)
    if not library:
        return HttpResponseForbidden(
            u'Вы должны быть сотрудником этой организации')

    if request.method == 'POST':

        menu_form = MenuForm(request.POST, prefix='menu_form')
        if menu_form.is_valid():
            menu = menu_form.save(commit=False)
            menu.library = library
            root_item = MenuItem()
            root_item.save()
            menu.root_item = root_item
            menu.save()
            return redirect('participant_menu:administration:menu_list',
                            library_code=library_code)
    else:
        menu_form = MenuForm(prefix='menu_form')

    return render(request, 'participant_menu/administration/create_menu.html',
                  {
                      'library': library,
                      'menu_form': menu_form
                  })
Exemplo n.º 2
0
def create_menu(request):

    if request.method == 'POST':

        menu_form = MenuForm(request.POST, prefix='menu_form')
        menu_title_forms = []

        for lang in settings.LANGUAGES:
            menu_title_forms.append({
                'form':MenuTitleForm(
                    request.POST,
                    prefix="menu_title_" + lang[0]
                ),
                'lang': lang
            })

        if menu_form.is_valid():
            menu = menu_form.save(commit=False)
            valid = False
            for menu_title_form in menu_title_forms:
                valid = menu_title_form['form'].is_valid()
                if not valid: break

            if valid:
                root_item = MenuItem()
                root_item.save()
                menu.root_item = root_item
                menu.save()
                for menu_title_form in menu_title_forms:
                    MenuTitle(
                        lang=menu_title_form['lang'][0],
                        title=menu_title_form['form'].cleaned_data['title'],
                        menu=menu
                    ).save()

            return redirect('menu:administration:menu_list')
    else:
        menu_title_forms = []
        for lang in settings.LANGUAGES:
            menu_title_forms.append({
                'form':MenuTitleForm(
                    initial={
                        'lang':lang[0]
                    },
                    prefix="menu_title_" + lang[0]
                ),
                'lang':lang
            })
        menu_form = MenuForm(prefix='menu_form')

    return render(request, 'menu/administration/create_menu.html', {
        'menu_form': menu_form,
        'menu_title_forms': menu_title_forms
    })
Exemplo n.º 3
0
def create_menu(request):

    if request.method == 'POST':

        menu_form = MenuForm(request.POST, prefix='menu_form')
        menu_title_forms = []

        for lang in settings.LANGUAGES:
            menu_title_forms.append({
                'form':
                MenuTitleForm(request.POST, prefix="menu_title_" + lang[0]),
                'lang':
                lang
            })

        if menu_form.is_valid():
            menu = menu_form.save(commit=False)
            valid = False
            for menu_title_form in menu_title_forms:
                valid = menu_title_form['form'].is_valid()
                if not valid: break

            if valid:
                root_item = MenuItem()
                root_item.save()
                menu.root_item = root_item
                menu.save()
                for menu_title_form in menu_title_forms:
                    MenuTitle(
                        lang=menu_title_form['lang'][0],
                        title=menu_title_form['form'].cleaned_data['title'],
                        menu=menu).save()

            return redirect('menu:administration:menu_list')
    else:
        menu_title_forms = []
        for lang in settings.LANGUAGES:
            menu_title_forms.append({
                'form':
                MenuTitleForm(initial={'lang': lang[0]},
                              prefix="menu_title_" + lang[0]),
                'lang':
                lang
            })
        menu_form = MenuForm(prefix='menu_form')

    return render(request, 'menu/administration/create_menu.html', {
        'menu_form': menu_form,
        'menu_title_forms': menu_title_forms
    })
Exemplo n.º 4
0
def edit_menu(request, menu_pk):
    menu = get_object_or_404(Menu, pk=menu_pk)
    
    if request.method == 'POST':
        form = MenuForm(request.POST, instance=menu)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/admin/%s/menu/' % APP_LABEL)
    else:
        form = MenuForm(instance = menu)
    
    return render_to_response('admin/%s/edit_menu.html' % APP_LABEL,
                              { 'form': form, 'menu': menu, 'flat_structure': menu.root_item.get_flattened() },
                              context_instance=RequestContext(request))
Exemplo n.º 5
0
def edit_menu(request, id, library_code, managed_libraries=[]):
    library = org_utils.get_library(library_code, managed_libraries)
    if not library:
        return HttpResponseForbidden(u'Вы должны быть сотрудником этой организации')

    menu = get_object_or_404(Menu, id=id)

    if request.method == 'POST':
        menu_form = MenuForm(request.POST, prefix='menu_form', instance=menu)

        if menu_form.is_valid():
            menu = menu_form.save(commit=False)
            menu.save()

            return redirect('participant_menu:administration:menu_list', library_code=library_code)
    else:
        menu_form = MenuForm(prefix='menu_form', instance=menu)

    return render(request, 'participant_menu/administration/edit_menu.html', {
        'library': library,
        'menu_form': menu_form,
    })
Exemplo n.º 6
0
def create_menu(request, library_code, managed_libraries=[]):
    library = org_utils.get_library(library_code, managed_libraries)
    if not library:
        return HttpResponseForbidden(u'Вы должны быть сотрудником этой организации')

    if request.method == 'POST':

        menu_form = MenuForm(request.POST, prefix='menu_form')
        if menu_form.is_valid():
            menu = menu_form.save(commit=False)
            menu.library = library
            root_item = MenuItem()
            root_item.save()
            menu.root_item = root_item
            menu.save()
            return redirect('participant_menu:administration:menu_list', library_code=library_code)
    else:
        menu_form = MenuForm(prefix='menu_form')

    return render(request, 'participant_menu/administration/create_menu.html', {
        'library': library,
        'menu_form': menu_form
    })
Exemplo n.º 7
0
def edit_menu(request, id, library_code, managed_libraries=[]):
    library = org_utils.get_library(library_code, managed_libraries)
    if not library:
        return HttpResponseForbidden(
            u'Вы должны быть сотрудником этой организации')

    menu = get_object_or_404(Menu, id=id)

    if request.method == 'POST':
        menu_form = MenuForm(request.POST, prefix='menu_form', instance=menu)

        if menu_form.is_valid():
            menu = menu_form.save(commit=False)
            menu.save()

            return redirect('participant_menu:administration:menu_list',
                            library_code=library_code)
    else:
        menu_form = MenuForm(prefix='menu_form', instance=menu)

    return render(request, 'participant_menu/administration/edit_menu.html', {
        'library': library,
        'menu_form': menu_form,
    })
Exemplo n.º 8
0
def edit_menu(request, id):

    menu = get_object_or_404(Menu, id=id)
    menu_item_titles = MenuTitle.objects.filter(menu=menu)
    menu_item_titles_langs = {}
    for menu_item_title in menu_item_titles:
        menu_item_titles_langs[menu_item_title.lang] = menu_item_title

    if request.method == 'POST':
        menu_form = MenuForm(request.POST, prefix='menu_form', instance=menu)

        menu_title_forms = []

        if menu_form.is_valid():
            menu = menu_form.save(commit=False)

            for lang in settings.LANGUAGES:
                menu_title_forms.append({
                    'form':
                    MenuTitleForm(request.POST,
                                  prefix="menu_title_" + lang[0]),
                    'lang':
                    lang
                })

            valid = False
            for menu_title_form in menu_title_forms:
                valid = menu_title_form['form'].is_valid()
                if not valid:
                    break
            if valid:
                menu.save()

                for menu_title_form in menu_title_forms:
                    lang = menu_title_form['form'].cleaned_data['lang']
                    if lang in menu_item_titles_langs:
                        if menu_item_titles_langs[
                                lang].title != menu_title_form[
                                    'form'].cleaned_data['title']:
                            menu_item_titles_langs[
                                lang].title = menu_title_form[
                                    'form'].cleaned_data['title']
                            menu_item_titles_langs[lang].save()
                    else:
                        MenuTitle(lang=lang,
                                  title=menu_title_form['form'].
                                  cleaned_data['title'],
                                  menu=menu).save()

            return redirect('menu:administration:menu_list')
    else:
        menu_title_forms = []
        menus_title_langs = []

        for lang in settings.LANGUAGES:
            for menu_item_title in menu_item_titles:
                if menu_item_title.lang == lang[0]:
                    menus_title_langs.append(lang[0])
                    menu_title_forms.append({
                        'form':
                        MenuTitleForm(initial={
                            'lang': menu_item_title.lang,
                            'title': menu_item_title.title,
                        },
                                      prefix="menu_title_" +
                                      menu_item_title.lang),
                        'lang':
                        menu_item_title.lang
                    })
        new_langs = []
        if len(settings.LANGUAGES) != len(menus_title_langs):
            for lang in settings.LANGUAGES:
                if lang[0] not in menus_title_langs:
                    new_langs.append(lang[0])

        for lang in new_langs:
            menu_title_forms.append({
                'form':
                MenuTitleForm(initial={'lang': lang},
                              prefix="menu_title_" + lang),
                'lang':
                lang
            })

        menu_form = MenuForm(prefix='menu_form', instance=menu)

    return render(request, 'menu/administration/edit_menu.html', {
        'menu_form': menu_form,
        'menu_title_forms': menu_title_forms
    })
Exemplo n.º 9
0
def edit_menu(request, id):

    menu = get_object_or_404(Menu, id=id)
    menu_item_titles = MenuTitle.objects.filter(menu=menu)
    menu_item_titles_langs = {}
    for menu_item_title in menu_item_titles:
        menu_item_titles_langs[menu_item_title.lang] = menu_item_title

    if request.method == 'POST':
        menu_form = MenuForm(request.POST, prefix='menu_form', instance=menu)

        menu_title_forms = []



        if menu_form.is_valid():
            menu = menu_form.save(commit=False)

            for lang in settings.LANGUAGES:
                menu_title_forms.append({
                    'form':MenuTitleForm(
                        request.POST,
                        prefix="menu_title_" + lang[0]
                    ),
                    'lang': lang
                })


            valid = False
            for menu_title_form in menu_title_forms:
                valid = menu_title_form['form'].is_valid()
                if not valid:
                    break
            if valid:
                menu.save()


                for menu_title_form in menu_title_forms:
                    lang = menu_title_form['form'].cleaned_data['lang']
                    if lang in  menu_item_titles_langs:
                        if menu_item_titles_langs[lang].title != menu_title_form['form'].cleaned_data['title']:
                            menu_item_titles_langs[lang].title = menu_title_form['form'].cleaned_data['title']
                            menu_item_titles_langs[lang].save()
                    else:
                        MenuTitle(
                            lang=lang,
                            title=menu_title_form['form'].cleaned_data['title'],
                            menu=menu
                        ).save()

            return redirect('menu:administration:menu_list')
    else:
        menu_title_forms = []
        menus_title_langs = []

        for lang in settings.LANGUAGES:
            for menu_item_title in menu_item_titles:
                if menu_item_title.lang == lang[0]:
                    menus_title_langs.append(lang[0])
                    menu_title_forms.append({
                        'form':MenuTitleForm(
                            initial={
                                'lang': menu_item_title.lang,
                                'title': menu_item_title.title,
                                },
                            prefix="menu_title_" + menu_item_title.lang
                        ),
                        'lang': menu_item_title.lang
                    })
        new_langs = []
        if len(settings.LANGUAGES) != len(menus_title_langs):
            for lang in settings.LANGUAGES:
                if lang[0] not in  menus_title_langs:
                    new_langs.append(lang[0])

        for lang in new_langs:
            menu_title_forms.append({
                'form':MenuTitleForm(
                    initial={
                        'lang':lang
                    },
                    prefix="menu_title_" + lang
                ),
                'lang':lang
            })

        menu_form = MenuForm(prefix='menu_form', instance=menu)


    return render(request, 'menu/administration/edit_menu.html', {
        'menu_form': menu_form,
        'menu_title_forms': menu_title_forms
    })