コード例 #1
0
ファイル: patch.py プロジェクト: sonnyESP24/EFCGSM
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}
コード例 #2
0
ファイル: categorieslist.py プロジェクト: Laksh02/supportkid
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,
    })
コード例 #3
0
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,
    })
コード例 #4
0
ファイル: __init__.py プロジェクト: pylixm/Misago
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,
    })
コード例 #5
0
ファイル: patch.py プロジェクト: pylixm/Misago
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."))
コード例 #6
0
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}
コード例 #7
0
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()
コード例 #8
0

__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,
コード例 #9
0
ファイル: __init__.py プロジェクト: pylixm/Misago
def api(request):
    categories_tree = get_categories_tree(request.user)
    return Response(CategorySerializer(categories_tree, many=True).data)
コード例 #10
0
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()
コード例 #11
0
ファイル: feed.py プロジェクト: timunis/Misago
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 {
コード例 #12
0
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,