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

gcivil-nyu-org / Wednesday-Fall2023-Team-2 / #5

12 Nov 2023 04:40AM UTC coverage: 93.433%. First build
#5

Pull #88

travis-ci

NigelLu
feat: create comment inline
Pull Request #88: Comment

39 of 40 new or added lines in 4 files covered. (97.5%)

811 of 868 relevant lines covered (93.43%)

0.93 hits per line

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

89.58
/users/models.py
1
"""customized user model
2
"""
3
from django.db import models
1✔
4
from django.utils import timezone
1✔
5
from django.contrib.auth.models import AbstractBaseUser, PermissionsMixin
1✔
6

7
from map.models import ParkingSpace
1✔
8
from .managers import UserManager
1✔
9

10

11
# * Create your models here.
12
class User(AbstractBaseUser, PermissionsMixin):
1✔
13
    """customized user class"""
14

15
    email = models.EmailField(verbose_name="email", max_length=60, unique=True)
1✔
16
    username = models.CharField(max_length=30, unique=True)
1✔
17
    date_joined = models.DateTimeField(verbose_name="Date Joined", default=timezone.now)
1✔
18
    # * Save an avatar image for a user in path avatars/<username>_avatar
19
    avatar = models.ImageField(
1✔
20
        upload_to="avatars/",
21
        height_field=None,
22
        width_field=None,
23
        max_length=101,
24
        default="avatars/ParKrowdDefaultAvatar.jpg",
25
    )
26

27
    description = models.TextField(blank=True)
1✔
28

29
    # * is_superuser : User can create, edit, and delete ANY object (models)
30
    is_superuser = models.BooleanField(default=False)
1✔
31
    # * is_staff : User can login to site
32
    is_staff = models.BooleanField(default=False)
1✔
33
    # * is_admin : User is treated as non-superuser staff member.
34
    # * Admins can be customized to have certain permissions.
35
    is_admin = models.BooleanField(default=False)
1✔
36
    is_active = models.BooleanField(default=True)
1✔
37

38
    # * is_verified: To indicate whether the user has been verified by Admin
39
    is_verified = models.BooleanField(default=False)
1✔
40

41
    objects = UserManager()
1✔
42

43
    USERNAME_FIELD = "username"
1✔
44
    REQUIRED_FIELDS = ["email"]
1✔
45

46
    def __str__(self):
1✔
47
        return f"Email: {self.email}\n" f"Username: {self.username}\n"
×
48

49
    @staticmethod
1✔
50
    def has_perm(perm, obj=None, **kwargs):
1✔
51
        """TODO: why overriding the original implementation here"""
52
        return True
×
53

54
    @staticmethod
1✔
55
    def has_module_perms(app_label, **kwargs):
1✔
56
        """TODO: why overriding the original implementation here"""
57
        return True
×
58

59

60
class Post(models.Model):
1✔
61
    title = models.CharField(max_length=200)
1✔
62
    post = models.TextField()
1✔
63
    author = models.ForeignKey(User, on_delete=models.CASCADE)
1✔
64
    created_at = models.DateTimeField(verbose_name="Date created", default=timezone.now)
1✔
65
    parking_space = models.ForeignKey(ParkingSpace, on_delete=models.CASCADE)
1✔
66

67
    def __str__(self):
1✔
68
        return self.title
×
69

70

71
class Comment(models.Model):
1✔
72
    content = models.TextField()
1✔
73
    author = models.ForeignKey(User, on_delete=models.CASCADE)
1✔
74
    post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name="comments")
1✔
75
    created_at = models.DateTimeField(verbose_name="Date created", default=timezone.now)
1✔
76

77
    def __str__(self):
1✔
NEW
78
        return (
×
79
            f"Comment created by {self.author.username} under Post '{self.post.title}'"
80
        )
81

82

83
class UserVerification(models.Model):
1✔
84
    username = models.ForeignKey(User, on_delete=models.CASCADE)
1✔
85
    business_name = models.CharField(max_length=200)
1✔
86
    business_type = models.CharField(max_length=200)
1✔
87
    business_address = models.CharField(max_length=200)
1✔
88
    uploaded_file = models.FileField(upload_to="verification_files/")
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