club.py 1.86 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
# -*- coding:utf-8 -*
#
# Copyright 2016,2017
# - Skia <skia@libskia.so>
#
# Ce fichier fait partie du site de l'Association des Étudiants de l'UTBM,
# http://ae.utbm.fr.
#
# This program is free software; you can redistribute it and/or modify it under
# the terms of the GNU General Public License a published by the Free Software
# Foundation; either version 3 of the License, or (at your option) any later
# version.
#
# This program is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
# FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
# details.
#
# You should have received a copy of the GNU General Public License along with
# this program; if not, write to the Free Sofware Foundation, Inc., 59 Temple
# Place - Suite 330, Boston, MA 02111-1307, USA.
#
#

Sli's avatar
Sli committed
25
from rest_framework.response import Response
26
from rest_framework import serializers
Sli's avatar
Sli committed
27 28
from rest_framework.decorators import api_view, renderer_classes
from rest_framework.renderers import StaticHTMLRenderer
29

Sli's avatar
Sli committed
30 31 32 33
from django.conf import settings
from django.core.exceptions import PermissionDenied

from club.models import Club, Mailing
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51

from api.views import RightModelViewSet


class ClubSerializer(serializers.ModelSerializer):

    class Meta:
        model = Club
        fields = ('id', 'name', 'unix_name', 'address', 'members')


class ClubViewSet(RightModelViewSet):
    """
        Manage Clubs (api/v1/club/)
    """

    serializer_class = ClubSerializer
    queryset = Club.objects.all()
Sli's avatar
Sli committed
52 53 54 55 56 57 58 59 60 61 62 63


@api_view(['GET'])
@renderer_classes((StaticHTMLRenderer,))
def FetchMailingLists(request):
    key = request.GET.get('key', '')
    if key != settings.SITH_MAILING_FETCH_KEY:
        raise PermissionDenied
    data = ''
    for mailing in Mailing.objects.all():
        data += mailing.fetch_format()
    return Response(data)