from django.db import models
+from django.contrib.auth.models import User
# Create your models here.
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