Hide VCS release option when not available
This commit is contained in:
parent
b93a612207
commit
746ce990bd
|
@ -18,6 +18,7 @@
|
||||||
from flask import Flask, url_for
|
from flask import Flask, url_for
|
||||||
from flask_sqlalchemy import SQLAlchemy
|
from flask_sqlalchemy import SQLAlchemy
|
||||||
from flask_migrate import Migrate
|
from flask_migrate import Migrate
|
||||||
|
from urllib.parse import urlparse
|
||||||
from app import app
|
from app import app
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from sqlalchemy.orm import validates
|
from sqlalchemy.orm import validates
|
||||||
|
@ -339,6 +340,26 @@ class Package(db.Model):
|
||||||
|
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def canImportScreenshot(self):
|
||||||
|
if self.repo is None:
|
||||||
|
return False
|
||||||
|
|
||||||
|
url = urlparse(self.repo)
|
||||||
|
if url.netloc == "github.com":
|
||||||
|
return True
|
||||||
|
|
||||||
|
return False
|
||||||
|
|
||||||
|
def canMakeReleaseFromVCS(self):
|
||||||
|
if self.repo is None:
|
||||||
|
return False
|
||||||
|
|
||||||
|
url = urlparse(self.repo)
|
||||||
|
if url.netloc == "github.com":
|
||||||
|
return True
|
||||||
|
|
||||||
|
return False
|
||||||
|
|
||||||
def checkPerm(self, user, perm):
|
def checkPerm(self, user, perm):
|
||||||
if not user.is_authenticated:
|
if not user.is_authenticated:
|
||||||
return False
|
return False
|
||||||
|
|
|
@ -11,7 +11,9 @@
|
||||||
|
|
||||||
{{ render_field(form.title) }}
|
{{ render_field(form.title) }}
|
||||||
{{ render_field(form.uploadOpt) }}
|
{{ render_field(form.uploadOpt) }}
|
||||||
|
{% if package.canMakeReleaseFromVCS() %}
|
||||||
{{ render_field(form.vcsLabel) }}
|
{{ render_field(form.vcsLabel) }}
|
||||||
|
{% endif %}
|
||||||
{{ render_field(form.fileUpload) }}
|
{{ render_field(form.fileUpload) }}
|
||||||
{{ render_submit_field(form.submit) }}
|
{{ render_submit_field(form.submit) }}
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -25,7 +25,6 @@ from app.tasks.importtasks import importRepoScreenshot, makeVCSRelease
|
||||||
from app.utils import *
|
from app.utils import *
|
||||||
|
|
||||||
from celery import uuid
|
from celery import uuid
|
||||||
from urllib.parse import urlparse
|
|
||||||
from flask_wtf import FlaskForm
|
from flask_wtf import FlaskForm
|
||||||
from wtforms import *
|
from wtforms import *
|
||||||
from wtforms.validators import *
|
from wtforms.validators import *
|
||||||
|
@ -188,9 +187,7 @@ def create_edit_package_page(author=None, name=None):
|
||||||
|
|
||||||
db.session.commit() # save
|
db.session.commit() # save
|
||||||
|
|
||||||
if wasNew:
|
if wasNew and package.canImportScreenshot():
|
||||||
url = urlparse(package.repo)
|
|
||||||
if url.netloc == "github.com":
|
|
||||||
task = importRepoScreenshot.delay(package.id)
|
task = importRepoScreenshot.delay(package.id)
|
||||||
return redirect(url_for("check_task", id=task.id, r=package.getDetailsURL()))
|
return redirect(url_for("check_task", id=task.id, r=package.getDetailsURL()))
|
||||||
|
|
||||||
|
@ -395,7 +392,7 @@ def reject_editrequest_page(package, id):
|
||||||
class CreatePackageReleaseForm(FlaskForm):
|
class CreatePackageReleaseForm(FlaskForm):
|
||||||
name = StringField("Name")
|
name = StringField("Name")
|
||||||
title = StringField("Title")
|
title = StringField("Title")
|
||||||
uploadOpt = RadioField ("File", choices=[("vcs", "From VCS Commit or Branch"), ("upload", "File Upload")])
|
uploadOpt = RadioField ("Method", choices=[("upload", "File Upload")], default="upload")
|
||||||
vcsLabel = StringField("VCS Commit or Branch", default="master")
|
vcsLabel = StringField("VCS Commit or Branch", default="master")
|
||||||
fileUpload = FileField("File Upload")
|
fileUpload = FileField("File Upload")
|
||||||
submit = SubmitField("Save")
|
submit = SubmitField("Save")
|
||||||
|
@ -417,6 +414,11 @@ def create_release_page(package):
|
||||||
|
|
||||||
# Initial form class from post data and default data
|
# Initial form class from post data and default data
|
||||||
form = CreatePackageReleaseForm()
|
form = CreatePackageReleaseForm()
|
||||||
|
if package.canMakeReleaseFromVCS():
|
||||||
|
form["uploadOpt"].choices = [("vcs", "From VCS Commit or Branch"), ("upload", "File Upload")]
|
||||||
|
if request.method != "POST":
|
||||||
|
form["uploadOpt"].data = "vcs"
|
||||||
|
|
||||||
if request.method == "POST" and form.validate():
|
if request.method == "POST" and form.validate():
|
||||||
if form["uploadOpt"].data == "vcs":
|
if form["uploadOpt"].data == "vcs":
|
||||||
rel = PackageRelease()
|
rel = PackageRelease()
|
||||||
|
|
Loading…
Reference in New Issue