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

gcivil-nyu-org / team4-wed-spring25 / 380

08 Apr 2025 07:22AM UTC coverage: 96.534% (-0.1%) from 96.678%
380

Pull #214

travis-pro

Kumuda Aggarwal
Changing combined URL
Pull Request #214: Changing combined URL

752 of 779 relevant lines covered (96.53%)

0.97 hits per line

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

97.01
/parks/models.py
1
from django.db import models
1✔
2
from cloudinary.models import CloudinaryField
1✔
3
from django.contrib.auth.models import User
1✔
4
from django.utils import timezone
1✔
5

6

7
class DogRun(models.Model):
1✔
8
    id = models.CharField(max_length=255)
1✔
9
    prop_id = models.CharField(max_length=255, primary_key=True)
1✔
10
    name = models.CharField(max_length=255)
1✔
11
    address = models.CharField(max_length=255)
1✔
12
    dogruns_type = models.CharField(max_length=100)
1✔
13
    accessible = models.CharField(max_length=50)
1✔
14
    notes = models.TextField(max_length=255)
1✔
15
    image = models.ImageField(upload_to="dogruns/", null=True, blank=True)
1✔
16

17
    class Meta:
1✔
18
        db_table = "dog_runs"
1✔
19

20
    def __str__(self):
1✔
21
        return self.name
×
22

23

24
class DogRunNew(models.Model):
1✔
25
    id = models.CharField(max_length=255, primary_key=True)
1✔
26
    prop_id = models.CharField(max_length=255)
1✔
27
    name = models.CharField(max_length=255)
1✔
28
    address = models.CharField(max_length=255)
1✔
29
    dogruns_type = models.CharField(max_length=100)
1✔
30
    accessible = models.CharField(max_length=50)
1✔
31
    notes = models.TextField(max_length=255)
1✔
32
    google_name = models.TextField(null=True, blank=True)
1✔
33
    borough = models.TextField(null=True, blank=True)
1✔
34
    zip_code = models.TextField(null=True, blank=True)
1✔
35
    formatted_address = models.TextField(null=True, blank=True)
1✔
36
    latitude = models.FloatField(null=True, blank=True)
1✔
37
    longitude = models.FloatField(null=True, blank=True)
1✔
38
    additional = models.JSONField(null=True, blank=True)  # PostgreSQL JSONB
1✔
39

40
    class Meta:
1✔
41
        db_table = "dog_runs_new"
1✔
42

43
    def __str__(self):
1✔
44
        return self.name
×
45

46

47
class Review(models.Model):
1✔
48
    park = models.ForeignKey(
1✔
49
        DogRunNew, on_delete=models.CASCADE, related_name="reviews"
50
    )
51
    user = models.ForeignKey(
1✔
52
        User, on_delete=models.CASCADE, related_name="reviews"
53
    )  # 添加
54
    text = models.TextField()
1✔
55
    rating = models.IntegerField()
1✔
56
    created_at = models.DateTimeField(auto_now_add=True)
1✔
57

58
    class Meta:
1✔
59
        db_table = "park_reviews"
1✔
60
        ordering = ["-created_at"]
1✔
61

62
    def __str__(self):
1✔
63
        return f"Review for {self.park.name} ({self.rating} stars)"
1✔
64

65

66
class ParkImage(models.Model):
1✔
67
    park = models.ForeignKey(
1✔
68
        DogRunNew,
69
        on_delete=models.CASCADE,
70
        related_name="images",
71
        to_field="id",
72
        db_column="park_id",
73
    )
74
    user = models.ForeignKey(
1✔
75
        User, on_delete=models.CASCADE, related_name="images", null=True, blank=True
76
    )
77
    image = CloudinaryField("image")
1✔
78

79
    def __str__(self):
1✔
80
        return f"Image for {self.park.name}"
1✔
81

82

83
class ReviewReport(models.Model):
1✔
84
    review = models.ForeignKey(
1✔
85
        "Review", on_delete=models.CASCADE, related_name="reports"
86
    )
87
    reported_by = models.ForeignKey(User, on_delete=models.CASCADE)
1✔
88
    reason = models.TextField()
1✔
89
    reported_at = models.DateTimeField(default=timezone.now)
1✔
90

91
    def __str__(self):
1✔
92
        return f"Reported by {self.reported_by.username} on {self.review.id}"
1✔
93

94

95
class ImageReport(models.Model):
1✔
96
    user = models.ForeignKey(
1✔
97
        User, on_delete=models.CASCADE, related_name="image_reports"
98
    )
99
    image = models.ForeignKey(
1✔
100
        ParkImage, on_delete=models.CASCADE, related_name="reports"
101
    )
102
    reason = models.TextField()
1✔
103
    created_at = models.DateTimeField(auto_now_add=True)
1✔
104

105
    def __str__(self):
1✔
106
        return f"Report by {self.user.username} on Image {self.image.id}"
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