Ejemplo n.º 1
0
    def test_move_item_or_clean_ranks(self):
        menu = Menu(name='menu_move_item_or_clean_ranks')
        menu.save()
        menu_item1 = MenuItem.objects.create(caption='menu_item1', parent=menu.root_item)
        menu_item2 = MenuItem.objects.create(caption='menu_item2', parent=menu.root_item)
        menu_item3 = MenuItem.objects.create(caption='menu_item3', parent=menu.root_item)
        menu_item4 = MenuItem.objects.create(caption='menu_item4', parent=menu.root_item)
        
        self.assertEquals(menu_item1.rank, 0)
        self.assertEquals(menu_item2.rank, 1)
        self.assertEquals(menu_item3.rank, 2)
        self.assertEquals(menu_item4.rank, 3)
        
        # Corrupt ranks
        menu_item1.rank = 0
        menu_item1.save()
        menu_item2.rank = 0
        menu_item2.save()
        menu_item3.rank = 0
        menu_item3.save()
        menu_item4.rank = 0
        menu_item4.save()

        move_item_or_clean_ranks(menu_item3, -1) # Move up
        
        # Retrieve objects from db
        menu_item1 = MenuItem.objects.get(caption='menu_item1', parent=menu.root_item)
        menu_item2 = MenuItem.objects.get(caption='menu_item2', parent=menu.root_item)
        menu_item3 = MenuItem.objects.get(caption='menu_item3', parent=menu.root_item)
        menu_item4 = MenuItem.objects.get(caption='menu_item4', parent=menu.root_item)
        
        self.assertEquals(menu_item1.rank, 0)
        self.assertEquals(menu_item2.rank, 2)
        self.assertEquals(menu_item3.rank, 1)
        self.assertEquals(menu_item4.rank, 3)

        # Corrupt ranks
        menu_item1.rank = 18
        menu_item1.save()
        menu_item2.rank = -1
        menu_item2.save()
        menu_item3.rank = 6
        menu_item3.save()
        menu_item4.rank = 99
        menu_item4.save()

        move_item_or_clean_ranks(menu_item1, 1) # Try to move down
        
        # Retrieve objects from db
        menu_item1 = MenuItem.objects.get(caption='menu_item1', parent=menu.root_item)
        menu_item2 = MenuItem.objects.get(caption='menu_item2', parent=menu.root_item)
        menu_item3 = MenuItem.objects.get(caption='menu_item3', parent=menu.root_item)
        menu_item4 = MenuItem.objects.get(caption='menu_item4', parent=menu.root_item)
        
        self.assertEquals(menu_item1.rank, 3)
        self.assertEquals(menu_item2.rank, 0)
        self.assertEquals(menu_item3.rank, 1)
        self.assertEquals(menu_item4.rank, 2)
    def move_up_item(self, request, menu_pk, menu_item_pk):
        menu = self.get_object_with_change_permissions(request, Menu, menu_pk)
        menu_item = self.get_object_with_change_permissions(request, MenuItem, menu_item_pk)

        if menu_item.rank > 0:
            move_item_or_clean_ranks(menu_item, -1)
            messages.success(request, _('The menu item "%s" was moved successfully.') % force_unicode(menu_item))
        else:
            messages.error(request, _('The menu item "%s" is not allowed to move up.') % force_unicode(menu_item))
        return HttpResponseRedirect("../../../")
Ejemplo n.º 3
0
 def move_down_item(self, request, menu_pk, menu_item_pk):
     menu = self.get_object_with_change_permissions(request, Menu, menu_pk)
     menu_item = self.get_object_with_change_permissions(request, MenuItem, menu_item_pk)
     
     if menu_item.rank < menu_item.siblings().count():
         move_item_or_clean_ranks(menu_item, 1)
         msg = _('The menu item "%s" was moved successfully.') % force_unicode(menu_item)
     else:
         msg = _('The menu item "%s" is not allowed to move down.') % force_unicode(menu_item)
     request.user.message_set.create(message=msg)
     return HttpResponseRedirect('../../../')
Ejemplo n.º 4
0
 def move_up_item(self, request, menu_pk, menu_item_pk):
     menu = self.get_object_with_change_permissions(request, Menu, menu_pk)
     menu_item = self.get_object_with_change_permissions(request, MenuItem, menu_item_pk)
     
     if menu_item.rank > 0:
         move_item_or_clean_ranks(menu_item, -1)
         msg = _('The menu item "%s" was moved successfully.') % force_unicode(menu_item)
     else:
         msg = _('The menu item "%s" is not allowed to move up.') % force_unicode(menu_item)
     self.message_user(request, msg)
     return HttpResponseRedirect('../../../')
Ejemplo n.º 5
0
 def move_down_item(self, request, menu_pk, menu_item_pk):
     menu = self.get_object_with_change_permissions(request, Menu, menu_pk)
     menu_item = self.get_object_with_change_permissions(request, MenuItem, menu_item_pk)
     
     if menu_item.rank < menu_item.siblings().count():
         move_item_or_clean_ranks(menu_item, 1)
         msg = _('The menu item "%s" was moved successfully.') % force_unicode(menu_item)
     else:
         msg = _('The menu item "%s" is not allowed to move down.') % force_unicode(menu_item)
     request.user.message_set.create(message=msg)
     return HttpResponseRedirect('../../../')
    def move_up_item(self, request, menu_pk, menu_item_pk):
        self.get_object_with_change_permissions(request, Menu, menu_pk)
        menu_item = self.get_object_with_change_permissions(request, MenuItem, menu_item_pk)

        if menu_item.rank > 0:
            move_item_or_clean_ranks(menu_item, -1)
            msg = _('The menu item "%s" was moved successfully.') % force_text(menu_item)
        else:
            msg = _('The menu item "%s" is not allowed to move up.') % force_text(menu_item)

        if django.VERSION >= (1, 4):
            self.message_user(request, message=msg)
        else:
            request.user.message_set.create(message=msg)

        return HttpResponseRedirect('../../../')
Ejemplo n.º 7
0
    def move_up_item(self, request, menu_pk, menu_item_pk):
        self.get_object_with_change_permissions(request, Menu, menu_pk)
        menu_item = self.get_object_with_change_permissions(request, MenuItem, menu_item_pk)

        if menu_item.rank > 0:
            move_item_or_clean_ranks(menu_item, -1)
            msg = _('The menu item "%s" was moved successfully.') % force_text(menu_item)
        else:
            msg = _('The menu item "%s" is not allowed to move up.') % force_text(menu_item)

        if django.VERSION >= (1, 4):
            self.message_user(request, message=msg)
        else:
            request.user.message_set.create(message=msg)

        return HttpResponseRedirect('../../../')