Continue config the backup moduel

This commit is contained in:
Roberto Rosario
2012-08-18 10:22:46 -04:00
parent 08dc52c653
commit 00b9bf6061
4810 changed files with 250 additions and 40 deletions
+39
View File
@@ -4,6 +4,7 @@ import datetime
import logging
from django.db import models
from django.db import DatabaseError, transaction
from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ugettext
from django.contrib.contenttypes.models import ContentType
@@ -17,8 +18,46 @@ logger = logging.getLogger(__name__)
class App(TranslatableLabelMixin, LiveObjectMixin, models.Model):
translatables = ['label', 'description']
class UnableToRegister(Exception):
pass
name = models.CharField(max_length=64, verbose_name=_(u'name'), unique=True)
icon = models.CharField(max_length=64, verbose_name=_(u'icon'), blank=True)
dependencies = models.ManyToManyField('self', verbose_name=_(u'dependencies'), symmetrical=False, blank=True, null=True)
#version
#top_urls
#namespace
@classmethod
@transaction.commit_on_success
def register(cls, name, label, icon=None, description=None):
try:
app, created = App.objects.get_or_create(name=name)
except DatabaseError:
transaction.rollback()
raise UnableToRegister
else:
app.label = label
if icon:
app.icon = icon
if description:
app.description = description
app.dependencies.clear()
app.save()
return app
def set_dependencies(self, app_names):
for app_name in app_names:
app = App.objects.get(name=app_name)
self.dependencies.add(app)
def set_backup(self, *args, **kwargs):
return AppBackup(self, *args, **kwargs)
def __unicode__(self):
return unicode(self.label)
class Meta:
ordering = ('name', )