diff options
-rw-r--r-- | app/models.py | 25 | ||||
-rw-r--r-- | app/templates/macros/forms.html | 34 | ||||
-rw-r--r-- | app/templates/packages/create_edit.html | 36 | ||||
-rw-r--r-- | app/templates/packages/editrequest_create_edit.html | 19 | ||||
-rw-r--r-- | app/templates/packages/view.html | 36 | ||||
-rw-r--r-- | app/utils.py | 2 | ||||
-rw-r--r-- | app/views/packages/__init__.py | 2 | ||||
-rw-r--r-- | app/views/packages/editrequests.py | 7 |
8 files changed, 93 insertions, 68 deletions
diff --git a/app/models.py b/app/models.py index 14ff3c7..368e59b 100644 --- a/app/models.py +++ b/app/models.py @@ -215,18 +215,19 @@ class PackageType(enum.Enum): class PackagePropertyKey(enum.Enum): - name = "Name" - title = "Title" - shortDesc = "Short Description" - desc = "Description" - type = "Type" - license = "License" - tags = "Tags" - provides = "Provides" - repo = "Repository" - website = "Website" - issueTracker = "Issue Tracker" - forums = "Forum Topic ID" + name = "Name" + title = "Title" + shortDesc = "Short Description" + desc = "Description" + type = "Type" + license = "License" + media_license = "Media License" + tags = "Tags" + provides = "Provides" + repo = "Repository" + website = "Website" + issueTracker = "Issue Tracker" + forums = "Forum Topic ID" def convert(self, value): if self == PackagePropertyKey.tags: diff --git a/app/templates/macros/forms.html b/app/templates/macros/forms.html index 7700fe2..66f305b 100644 --- a/app/templates/macros/forms.html +++ b/app/templates/macros/forms.html @@ -20,6 +20,40 @@ <script src="/static/tagselector.js"></script> {% endmacro %} +{% macro package_lists() -%} + <script> + meta_packages = [ + {% for m in mpackages %} + {# This is safe as name can only contain `[a-z0-9_]` #} + { + id: "{{ m.name }}", + value: "{{ m.name }}", + toString: function() { return "{{ m.name }}"; }, + }, + {% endfor %} + ] + + function escape(unsafe) { + return unsafe + .replace(/&/g, "&") + .replace(/</g, "<") + .replace(/>/g, ">") + .replace(/"/g, """) + .replace(/'/g, "'"); + } + + all_packages = meta_packages.slice(); + + {% for p in packages %} + all_packages.push({ + id: "{{ p.author.username }}/{{ p.name }}", + value: escape({{ p.title | tojson }} + " by " + {{ p.author.display_name | tojson }}), + toString: function() { return escape({{ p.title | tojson }} + " by " + {{ p.author.display_name | tojson }} + " only"); }, + }); + {% endfor %} + </script> +{% endmacro %} + {% macro render_multiselect_field(field, label=None, label_visible=true, right_url=None, right_label=None) -%} <div class="form-group {% if field.errors %}has-error{% endif %} {{ kwargs.pop('class_', '') }}"> {% if field.type != 'HiddenField' and label_visible %} diff --git a/app/templates/packages/create_edit.html b/app/templates/packages/create_edit.html index ee05940..52a1d4b 100644 --- a/app/templates/packages/create_edit.html +++ b/app/templates/packages/create_edit.html @@ -10,40 +10,10 @@ {% block content %} <h1>Create Package</h1> - <script> - meta_packages = [ - {% for m in mpackages %} - {# This is safe as name can only contain `[a-z0-9_]` #} - { - id: "{{ m.name }}", - value: "{{ m.name }}", - toString: function() { return "{{ m.name }}"; }, - }, - {% endfor %} - ] - - function escape(unsafe) { - return unsafe - .replace(/&/g, "&") - .replace(/</g, "<") - .replace(/>/g, ">") - .replace(/"/g, """) - .replace(/'/g, "'"); - } - - all_packages = meta_packages.slice(); - - {% for p in packages %} - all_packages.push({ - id: "{{ p.author.username }}/{{ p.name }}", - value: escape({{ p.title | tojson }} + " by " + {{ p.author.display_name | tojson }}), - toString: function() { return escape({{ p.title | tojson }} + " by " + {{ p.author.display_name | tojson }} + " only"); }, - }); - {% endfor %} - </script> - - {% from "macros/forms.html" import render_field, render_submit_field, form_includes, render_multiselect_field, render_mpackage_field, render_deps_field %} + + {% from "macros/forms.html" import render_field, render_submit_field, form_includes, render_multiselect_field, render_mpackage_field, render_deps_field, package_lists %} {{ form_includes() }} + {{ package_lists() }} <form method="POST" action="" class="tableform"> {{ form.hidden_tag() }} diff --git a/app/templates/packages/editrequest_create_edit.html b/app/templates/packages/editrequest_create_edit.html index d245206..c83bade 100644 --- a/app/templates/packages/editrequest_create_edit.html +++ b/app/templates/packages/editrequest_create_edit.html @@ -5,19 +5,30 @@ {% endblock %} {% block content %} - {% from "macros/forms.html" import render_field, render_submit_field, form_includes, render_multiselect_field %} + {% from "macros/forms.html" import render_field, render_submit_field, form_includes, render_multiselect_field, render_mpackage_field, render_deps_field, package_lists %} {{ form_includes() }} + {{ package_lists() }} <form method="POST" action=""> {{ form.hidden_tag() }} + <h2 class="pkg_meta">Package</h2> + + {{ render_field(form.type) }} {{ render_field(form.name) }} {{ render_field(form.title) }} {{ render_field(form.shortDesc) }} {{ render_field(form.desc) }} - {{ render_field(form.type) }} - {{ render_field(form.license) }} {{ render_multiselect_field(form.tags) }} + + <h2 class="not_txp">Dependency Info</h2> + + {{ render_mpackage_field(form.provides_str, class_="not_txp", placeholder="Comma separated list") }} + {{ render_deps_field(form.harddep_str, class_="not_txp not_game", placeholder="Comma separated list") }} + {{ render_deps_field(form.softdep_str, class_="not_txp not_game", placeholder="Comma separated list") }} + + {{ render_field(form.license) }} + {{ render_field(form.media_license) }} {{ render_field(form.repo) }} {{ render_field(form.website) }} {{ render_field(form.issueTracker) }} @@ -29,4 +40,6 @@ {{ render_field(form.edit_desc) }} {{ render_submit_field(form.submit) }} </form> + + <script src="/static/package_edit.js"></script> {% endblock %} diff --git a/app/templates/packages/view.html b/app/templates/packages/view.html index 93f6645..2e62ea9 100644 --- a/app/templates/packages/view.html +++ b/app/templates/packages/view.html @@ -117,9 +117,9 @@ <li><a href="{{ package.getEditURL() }}">Edit</a></li> <li><a href="{{ package.getNewScreenshotURL() }}">Add screenshot</a></li> {% endif %} - {% if current_user.is_authenticated %} + {# {% if current_user.is_authenticated %} <li><a href="{{ package.getCreateEditRequestURL() }}">Suggest Changes</a></li> - {% endif %} + {% endif %} #} {% if package.checkPerm(current_user, "MAKE_RELEASE") %} <li><a href="{{ package.getCreateReleaseURL() }}">Create Release</a></li> {% endif %} @@ -216,19 +216,21 @@ </tr> </table> --> - {% if current_user.is_authenticated or requests %} - <h3>Edit Requests</h3> - - <ul> - {% for r in requests %} - <li> - <a href="{{ r.getURL() }}">{{ r.title }}</a> - by - <a href="{{ url_for('user_profile_page', username=r.author.username) }}">{{ r.author.display_name }}</a> - </li> - {% else %} - <li>No edit requests have been made.</li> - {% endfor %} - </ul> - {% endif %} + {# + {% if current_user.is_authenticated or requests %} + <h3>Edit Requests</h3> + + <ul> + {% for r in requests %} + <li> + <a href="{{ r.getURL() }}">{{ r.title }}</a> + by + <a href="{{ url_for('user_profile_page', username=r.author.username) }}">{{ r.author.display_name }}</a> + </li> + {% else %} + <li>No edit requests have been made.</li> + {% endfor %} + </ul> + {% endif %} + #} {% endblock %} diff --git a/app/utils.py b/app/utils.py index 5fd7cae..55311fa 100644 --- a/app/utils.py +++ b/app/utils.py @@ -68,7 +68,7 @@ def _do_login_user(user, remember_me=False): user.active = True if not user.rank.atLeast(UserRank.NEW_MEMBER): - user.rank = UserRank.NEW_MEMBER + user.rank = UserRank.MEMBER db.session.commit() diff --git a/app/views/packages/__init__.py b/app/views/packages/__init__.py index 2a28876..76d278b 100644 --- a/app/views/packages/__init__.py +++ b/app/views/packages/__init__.py @@ -272,4 +272,4 @@ def delete_package_page(package): return redirect(url) -from . import todo, screenshots, editrequests, releases +from . import todo, screenshots, releases diff --git a/app/views/packages/editrequests.py b/app/views/packages/editrequests.py index 51d5989..e071745 100644 --- a/app/views/packages/editrequests.py +++ b/app/views/packages/editrequests.py @@ -58,8 +58,13 @@ def create_edit_editrequest_page(package, id=None): edited_package = Package(package) erequest.applyAll(edited_package) - form = EditRequestForm(request.form, obj=edited_package) + if request.method == "GET": + deps = edited_package.dependencies + form.harddep_str.data = ",".join([str(x) for x in deps if not x.optional]) + form.softdep_str.data = ",".join([str(x) for x in deps if x.optional]) + form.provides_str.data = MetaPackage.ListToSpec(edited_package.provides) + if request.method == "POST" and form.validate(): if erequest is None: erequest = EditRequest() |