コード例 #1
0
ファイル: api_views.py プロジェクト: chgad/fpraktikum_backend
    def destroy(self, request, *args, **kwargs):
        """
        This method is used to Decline a Partnership or to delete a Partner.


        :param request:
        :param args:
        :param kwargs:
        :return:
        """
        instance = self.get_object()
        mail_str ="accept_dec"  # we use a mail_string since this method
                                # will also be called when declineing the Partnership

        if instance.has_accepted:
            instance.registrant.partner_has_accepted = False
            instance.registrant.save()
            mail_str = "reg_del_partner"

        for inst in instance.institutes.all():
            inst.places += 1
            inst.save()

        self.perform_destroy(instance)
        send_email(instance.registrant, mail_str)
        return Response(status=status.HTTP_204_NO_CONTENT)
コード例 #2
0
ファイル: api_views.py プロジェクト: chgad/fpraktikum_backend
    def destroy(self, request, *args, **kwargs):
        instance = self.get_object()

        if not instance.partner_has_accepted:   # if a Partner doesn't exist or hasn't accepted yet delete both

            try:
                instance.partner
            except FpUserPartner.DoesNotExist:
                places = 1
            else:
                places = 2

            for inst in instance.institutes.all():
                inst.places += places
                inst.save()
            send_email(instance, "reg_del")
            self.perform_destroy(instance)
            return Response(status=status.HTTP_204_NO_CONTENT)

        partner = instance.partner
        # make Partner a Registrant if he already has accepted
        try:
            FpUserRegistrant.create_from_partner(partner)
        except Exception:
            return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR)

        for inst in instance.institutes.all():
            inst.places += 1
            inst.save()

        self.perform_destroy(instance)
        send_email(instance, "reg_del_partner_stays")
        return Response(status=status.HTTP_204_NO_CONTENT)
コード例 #3
0
ファイル: api_views.py プロジェクト: chgad/fpraktikum_backend
    def update(self, request, *args, **kwargs):
        """
        This method is used to Accept the so called Partnership.
        In the future we might want to be reutilize this methode for more update possibilities.
        Yet it's kind of static.
        :param request:
        :param args:
        :param kwargs:
        :return:
        """
        serializer = self.get_serializer_class()
        instance = self.get_object()
        # set the accept
        instance.has_accepted = True
        instance.save()
        instance.registrant.partner_has_accepted = True
        instance.registrant.save()

        send_email(instance.registrant, "accept_acc")
        return Response(data=serializer(instance).data)
コード例 #4
0
ファイル: api_views.py プロジェクト: chgad/fpraktikum_backend
 def perform_destroy(self, instance):
     send_email(instance, "waitlist_del")
     instance.delete()
コード例 #5
0
ファイル: api_views.py プロジェクト: chgad/fpraktikum_backend
 def perform_create(self, serializer):
     user = serializer.save()
     send_email(user, "waitlist_reg")