Esempio n. 1
0
from django.contrib.auth.models import User
from modelversions import version_model


class ProjectAdmin(admin.ModelAdmin):
    search_fields = (
        "title",
        "participants__last_name",
    )
    list_display = ("title", "course", "modified", "submitted", "id")
    filter_horizontal = ('participants', )

    def formfield_for_foreignkey(self, db_field, request, **kwargs):
        if db_field.name == "author":
            kwargs["queryset"] = User.objects.all().order_by('username')
        return super(ProjectAdmin,
                     self).formfield_for_foreignkey(db_field, request,
                                                    **kwargs)

    def formfield_for_manytomany(self, db_field, request, **kwargs):
        if db_field.name == "participants":
            kwargs["queryset"] = User.objects.all().order_by('username')
        return super(ProjectAdmin,
                     self).formfield_for_manytomany(db_field, request,
                                                    **kwargs)


admin.site.register(Project, ProjectAdmin)

ProjectVersion = version_model(Project)
Esempio n. 2
0
                    colgrp.user_set.remove(oldp)
            if request and request.method == "POST" and \
                    (col.policy != policy or col.title != self.title):
                col.title = self.title
                col.policy = policy
                col.save()

        return col

    def content_metrics(self):
        "Do some rough heuristics on how much each author contributed"
        last_content = ''
        author_contributions = {}
        for v in self.versions:
            change = len(v.body) - len(last_content)
            author_contributions.setdefault(v.author,[0,0])
            if change > 0: #track adds
                author_contributions[v.author][0] += change
            elif change < 0: #track deletes
                author_contributions[v.author][1] -= change
            last_content = v.body
        return author_contributions

    @property
    def dir(self):
        return dir(self)
        
        
        
ProjectVersion = version_model(Project)
Esempio n. 3
0
from django.db import models
from modelversions import version_model
#from tagging.fields import TagField

# Dummy models to test versioning
class ModelOne(models.Model):
    name = models.CharField(maxlength=25)
    time = models.DateTimeField(auto_now_add=True)
#    tag = TagField()
    
    def __getattr__(self,name):
        if name == 'testattr':
            return "Called __getattr__"
        else: raise AttributeError, name
        
ModelOneVersion = version_model(ModelOne)

class ModelTwo(models.Model):
    name = models.CharField(maxlength=25)
    num = models.IntegerField()
ModelTwoVersion = version_model(ModelTwo)

class TestParent(models.Model):
    name = models.CharField(maxlength=25)
TestParentVersion = version_model(TestParent)

class TestChild(models.Model):
    name = models.CharField(maxlength=25)
    parent = models.ForeignKey(TestParent)
TestChildVersion = version_model(TestChild)