forked from crunk/distribusi-verse
crunk
6 months ago
38 changed files with 1396 additions and 1358 deletions
@ -1,25 +1,49 @@ |
|||||
[tool.black] |
[tool.ruff] |
||||
line-length = 79 |
line-length = 79 |
||||
target-version = ['py311'] |
target-version = "py311" |
||||
include = '\.pyi?$' |
#include = '\.pyi?$' |
||||
exclude = ''' |
exclude = [ |
||||
/( |
".bzr", |
||||
\.eggs |
".direnv", |
||||
| \.git |
".eggs", |
||||
| \.hg |
".git", |
||||
| \.mypy_cache |
".git-rewrite", |
||||
| \.tox |
".hg", |
||||
| \.venv |
".ipynb_checkpoints", |
||||
| _build |
".mypy_cache", |
||||
| buck-out |
".nox", |
||||
| build |
".pants.d", |
||||
| dist |
".pyenv", |
||||
|
".pytest_cache", |
||||
# The following are specific to Black, you probably don't want those. |
".pytype", |
||||
| blib2to3 |
".ruff_cache", |
||||
| tests/data |
".svn", |
||||
| profiling |
".tox", |
||||
)/ |
".venv", |
||||
''' |
".vscode", |
||||
|
"__pypackages__", |
||||
|
"_build", |
||||
|
"buck-out", |
||||
|
"build", |
||||
|
"dist", |
||||
|
"node_modules", |
||||
|
"site-packages", |
||||
|
"venv", |
||||
|
] |
||||
|
|
||||
|
[tool.ruff.lint] |
||||
|
# Enable Pyflakes (`F`) and a subset of the pycodestyle (`E`) codes by default. |
||||
|
select = ["E4", "E7", "E9", "F"] |
||||
|
ignore = [] |
||||
|
# Allow fix for all enabled rules (when `--fix`) is provided. |
||||
|
fixable = ["ALL"] |
||||
|
unfixable = [] |
||||
|
# Allow unused variables when underscore-prefixed. |
||||
|
dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" |
||||
|
|
||||
|
[tool.ruff.format] |
||||
|
quote-style = "double" |
||||
|
indent-style = "tab" |
||||
|
docstring-code-format = true |
||||
|
line-ending = "auto" |
||||
|
skip-magic-trailing-comma = false |
||||
|
@ -1,23 +1,23 @@ |
|||||
def deploy(): |
def deploy(): |
||||
"""Run deployment of database.""" |
"""Run deployment of database.""" |
||||
from flask_migrate import init, migrate, stamp, upgrade |
from flask_migrate import init, migrate, stamp, upgrade |
||||
|
|
||||
from app import create_app, db |
from app import create_app, db |
||||
from models.distribusi_model import Distribusis # noqa: F401 |
from models.distribusi_model import Distribusis # noqa: F401 |
||||
from models.distribusi_file_model import DistribusiFiles # noqa: F401 |
from models.distribusi_file_model import DistribusiFiles # noqa: F401 |
||||
|
|
||||
# This model is required for flask_migrate to make the table |
# This model is required for flask_migrate to make the table |
||||
from models.user_model import User # noqa: F401 |
from models.user_model import User # noqa: F401 |
||||
|
|
||||
app = create_app() |
app = create_app() |
||||
app.app_context().push() |
app.app_context().push() |
||||
db.create_all() |
db.create_all() |
||||
|
|
||||
# migrate database to latest revision |
# migrate database to latest revision |
||||
init() |
init() |
||||
stamp() |
stamp() |
||||
migrate() |
migrate() |
||||
upgrade() |
upgrade() |
||||
|
|
||||
|
|
||||
deploy() |
deploy() |
||||
|
@ -1,85 +1,85 @@ |
|||||
from flask_wtf import FlaskForm |
from flask_wtf import FlaskForm |
||||
from flask_wtf.file import FileAllowed, FileField, FileRequired, FileSize |
from flask_wtf.file import FileAllowed, FileField, FileRequired, FileSize |
||||
from wtforms import ( |
from wtforms import ( |
||||
SelectField, |
SelectField, |
||||
StringField, |
StringField, |
||||
SubmitField, |
SubmitField, |
||||
validators, |
validators, |
||||
) |
) |
||||
from wtforms.validators import ( |
from wtforms.validators import ( |
||||
DataRequired, |
DataRequired, |
||||
Length, |
Length, |
||||
ValidationError, |
ValidationError, |
||||
) |
) |
||||
|
|
||||
from app import settings |
from app import settings |
||||
|
|
||||
|
|
||||
class UploadForm(FlaskForm): |
class UploadForm(FlaskForm): |
||||
"""File upload class for a new site in distribusi-verse""" |
"""File upload class for a new site in distribusi-verse""" |
||||
|
|
||||
def distribusiname(form, field): |
def distribusiname(form, field): |
||||
if field.data.lower() == "new": |
if field.data.lower() == "new": |
||||
raise ValidationError("Name has to be unique and not just new.") |
raise ValidationError("Name has to be unique and not just new.") |
||||
|
|
||||
def category_choices(): |
def category_choices(): |
||||
APP = settings() |
APP = settings() |
||||
config_categories = APP.config["categories"] |
config_categories = APP.config["categories"] |
||||
categories = [] |
categories = [] |
||||
for config_category in config_categories: |
for config_category in config_categories: |
||||
categories.append((config_category, config_category)) |
categories.append((config_category, config_category)) |
||||
return categories |
return categories |
||||
|
|
||||
def year_choices(): |
def year_choices(): |
||||
APP = settings() |
APP = settings() |
||||
start_time = APP.config["start_time"] |
start_time = APP.config["start_time"] |
||||
end_time = APP.config["end_time"] |
end_time = APP.config["end_time"] |
||||
year_range = range(start_time.year, end_time.year, 1) |
year_range = range(start_time.year, end_time.year, 1) |
||||
year_choices = [] |
year_choices = [] |
||||
for year in year_range: |
for year in year_range: |
||||
year_choices.append((str(year), str(year))) |
year_choices.append((str(year), str(year))) |
||||
return year_choices |
return year_choices |
||||
|
|
||||
sitename = StringField( |
sitename = StringField( |
||||
"Name of your archive section:", |
"Name of your archive section:", |
||||
validators=[ |
validators=[ |
||||
validators.InputRequired(), |
validators.InputRequired(), |
||||
Length(2, 100), |
Length(2, 100), |
||||
distribusiname, |
distribusiname, |
||||
], |
], |
||||
) |
) |
||||
year = SelectField( |
year = SelectField( |
||||
"Year:", |
"Year:", |
||||
validate_choice=True, |
validate_choice=True, |
||||
coerce=str, |
coerce=str, |
||||
choices=year_choices, |
choices=year_choices, |
||||
option_widget=None, |
option_widget=None, |
||||
validators=[DataRequired()], |
validators=[DataRequired()], |
||||
) |
) |
||||
category = SelectField( |
category = SelectField( |
||||
"Category:", |
"Category:", |
||||
validate_choice=True, |
validate_choice=True, |
||||
coerce=str, |
coerce=str, |
||||
choices=category_choices, |
choices=category_choices, |
||||
option_widget=None, |
option_widget=None, |
||||
validators=[DataRequired()], |
validators=[DataRequired()], |
||||
) |
) |
||||
|
|
||||
tags = StringField( |
tags = StringField( |
||||
"Add search tags, seperated by commas. No need for the '#' sign:", |
"Add search tags, seperated by commas. No need for the '#' sign:", |
||||
validators=[validators.InputRequired(), Length(3, 500)], |
validators=[validators.InputRequired(), Length(3, 500)], |
||||
) |
) |
||||
|
|
||||
zipfile = FileField( |
zipfile = FileField( |
||||
"Upload your zip file with content here:", |
"Upload your zip file with content here:", |
||||
validators=[ |
validators=[ |
||||
FileAllowed(["zip"], "Zip archives only!"), |
FileAllowed(["zip"], "Zip archives only!"), |
||||
FileRequired(), |
FileRequired(), |
||||
FileSize( |
FileSize( |
||||
max_size=1073741824, |
max_size=1073741824, |
||||
message="Zipfile size must be smaller than 100MB", |
message="Zipfile size must be smaller than 100MB", |
||||
), |
), |
||||
], |
], |
||||
) |
) |
||||
|
|
||||
submit = SubmitField("Upload") |
submit = SubmitField("Upload") |
||||
|
Loading…
Reference in new issue