Basic AJAX requests and handlebars template for each review. Still static page #4
|
@ -1,8 +1,41 @@
|
||||||
from django.db import models
|
from django.db import models
|
||||||
|
|
||||||
|
# Represents any object for which reviews can be made. (Universities, Professors, etc.)
|
||||||
|
class RateableEntity(models.Model):
|
||||||
|
# The human-readable name of this entity.
|
||||||
|
name = models.CharField(max_length=256)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
abstract = True
|
||||||
|
|
||||||
|
# A review represents any single data entry to the database.
|
||||||
class Review(models.Model):
|
class Review(models.Model):
|
||||||
# An integer rating which defines
|
# An integer rating in the domain [1, 5]
|
||||||
rating = models.IntegerField(default=1)
|
rating = models.IntegerField(default=1)
|
||||||
|
# The textual content of the review.
|
||||||
|
content = models.TextField()
|
||||||
|
# An integer representing the number of times a user found this review helpful.
|
||||||
|
helpful_vote_count = models.IntegerField(default=1)
|
||||||
|
# An integer representing the number of times a user found this review unhelpful.
|
||||||
|
unhelpful_vote_count = models.IntegerField(default=1)
|
||||||
|
# A foreign key referencing the entity for which this review was made.
|
||||||
|
rateable_entity_id = models.ForeignKey(RateableEntity, on_delete=models.CASCADE)
|
||||||
|
|
||||||
|
# A RateableEntity for universities.
|
||||||
|
class University(RateableEntity):
|
||||||
|
pass
|
||||||
|
|
||||||
|
# A RateableEntity for professors, who belong to one or more university.
|
||||||
|
class Professor(RateableEntity):
|
||||||
|
# The universities that this professor teaches or has taught at.
|
||||||
|
university = models.ManyToManyField(University)
|
||||||
|
|
||||||
|
# A RateableEntity for courses, which belong to a university, and have one or more professors.
|
||||||
|
class Course(RateableEntity):
|
||||||
|
# The university that this course belongs to.
|
||||||
|
university = models.ForeignKey(University, on_delete=models.CASCADE)
|
||||||
|
# A list of professors that teach this course.
|
||||||
|
professors = models.ManyToManyField(RateableEntity)
|
||||||
|
|
||||||
# Create your models here.
|
# Create your models here.
|
||||||
class UniversityReview(models.Model):
|
class UniversityReview(models.Model):
|
||||||
|
|
Loading…
Reference in New Issue