readthedocs.org/readthedocs/builds/forms.py

41 lines
1.2 KiB
Python

"""Django forms for the builds app."""
from __future__ import absolute_import
from builtins import object
from django import forms
from readthedocs.builds.models import VersionAlias, Version
from readthedocs.projects.models import Project
from readthedocs.core.utils import trigger_build
class AliasForm(forms.ModelForm):
class Meta(object):
model = VersionAlias
fields = (
'project',
'from_slug',
'to_slug',
'largest',
)
def __init__(self, instance=None, *args, **kwargs): # noqa
super(AliasForm, self).__init__(instance=instance, *args, **kwargs)
if instance:
self.fields['project'].queryset = (Project.objects
.filter(pk=instance.project.pk))
class VersionForm(forms.ModelForm):
class Meta(object):
model = Version
fields = ['active', 'privacy_level', 'tags']
def save(self, commit=True):
obj = super(VersionForm, self).save(commit=commit)
if obj.active and not obj.built and not obj.uploaded:
trigger_build(project=obj.project, version=obj)
return obj