X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/d9504c2a3128f75281f20f7e37822bf72f64f897..617a9462b01ede76eb81f3f440b99fcc344ceb4f:/apps/api/models.py?ds=sidebyside diff --git a/apps/api/models.py b/apps/api/models.py index c08f38db..90f962e0 100644 --- a/apps/api/models.py +++ b/apps/api/models.py @@ -1,4 +1,5 @@ from django.db import models +from django.contrib.auth.models import User # Create your models here. class PartCache(models.Model): @@ -20,11 +21,53 @@ class PartCache(models.Model): for part in created: me.objects.create(user_id=userid, document_id=docid, part_id=part) - - - - - - \ No newline at end of file +class PullRequest(models.Model): + REQUEST_STATUSES = { + "N": "New", + "E": "Edited/Conflicting", + "R": "Rejected", + "A": "Accepted & merged", + } + + comitter = models.ForeignKey(User) # the user who request the pull + comment = models.TextField() # addtional comments to the request + + timestamp = models.DateTimeField(auto_now_add=True) + + # document to merge + document = models.CharField(max_length=255) + + # revision to be merged into the main branch + source_revision = models.CharField(max_length=40, unique=True) + target_revision = models.CharField(max_length=40) + + # current status + status = models.CharField(max_length=1, choices=REQUEST_STATUSES.items()) + + # comment to the status change of request (if applicable) + response_comment = models.TextField(blank=True) + + # revision number in which the changes were merged (if any) + merged_revision = models.CharField(max_length=40, blank=True, null=True) + merge_timestamp = models.DateTimeField(blank=True, null=True) + + def __unicode__(self): + return unicode(self.comitter) + u':' + self.document + + + class Meta: + permissions = ( + ("pullrequest.can_view", "Can view pull request's contents."), + ) + + +# This is actually an abstract Model, but if we declare +# it as so Django ignores the permissions :( +class Document(models.Model): + class Meta: + permissions = ( + ("document.can_share", "Can share documents without pull requests."), + ("document.can_view_other", "Can view other's documents."), + ) \ No newline at end of file