Updated models to be more robust.

This commit is contained in:
Andrew Lalis 2018-09-25 17:09:39 +02:00
parent 5b38f096e0
commit ad312a6e76
2 changed files with 16 additions and 6 deletions

View File

@ -9,14 +9,24 @@ class RateableEntity(models.Model):
class Review(models.Model):
# An integer rating in the domain [1, 5]
rating = models.IntegerField(default=1)
# A title for the review (brief summary of sentiment)
title = models.CharField(max_length=128)
# 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('postings.RateableEntity', on_delete=models.CASCADE)
rateable_entity = models.ForeignKey('postings.RateableEntity', on_delete=models.CASCADE)
# The date and time at which this review was published.
created_date = models.DateTimeField(auto_now_add=True)
# The date and time at which the last modification to this review was published.
last_updated_date = models.DateTimeField(auto_now=True)
# A vote for a review as either positive or negative.
class ReviewHelpfulVote(models.Model):
# A reference to the review that this vote is for.
review = models.ForeignKey('postings.Review', on_delete=models.CASCADE)
# Whether or not the referenced review was helpful.
helpful = models.BooleanField()
# TODO: Add a reference to the user who voted. The whole purpose of a separate vote object is to track who votes for what.
# A RateableEntity for universities.
class University(RateableEntity):

View File

@ -184,7 +184,7 @@
<!-- Handlebars templates -->
<!-- TODO: Use a templating engine to automatically include all handlebars templates required for a certain page. -->
<script id="review_item_handlebars" type="text/x-handlebars-template">
<div class="row" id="{{id}}">
<div class="row" id="{{pk}}">
<div class="col-sm-3">
<img src="http://dummyimage.com/60x60/666/ffffff&text=No+Image" class="img-rounded">
<div class="review-block-name"><a href="#">{{username}}</a></div>