Added ID to serializers

This commit is contained in:
Marc Aymerich 2015-04-30 09:51:55 +00:00
parent f090ecc3a9
commit 83831edf0b
19 changed files with 37 additions and 30 deletions

View File

@ -70,9 +70,8 @@ If you are planing to do some development or perhaps just checking out this proj
sshfs orchestra@<container-ip>: ~<user>/orchestra sshfs orchestra@<container-ip>: ~<user>/orchestra
``` ```
5. To upgrade to current master just 5. To upgrade to current master just re-run the deploy script
```bash ```bash
cd ~orchestra/django-orchestra/
sudo ~orchestra/django-orchestra/scripts/container/deploy.sh sudo ~orchestra/django-orchestra/scripts/container/deploy.sh
``` ```

View File

@ -89,6 +89,7 @@ INSTALLED_APPS = (
'orchestra.contrib.miscellaneous', 'orchestra.contrib.miscellaneous',
'orchestra.contrib.bills', 'orchestra.contrib.bills',
'orchestra.contrib.payments', 'orchestra.contrib.payments',
'orchestra.contrib.tasks',
# Third-party apps # Third-party apps
'django_extensions', 'django_extensions',

View File

@ -7,7 +7,7 @@ class AccountSerializer(serializers.HyperlinkedModelSerializer):
class Meta: class Meta:
model = Account model = Account
fields = ( fields = (
'url', 'username', 'type', 'language', 'short_name', 'full_name', 'date_joined', 'url', 'id', 'username', 'type', 'language', 'short_name', 'full_name', 'date_joined',
'is_active' 'is_active'
) )

View File

@ -19,7 +19,7 @@ class BillSerializer(AccountSerializerMixin, serializers.HyperlinkedModelSeriali
class Meta: class Meta:
model = Bill model = Bill
fields = ( fields = (
'url', 'number', 'type', 'total', 'is_sent', 'created_on', 'due_on', 'url', 'id', 'number', 'type', 'total', 'is_sent', 'created_on', 'due_on',
'comments', 'comments',
# 'lines' # 'lines'
) )

View File

@ -12,6 +12,6 @@ class ContactSerializer(AccountSerializerMixin, serializers.HyperlinkedModelSeri
class Meta: class Meta:
model = Contact model = Contact
fields = ( fields = (
'url', 'short_name', 'full_name', 'email', 'email_usage', 'phone', 'url', 'id', 'short_name', 'full_name', 'email', 'email_usage', 'phone',
'phone2', 'address', 'city', 'zipcode', 'country' 'phone2', 'address', 'city', 'zipcode', 'country'
) )

View File

@ -12,7 +12,7 @@ from .models import Database, DatabaseUser
class RelatedDatabaseUserSerializer(AccountSerializerMixin, serializers.HyperlinkedModelSerializer): class RelatedDatabaseUserSerializer(AccountSerializerMixin, serializers.HyperlinkedModelSerializer):
class Meta: class Meta:
model = DatabaseUser model = DatabaseUser
fields = ('url', 'username') fields = ('url', 'id', 'username')
def from_native(self, data, files=None): def from_native(self, data, files=None):
queryset = self.opts.model.objects.filter(account=self.account) queryset = self.opts.model.objects.filter(account=self.account)
@ -24,7 +24,7 @@ class DatabaseSerializer(AccountSerializerMixin, HyperlinkedModelSerializer):
class Meta: class Meta:
model = Database model = Database
fields = ('url', 'name', 'type', 'users') fields = ('url', 'id', 'name', 'type', 'users')
postonly_fields = ('name', 'type') postonly_fields = ('name', 'type')
def validate(self, attrs): def validate(self, attrs):
@ -38,7 +38,7 @@ class DatabaseSerializer(AccountSerializerMixin, HyperlinkedModelSerializer):
class RelatedDatabaseSerializer(AccountSerializerMixin, serializers.HyperlinkedModelSerializer): class RelatedDatabaseSerializer(AccountSerializerMixin, serializers.HyperlinkedModelSerializer):
class Meta: class Meta:
model = Database model = Database
fields = ('url', 'name',) fields = ('url', 'id', 'name',)
def from_native(self, data, files=None): def from_native(self, data, files=None):
queryset = self.opts.model.objects.filter(account=self.account) queryset = self.opts.model.objects.filter(account=self.account)
@ -50,7 +50,7 @@ class DatabaseUserSerializer(AccountSerializerMixin, SetPasswordHyperlinkedSeria
class Meta: class Meta:
model = DatabaseUser model = DatabaseUser
fields = ('url', 'username', 'password', 'type', 'databases') fields = ('url', 'id', 'username', 'password', 'type', 'databases')
postonly_fields = ('username', 'type', 'password') postonly_fields = ('username', 'type', 'password')
def validate(self, attrs): def validate(self, attrs):

View File

@ -25,7 +25,7 @@ class DomainSerializer(AccountSerializerMixin, HyperlinkedModelSerializer):
class Meta: class Meta:
model = Domain model = Domain
fields = ('url', 'name', 'records') fields = ('url', 'id', 'name', 'records')
postonly_fields = ('name',) postonly_fields = ('name',)
def clean_name(self, attrs, source): def clean_name(self, attrs, source):

View File

@ -6,14 +6,14 @@ from .models import Ticket, Message, Queue
class QueueSerializer(serializers.HyperlinkedModelSerializer): class QueueSerializer(serializers.HyperlinkedModelSerializer):
class Meta: class Meta:
model = Queue model = Queue
fields = ('url', 'name', 'default', 'notify') fields = ('url', 'id', 'name', 'default', 'notify')
read_only_fields = ('name', 'default', 'notify') read_only_fields = ('name', 'default', 'notify')
class MessageSerializer(serializers.HyperlinkedModelSerializer): class MessageSerializer(serializers.HyperlinkedModelSerializer):
class Meta: class Meta:
model = Message model = Message
fields = ('id', 'author', 'author_name', 'content', 'created_on') fields = ('url', 'id', 'author', 'author_name', 'content', 'created_on')
read_only_fields = ('author', 'author_name', 'created_on') read_only_fields = ('author', 'author_name', 'created_on')
def get_identity(self, data): def get_identity(self, data):

View File

@ -14,7 +14,7 @@ from .models import List
class RelatedDomainSerializer(AccountSerializerMixin, serializers.HyperlinkedModelSerializer): class RelatedDomainSerializer(AccountSerializerMixin, serializers.HyperlinkedModelSerializer):
class Meta: class Meta:
model = List.address_domain.field.rel.to model = List.address_domain.field.rel.to
fields = ('url', 'name') fields = ('url', 'id', 'name')
def from_native(self, data, files=None): def from_native(self, data, files=None):
queryset = self.opts.model.objects.filter(account=self.account) queryset = self.opts.model.objects.filter(account=self.account)
@ -36,7 +36,7 @@ class ListSerializer(AccountSerializerMixin, SetPasswordHyperlinkedSerializer):
class Meta: class Meta:
model = List model = List
fields = ('url', 'name', 'password', 'address_name', 'address_domain', 'admin_email') fields = ('url', 'id', 'name', 'password', 'address_name', 'address_domain', 'admin_email')
postonly_fields = ('name', 'password') postonly_fields = ('name', 'password')
def validate_address_domain(self, attrs, source): def validate_address_domain(self, attrs, source):

View File

@ -12,7 +12,7 @@ from .models import Mailbox, Address
class RelatedDomainSerializer(AccountSerializerMixin, serializers.HyperlinkedModelSerializer): class RelatedDomainSerializer(AccountSerializerMixin, serializers.HyperlinkedModelSerializer):
class Meta: class Meta:
model = Address.domain.field.rel.to model = Address.domain.field.rel.to
fields = ('url', 'name') fields = ('url', 'id', 'name')
def from_native(self, data, files=None): def from_native(self, data, files=None):
queryset = self.opts.model.objects.filter(account=self.account) queryset = self.opts.model.objects.filter(account=self.account)
@ -24,7 +24,7 @@ class RelatedAddressSerializer(AccountSerializerMixin, serializers.HyperlinkedMo
class Meta: class Meta:
model = Address model = Address
fields = ('url', 'name', 'domain', 'forward') fields = ('url', 'id', 'name', 'domain', 'forward')
# #
# def from_native(self, data, files=None): # def from_native(self, data, files=None):
# queryset = self.opts.model.objects.filter(account=self.account) # queryset = self.opts.model.objects.filter(account=self.account)
@ -37,7 +37,7 @@ class MailboxSerializer(AccountSerializerMixin, SetPasswordHyperlinkedSerializer
class Meta: class Meta:
model = Mailbox model = Mailbox
fields = ( fields = (
'url', 'name', 'password', 'filtering', 'custom_filtering', 'addresses', 'is_active' 'url', 'id', 'name', 'password', 'filtering', 'custom_filtering', 'addresses', 'is_active'
) )
postonly_fields = ('name', 'password') postonly_fields = ('name', 'password')
@ -45,7 +45,7 @@ class MailboxSerializer(AccountSerializerMixin, SetPasswordHyperlinkedSerializer
class RelatedMailboxSerializer(AccountSerializerMixin, serializers.HyperlinkedModelSerializer): class RelatedMailboxSerializer(AccountSerializerMixin, serializers.HyperlinkedModelSerializer):
class Meta: class Meta:
model = Mailbox model = Mailbox
fields = ('url', 'name') fields = ('url', 'id', 'name')
def from_native(self, data, files=None): def from_native(self, data, files=None):
queryset = self.opts.model.objects.filter(account=self.account) queryset = self.opts.model.objects.filter(account=self.account)
@ -58,7 +58,7 @@ class AddressSerializer(AccountSerializerMixin, serializers.HyperlinkedModelSeri
class Meta: class Meta:
model = Address model = Address
fields = ('url', 'name', 'domain', 'mailboxes', 'forward') fields = ('url', 'id', 'name', 'domain', 'mailboxes', 'forward')
def validate(self, attrs): def validate(self, attrs):
attrs = super(AddressSerializer, self).validate(attrs) attrs = super(AddressSerializer, self).validate(attrs)

View File

@ -9,6 +9,6 @@ class OrderSerializer(AccountSerializerMixin, serializers.HyperlinkedModelSerial
class Meta: class Meta:
model = Order model = Order
fields = ( fields = (
'url', 'registered_on', 'cancelled_on', 'billed_on', 'billed_until', 'url', 'id', 'registered_on', 'cancelled_on', 'billed_on', 'billed_until',
'description' 'description'
) )

View File

@ -9,7 +9,7 @@ from .models import PaymentSource, Transaction
class PaymentSourceSerializer(AccountSerializerMixin, serializers.HyperlinkedModelSerializer): class PaymentSourceSerializer(AccountSerializerMixin, serializers.HyperlinkedModelSerializer):
class Meta: class Meta:
model = PaymentSource model = PaymentSource
fields = ('url', 'method', 'data', 'is_active') fields = ('url', 'id', 'method', 'data', 'is_active')
def validate_data(self, attrs, source): def validate_data(self, attrs, source):
plugin = PaymentMethod.get(attrs['method']) plugin = PaymentMethod.get(attrs['method'])

View File

@ -25,5 +25,5 @@ class SaaSSerializer(AccountSerializerMixin, SetPasswordHyperlinkedSerializer):
class Meta: class Meta:
model = SaaS model = SaaS
fields = ('url', 'name', 'service', 'is_active', 'data', 'password') fields = ('url', 'id', 'name', 'service', 'is_active', 'data', 'password')
postonly_fields = ('name', 'service', 'password') postonly_fields = ('name', 'service', 'password')

View File

@ -13,7 +13,7 @@ from .validators import validate_home
class GroupSerializer(AccountSerializerMixin, serializers.HyperlinkedModelSerializer): class GroupSerializer(AccountSerializerMixin, serializers.HyperlinkedModelSerializer):
class Meta: class Meta:
model = SystemUser model = SystemUser
fields = ('url', 'username',) fields = ('url', 'id', 'username',)
def from_native(self, data, files=None): def from_native(self, data, files=None):
queryset = self.opts.model.objects.filter(account=self.account) queryset = self.opts.model.objects.filter(account=self.account)
@ -26,7 +26,7 @@ class SystemUserSerializer(AccountSerializerMixin, SetPasswordHyperlinkedSeriali
class Meta: class Meta:
model = SystemUser model = SystemUser
fields = ( fields = (
'url', 'username', 'password', 'home', 'directory', 'shell', 'groups', 'is_active', 'url', 'id', 'username', 'password', 'home', 'directory', 'shell', 'groups', 'is_active',
) )
postonly_fields = ('username', 'password') postonly_fields = ('username', 'password')

View File

@ -23,7 +23,7 @@ class WebAppSerializer(AccountSerializerMixin, HyperlinkedModelSerializer):
class Meta: class Meta:
model = WebApp model = WebApp
fields = ('url', 'name', 'type', 'options') fields = ('url', 'id', 'name', 'type', 'options')
postonly_fields = ('name', 'type') postonly_fields = ('name', 'type')
def create(self, validated_data): def create(self, validated_data):

View File

@ -12,7 +12,7 @@ from .validators import validate_domain_protocol
class RelatedDomainSerializer(AccountSerializerMixin, serializers.HyperlinkedModelSerializer): class RelatedDomainSerializer(AccountSerializerMixin, serializers.HyperlinkedModelSerializer):
class Meta: class Meta:
model = Website.domains.field.rel.to model = Website.domains.field.rel.to
fields = ('url', 'name') fields = ('url', 'id', 'name')
def from_native(self, data, files=None): def from_native(self, data, files=None):
queryset = self.opts.model.objects.filter(account=self.account) queryset = self.opts.model.objects.filter(account=self.account)
@ -22,7 +22,7 @@ class RelatedDomainSerializer(AccountSerializerMixin, serializers.HyperlinkedMod
class RelatedWebAppSerializer(AccountSerializerMixin, serializers.HyperlinkedModelSerializer): class RelatedWebAppSerializer(AccountSerializerMixin, serializers.HyperlinkedModelSerializer):
class Meta: class Meta:
model = Content.webapp.field.rel.to model = Content.webapp.field.rel.to
fields = ('url', 'name', 'type') fields = ('url', 'id', 'name', 'type')
def from_native(self, data, files=None): def from_native(self, data, files=None):
queryset = self.opts.model.objects.filter(account=self.account) queryset = self.opts.model.objects.filter(account=self.account)
@ -60,7 +60,7 @@ class WebsiteSerializer(AccountSerializerMixin, HyperlinkedModelSerializer):
class Meta: class Meta:
model = Website model = Website
fields = ('url', 'name', 'protocol', 'domains', 'is_active', 'contents', 'directives') fields = ('url', 'id', 'name', 'protocol', 'domains', 'is_active', 'contents', 'directives')
postonly_fileds = ('name',) postonly_fileds = ('name',)
def full_clean(self, instance): def full_clean(self, instance):

View File

@ -68,7 +68,7 @@ class Command(BaseCommand):
manage_path = os.path.join(get_site_dir(), 'manage.py') manage_path = os.path.join(get_site_dir(), 'manage.py')
run("python %s collectstatic --noinput" % manage_path) run("python %s collectstatic --noinput" % manage_path)
run("python %s syncdb --noinput" % manage_path) run("python %s migrate --noinput accounts" % manage_path)
run("python %s migrate --noinput" % manage_path) run("python %s migrate --noinput" % manage_path)
if options.get('restart'): if options.get('restart'):
run("python %s restartservices" % manage_path) run("python %s restartservices" % manage_path)

View File

@ -44,7 +44,12 @@ def running_syncdb():
def database_ready(): def database_ready():
return not running_syncdb() and 'setuppostgres' not in sys.argv and 'test' not in sys.argv and 'celerybeat' not in sys.argv return (not running_syncdb() and
'setuppostgres' not in sys.argv and
'test' not in sys.argv and
'celerybeat' not in sys.argv and
len(sys.argv) <= 1 and
'--help' in sys.argv)
def dict_setting_to_choices(choices): def dict_setting_to_choices(choices):

View File

@ -55,6 +55,8 @@ if [[ ! $CURRENT_VERSION ]]; then
else else
# Upgrade and relay on postguprade for finishing up the installation # Upgrade and relay on postguprade for finishing up the installation
surun "export GIT_DIR=~/django-orchestra/.git && git checkout master && git pull origin" surun "export GIT_DIR=~/django-orchestra/.git && git checkout master && git pull origin"
# TODO pass testing to postupgrade instead of running his here
sudo orchestra-admin install_requirements --testing
$PYTHON_BIN $MANAGE migrate postupgradeorchestra --from $CURRENT_VERSION $PYTHON_BIN $MANAGE migrate postupgradeorchestra --from $CURRENT_VERSION
exit exit
fi fi