diff --git a/README.md b/README.md index 8ad47c2..5b3e368 100644 --- a/README.md +++ b/README.md @@ -11,12 +11,7 @@ This particular work in progress project is an attempt to make distribusi into a This project is made for Autonomous Practices at the WDKA in Rotterdam. ## Work in progress -1. ~~Nothing is working yet but I need to do this project in smaller steps then everything in one go.~~ -2. So far, in this project you can make a user, upload a zip, make a website name and have distribusi -run it for you. -3. There is a css editor and a theme selector, but very buggy. -I am still developing a lot of features and I want to finish them first before -I do a first pass, fixing issues and refactoring code. +Amazingly helpful testers, currently I am writing some database upgrades and new functionalities, and they don't work, so have some patience with testing the in development material. ## Start your engines! diff --git a/notes.md b/notes.md index 6ee6d8a..a77c85e 100644 --- a/notes.md +++ b/notes.md @@ -7,8 +7,12 @@ this way we should be able to run distribusi from code on a folder, or multiple # Shit! We need entire CRUD functionality. ## Create: +There is a listing of the users distribusis. Purp +There is a yellow button, giving you the new option. ### Uploading +User can select the distribusi and upload/update. + User can upload based on $distribusiname field in db. the zip file is changed to $distribusiname. and a folder is made in the stash called $distribusiname diff --git a/verse/forms/selectorform.py b/verse/forms/selectorform.py new file mode 100644 index 0000000..2746840 --- /dev/null +++ b/verse/forms/selectorform.py @@ -0,0 +1,15 @@ +from flask_wtf import FlaskForm +from wtforms import SubmitField, SelectField +from distribusimodel import Distribusis +from usermodel import User +from flask_login import current_user + + +class SelectorForm(FlaskForm): + distribusis = SelectField(u'Your existing distribusi:') + + new = SubmitField("new") + + update = SubmitField("update") + + delete = SubmitField("delete") diff --git a/verse/start.py b/verse/start.py index 9d2411d..9c80632 100644 --- a/verse/start.py +++ b/verse/start.py @@ -34,8 +34,10 @@ from forms.uploadform import UploadForm from forms.distribusiform import DistribusiForm from forms.themeform import ThemeForm from forms.editorform import EditorForm +from forms.selectorform import SelectorForm from statuspengguna.helper import AreFilesUploaded +from statuspengguna.helper import HasDistribusi from statuspengguna.loginuser import LoginUser from statuspengguna.registeruser import RegisterUser @@ -70,7 +72,12 @@ def distribusi(): uploadform = UploadForm() distribusiform = DistribusiForm() themeform = ThemeForm() + selectorform = SelectorForm() + selectorform.distribusis.choices = distribusisfields() + files_uploaded = AreFilesUploaded() + has_distribusi = HasDistribusi() + user = User.query.filter_by(email=current_user.email).first() distribusi = Distribusis.query.filter_by(userid=user.id).first() if distribusiform.validate_on_submit(): @@ -99,7 +106,9 @@ def distribusi(): uploadform=uploadform, distribusiform=distribusiform, themeform=themeform, + selectorform=selectorform, files_uploaded=files_uploaded, + has_distribusi=has_distribusi, ) return template @@ -245,6 +254,14 @@ def load_user(user_id): return User.query.get(int(user_id)) +def distribusisfields(): + distribusinames = [] + user = User.query.filter_by(email=current_user.email).first() + for distribusi in Distribusis.query.filter_by(userid=user.id).all(): + distribusinames.append(distribusi.distribusiname) + return distribusinames + + if __name__ == "__main__": APP.debug = True APP.run(port=5000) diff --git a/verse/static/css/selector.css b/verse/static/css/selector.css new file mode 100644 index 0000000..ef2df69 --- /dev/null +++ b/verse/static/css/selector.css @@ -0,0 +1,43 @@ +.selector-style { + padding: 0; + margin: 0; + border: 1px solid #ccc; + width: 120px; + border-radius: 3px; + overflow: hidden; + background-color: #fff; + background: #fff; + position: relative; +} + +.selector-style select { + padding: 5px 8px; + width: 130%; + border: none; + box-shadow: none; + background-color: transparent; + background-image: none; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.selector-style:after { + top: 50%; + left: 85%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; + border-color: rgba(0, 0, 0, 0); + border-top-color: #000000; + border-width: 5px; + margin-top: -2px; + z-index: 100; +} + +.selector-style select:focus { + outline: none; +} diff --git a/verse/static/css/style.css b/verse/static/css/style.css index e5cbb7f..8c3550c 100644 --- a/verse/static/css/style.css +++ b/verse/static/css/style.css @@ -34,13 +34,18 @@ div#upload form { .workflow{ margin-top: 1em; padding: 0.5em; - width: 25em; + width: 30em; border: 3px solid #E0B0FF; background-color:#383C4A; text-decoration: none; scroll-behavior: smooth; border-style: outset; } + +.workflow input{ + max-width: 20em; +} + #mainworkflow { width: 30em; @@ -79,6 +84,9 @@ input { border: none; background: #E0B0FF; text-decoration: none; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; margin: 1px; } diff --git a/verse/statuspengguna/helper.py b/verse/statuspengguna/helper.py index 32a02b5..973ea63 100644 --- a/verse/statuspengguna/helper.py +++ b/verse/statuspengguna/helper.py @@ -16,6 +16,15 @@ def AreFilesUploaded(): return True +def HasDistribusi(): + user = User.query.filter_by(email=current_user.email).first() + distribusi = Distribusis.query.filter_by(userid=user.id).first() + if distribusi is None: + print("distribusi is empty") + return False + return True + + # def IsThemeSelected # def IsCustomThemePresent # def IsDistribusiLive diff --git a/verse/templates/base.html b/verse/templates/base.html index 338d8ad..2379f17 100644 --- a/verse/templates/base.html +++ b/verse/templates/base.html @@ -5,7 +5,7 @@ Autonomous Practices X Distribusi-Verse - + diff --git a/verse/templates/distribusi.html b/verse/templates/distribusi.html index 875a6f1..7c4b320 100644 --- a/verse/templates/distribusi.html +++ b/verse/templates/distribusi.html @@ -13,6 +13,11 @@
+ {% if has_distribusi %} + {% block selector %} + {% include "distribusiworkflow/selector.html" %} + {% endblock selector%} + {%endif%} {% block upload %} {% include "distribusiworkflow/upload.html" %} {% endblock upload%} diff --git a/verse/templates/distribusiworkflow/selector.html b/verse/templates/distribusiworkflow/selector.html new file mode 100644 index 0000000..72472d0 --- /dev/null +++ b/verse/templates/distribusiworkflow/selector.html @@ -0,0 +1,21 @@ +
+

Welcome back to your Distribusi

+

You have already uploaded a distribusi website, do you want to make a new one, update or delete?

+
+ {{ selectorform.csrf_token }} + +
+ {{ selectorform.new }} +
+
+ {{ selectorform.update }} +
+
+ {{ selectorform.delete }} +
+
+