Dodanie Pygments do requirements.txt (używane do kolorowania diffów).
[redakcja.git] / apps / api / models.py
index c08f38d..8252589 100644 (file)
@@ -1,4 +1,5 @@
 from django.db import models
 from django.db import models
+from django.contrib.auth.models import User
 
 # Create your models here.
 class PartCache(models.Model):
 
 # 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)
 
         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 = (           
+            ("view_prq", "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 = (
+            ("share_document", "Can share documents without pull requests."),
+            ("view_other_document", "Can view other's documents."),
+        )    
\ No newline at end of file