diff options
Diffstat (limited to 'bn_django/git_browse/models.py')
| -rw-r--r-- | bn_django/git_browse/models.py | 46 | 
1 files changed, 46 insertions, 0 deletions
diff --git a/bn_django/git_browse/models.py b/bn_django/git_browse/models.py index 93a22b3..765fe02 100644 --- a/bn_django/git_browse/models.py +++ b/bn_django/git_browse/models.py @@ -33,3 +33,49 @@ class Repository(models.Model):          return "/code/%s/" % self.slug      def get_admin_url(self):          return "%s/code/repository/%s/" % (ADMIN_URL, self.slug) + +class Tree(models.Model): +    repo = models.ForeignKey(Repository) +    mode = models.CharField("file mode/permissions", blank=False,maxlength=4) +    path = models.CharField("relative path from repo base", maxlength=512) +    id = models.CharField("hash", maxlength=40,blank=False,primary_key=True) +    name = models.CharField("name of dir", maxlength=128,blank=False) +    type = 'tree' + +    class Admin:  +        ordering = ['repo','path'] + +    def __str__(self): +        return self.name +    def get_absolute_url(self): +        return "/code/%s/%s" % (self.repo.slug, self.hash) +    def get_admin_url(self): +        return "%s/code/tree/%s/" % (ADMIN_URL, self.id) + +def tree_from_str(s): +    s = s.split(); +    if len(s) != 4: return  +    return Tree(mode=s[0],id=s[2],name=s[3]) + +class Blob(models.Model): +    repo = models.ForeignKey(Repository) +    mode = models.CharField("file mode/permissions", blank=False,maxlength=4) +    path = models.CharField("relative path from repo base", maxlength=512) +    id = models.CharField("hash", maxlength=40,blank=False,primary_key=True) +    name = models.CharField("name of dir", maxlength=128,blank=False) +    type='blob' + +    class Admin:  +        ordering = ['repo','path'] + +    def __str__(self): +        return self.name +    def get_absolute_url(self): +        return "/code/%s/%s" % (self.repo.slug, self.hash) +    def get_admin_url(self): +        return "%s/code/tree/%s/" % (ADMIN_URL, self.id) + +def blob_from_str(s): +    s = s.split(); +    if len(s) != 4: return +    return Blob(mode=s[0],id=s[2],name=s[3])  | 
