def patch_top_category(request, thread, value): category_pk = get_int_or_404(value) root_category = get_object_or_404( Category.objects.all_categories(include_root=True), pk=category_pk) categories = list(Category.objects.all_categories().filter( id__in=request.user.acl['visible_categories'])) add_categories_to_threads(root_category, categories, [thread]) return {'top_category': CategorySerializer(thread.top_category).data}
def categories(request): categories_tree = get_categories_tree(request.user, join_posters=True) request.frontend_context['store'].update({ 'categories': CategorySerializer(categories_tree, many=True).data, }) return render(request, 'misago/categories/list.html', { 'categories': categories_tree, })
def categories(request): categories_tree = get_categories_tree(request.user) request.frontend_context.update({ 'CATEGORIES': CategorySerializer(categories_tree, many=True).data, 'CATEGORIES_API': reverse('misago:api:category-list') }) return render(request, 'misago/categories/list.html', { 'categories': categories_tree, })
def categories(request): categories_tree = get_categories_tree(request.user) request.frontend_context['CATEGORIES'] = CategorySerializer( categories_tree, many=True).data request.frontend_context['CATEGORIES_API'] = reverse( 'misago:api:categories') return render(request, 'misago/categories/list.html', { 'categories': categories_tree, 'is_index': settings.MISAGO_CATEGORIES_ON_INDEX, })
def patch_move(request, thread, value): if thread.acl.get('can_move'): category_pk = get_int_or_404(value) new_category = get_object_or_404( Category.objects.all_categories().select_related('parent'), pk=category_pk ) add_acl(request.user, new_category) allow_see_category(request.user, new_category) allow_browse_category(request.user, new_category) allow_start_thread(request.user, new_category) moderation.move_thread(request.user, thread, new_category) return {'category': CategorySerializer(new_category).data} else: raise PermissionDenied( _("You don't have permission to move this thread."))
def patch_move(request, thread, value): allow_move_thread(request.user, thread) category_pk = get_int_or_404(value) new_category = get_object_or_404( Category.objects.all_categories().select_related('parent'), pk=category_pk ) add_acl(request.user, new_category) allow_see_category(request.user, new_category) allow_browse_category(request.user, new_category) allow_start_thread(request.user, new_category) if new_category == thread.category: raise ValidationError(_("You can't move thread to the category it's already in.")) moderation.move_thread(request, thread, new_category) return {'category': CategorySerializer(new_category).data}
from misago.categories.serializers import CategorySerializer from .tags import TagSerializer from misago.core.serializers import MutableFields from misago.threads.models import Thread from .poll import PollSerializer from .threadparticipant import ThreadParticipantSerializer __all__ = [ 'ThreadSerializer', 'PrivateThreadSerializer', 'ThreadsListSerializer', ] BasicCategorySerializer = CategorySerializer.subset_fields( 'id', 'parent', 'name', 'description', 'is_closed', 'css_class', 'level', 'lft', 'rght', 'is_read', 'url') BasicTagSerializer = TagSerializer.subset_fields('id', 'tag_name', 'thread_id', 'created_on', 'updated_on', 'search_document') class ThreadSerializer(serializers.ModelSerializer, MutableFields): category = BasicCategorySerializer(many=False, read_only=True) # tags = BasicTagSerializer(many=True, read_only=True) acl = serializers.SerializerMethodField() has_unapproved_posts = serializers.SerializerMethodField() is_new = serializers.SerializerMethodField() is_read = serializers.SerializerMethodField()
__all__ = [ 'FeedSerializer', ] FeedUserSerializer = UserSerializer.subset_fields( 'id', 'username', 'avatars', 'url', 'title', 'rank', ) FeedCategorySerializer = CategorySerializer.subset_fields('name', 'css_class', 'url') class FeedSerializer(PostSerializer, MutableFields): poster = FeedUserSerializer(many=False, read_only=True) category = FeedCategorySerializer(many=False, read_only=True) thread = serializers.SerializerMethodField() class Meta: model = Post fields = PostSerializer.Meta.fields + ['category', 'thread'] def get_thread(self, obj): return { 'title': obj.thread.title,
def api(request): categories_tree = get_categories_tree(request.user) return Response(CategorySerializer(categories_tree, many=True).data)
from misago.categories.serializers import CategorySerializer from misago.core.serializers import MutableFields from misago.threads.models import Thread from .poll import PollSerializer from .threadparticipant import ThreadParticipantSerializer __all__ = [ 'ThreadSerializer', 'PrivateThreadSerializer', 'ThreadsListSerializer', ] BasicCategorySerializer = CategorySerializer.subset_fields( 'id', 'parent', 'name', 'description', 'is_closed', 'css_class', 'level', 'lft', 'rght', 'is_read', 'api', 'url' ) class ThreadSerializer(serializers.ModelSerializer, MutableFields): category = BasicCategorySerializer(many=False, read_only=True) acl = serializers.SerializerMethodField() has_unapproved_posts = serializers.SerializerMethodField() is_new = serializers.SerializerMethodField() is_read = serializers.SerializerMethodField() path = BasicCategorySerializer(many=True, read_only=True) poll = PollSerializer(many=False, read_only=True) subscription = serializers.SerializerMethodField() api = serializers.SerializerMethodField()
from misago.categories.serializers import CategorySerializer from misago.core.serializers import MutableFields from misago.threads.models import Post from misago.users.serializers import UserSerializer from .post import PostSerializer __all__ = [ 'FeedSerializer', ] FeedUserSerializer = UserSerializer.subset_fields('id', 'username', 'avatars', 'absolute_url') FeedCategorySerializer = CategorySerializer.subset_fields('name', 'css_class', 'absolute_url') class FeedSerializer(PostSerializer, MutableFields): poster = FeedUserSerializer(many=False, read_only=True) category = FeedCategorySerializer(many=False, read_only=True) thread = serializers.SerializerMethodField() top_category = serializers.SerializerMethodField() class Meta: model = Post fields = PostSerializer.Meta.fields + ['category', 'thread', 'top_category'] def get_thread(self, obj): return {
from misago.categories.serializers import CategorySerializer from misago.threads.models import Post from misago.users.serializers import UserSerializer from .post import PostSerializer FeedUserSerializer = UserSerializer.subset_fields( 'id', 'username', 'avatars', 'title', 'rank', ) FeedCategorySerializer = CategorySerializer.subset_fields('name', 'css_class') class FeedSerializer(PostSerializer, MutableFields): poster = FeedUserSerializer(many=False, read_only=True) category = FeedCategorySerializer(many=False, read_only=True) thread = serializers.SerializerMethodField() class Meta: model = Post fields = PostSerializer.Meta.fields + ['category', 'thread'] def get_thread(self, obj): return { 'title': obj.thread.title,