예제 #1
0
 def post_save(self, form):
     if form.is_valid() and self.mode != START:
         if self.is_pinned != form.cleaned_data.get('is_pinned'):
             if self.thread.is_pinned:
                 moderation.unpin_thread(self.user, self.thread)
             else:
                 moderation.pin_thread(self.user, self.thread)
예제 #2
0
def patch_weight(request, thread, value):
    allow_pin_thread(request.user, thread)

    if not thread.acl.get('can_pin_globally') and thread.weight == 2:
        raise PermissionDenied(_("You can't change globally pinned threads weights in this category."))

    if value == 2:
        if thread.acl.get('can_pin_globally'):
            moderation.pin_thread_globally(request, thread)
        else:
            raise PermissionDenied(_("You can't pin threads globally in this category."))
    elif value == 1:
        moderation.pin_thread_locally(request, thread)
    elif value == 0:
        moderation.unpin_thread(request, thread)

    return {'weight': thread.weight}
예제 #3
0
    def test_unpin_globally_pinned_thread(self):
        """unpin_thread unpins globally pinned thread"""
        moderation.pin_thread_globally(self.request, self.thread)

        self.assertEqual(self.thread.weight, 2)
        self.assertTrue(moderation.unpin_thread(self.request, self.thread))

        self.reload_thread()
        self.assertEqual(self.thread.weight, 0)

        event = self.thread.last_post

        self.assertTrue(event.is_event)
        self.assertEqual(event.event_type, 'unpinned')
예제 #4
0
    def action_unpin(self, request, threads):
        changed_threads = 0
        for thread in threads:
            if moderation.unpin_thread(request.user, thread):
                changed_threads += 1

        if changed_threads:
            message = ungettext('%(changed)d thread was unpinned.',
                                '%(changed)d threads were unpinned.',
                                changed_threads)
            messages.success(request, message % {'changed': changed_threads})
        else:
            message = _("No threads were unpinned.")
            messages.info(request, message)
예제 #5
0
파일: actions.py 프로젝트: nikescar/Misago
    def action_unpin(self, request, threads):
        changed_threads = 0
        for thread in threads:
            if moderation.unpin_thread(request.user, thread):
                changed_threads += 1

        if changed_threads:
            message = ungettext(
                '%(changed)d thread was unpinned.',
                '%(changed)d threads were unpinned.',
            changed_threads)
            messages.success(request, message % {'changed': changed_threads})
        else:
            message = _("No threads were unpinned.")
            messages.info(request, message)
예제 #6
0
    def test_unpin_locally_pinned_thread(self):
        """unpin_thread unpins locally pinned thread"""
        moderation.pin_thread_locally(self.user, self.thread)

        self.assertEqual(self.thread.weight, 1)
        self.assertTrue(moderation.unpin_thread(self.user, self.thread))

        self.reload_thread()
        self.assertEqual(self.thread.weight, 0)

        self.assertTrue(self.thread.has_events)
        event = self.thread.event_set.last()

        self.assertIn("unpinned thread.", event.message)
        self.assertEqual(event.icon, "circle")
예제 #7
0
    def test_unpin_thread(self):
        """unpin_thread defaults thread weight"""
        moderation.pin_thread(self.user, self.thread)

        self.assertTrue(self.thread.is_pinned)
        self.assertTrue(moderation.unpin_thread(self.user, self.thread))

        self.reload_thread()
        self.assertFalse(self.thread.is_pinned)

        self.assertTrue(self.thread.has_events)
        event = self.thread.event_set.last()

        self.assertIn("unpinned thread.", event.message)
        self.assertEqual(event.icon, "circle")
예제 #8
0
 def action_unpin(self, request, thread):
     moderation.unpin_thread(request.user, thread)
     messages.success(request, _("Thread was unpinned."))
예제 #9
0
 def test_unpin_weightless_thread(self):
     """unpin_thread returns false for already weightless thread"""
     self.assertFalse(moderation.unpin_thread(self.request, self.thread))
     self.assertEqual(self.thread.weight, 0)
예제 #10
0
 def test_unpin_weightless_thread(self):
     """unpin_thread returns false for already weightless thread"""
     self.assertFalse(moderation.unpin_thread(self.user, self.thread))
     self.assertEqual(self.thread.weight, 0)
예제 #11
0
 def action_unpin(self, request, thread):
     moderation.unpin_thread(request.user, thread)
     messages.success(request, _("Thread was unpinned."))
예제 #12
0
 def test_unpin_invalid_thread(self):
     """unpin_thread returns false for already pinned thread"""
     self.assertFalse(moderation.unpin_thread(self.user, self.thread))
     self.assertFalse(self.thread.is_pinned)