• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

chiefonboarding / ChiefOnboarding / 22699511232

05 Mar 2026 02:31AM UTC coverage: 90.942% (-0.001%) from 90.943%
22699511232

Pull #625

github

web-flow
Merge e3cfe8391 into aefc38912
Pull Request #625: Add offboarding api endpoint

8263 of 9086 relevant lines covered (90.94%)

0.91 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

93.94
back/api/serializers.py
1
from rest_framework import serializers
1✔
2

3
from admin.sequences.models import Sequence
1✔
4
from users.models import User
1✔
5
from django.utils import timezone
1✔
6

7

8
class UserSerializer(serializers.ModelSerializer):
1✔
9
    sequences = serializers.ListField(child=serializers.IntegerField(), required=False)
1✔
10

11
    def validate_sequences(self, value):
1✔
12
        if Sequence.objects.filter(pk__in=value).count() != len(value):
1✔
13
            raise serializers.ValidationError("Not all sequence ids are valid.")
1✔
14
        return value
1✔
15

16
    class Meta:
1✔
17
        model = User
1✔
18
        fields = [
1✔
19
            "first_name",
20
            "last_name",
21
            "start_day",
22
            "role",
23
            "email",
24
            "position",
25
            "phone",
26
            "buddy",
27
            "manager",
28
            "message",
29
            "linkedin",
30
            "facebook",
31
            "twitter",
32
            "timezone",
33
            "language",
34
            "sequences",
35
        ]
36

37

38
class UserOffboardingSerializer(serializers.Serializer):
1✔
39
    termination_date = serializers.DateField()
1✔
40
    sequences = serializers.ListField(child=serializers.IntegerField(), required=False)
1✔
41
    user = serializers.PrimaryKeyRelatedField(
1✔
42
        queryset=User.objects.exclude(role=User.Role.ADMIN)
43
    )
44

45
    def validate_termination_date(self, value):
1✔
46
        # date must be in the future
47
        if value < timezone.now().date():
1✔
48
            raise serializers.ValidationError("You cannot set an offboarding date in the past.")
×
49
        return value
1✔
50

51
    def validate_sequences(self, value):
1✔
52
        if Sequence.objects.filter(category=Sequence.Category.OFFBOARDING, pk__in=value).count() != len(value):
1✔
53
            raise serializers.ValidationError("Not all sequence ids are valid.")
×
54
        return value
1✔
55

56

57
class EmployeeSerializer(serializers.ModelSerializer):
1✔
58
    class Meta:
1✔
59
        model = User
1✔
60
        fields = ["id", "first_name", "last_name", "email"]
1✔
61

62

63
class SequenceSerializer(serializers.ModelSerializer):
1✔
64
    class Meta:
1✔
65
        model = Sequence
1✔
66
        fields = ["id", "name"]
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc