Serotonin Storm

source>vcs>googlecode>models.py
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
from django.db import models
from datetime import datetime

from vcs.models import BaseRepository, BaseCommit


get_time = lambda n: datetime(*localtime(n)[:-2])

class RepositoryManager(models.Manager):
    def from_post(self, data):
        return self.get_or_create(
            url = data['repository_path'],
            name = data['project_name'],
        )[0]

class GoogleCodeRepository(BaseRepository):
    objects = RepositoryManager()

    
class CommitManager(models.Manager):
    def from_post(self, data):
        return self.get_or_create(
            url = data['url'],
            timestamp = get_time(data['timestamp']),
            message = data['message'],
            author = data['author'],
            revision = int(data['revision']),
            path_count = int(data['path_count']),
            added = data.get('added',[]),      
            removed = data.get('removed',[]),      
            modified = data.get('modified',[]),      
        )[0]
    
class GoogleCodeCommit(models.Model):
    url = models.URLField(verify_exists=False)
    path_count = models.IntegerField()

    objects = CommitManager()