initial commit
This commit is contained in:
28
.gitignore
vendored
Normal file
28
.gitignore
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
.mypy_cache/
|
||||
.pytest_cache/
|
||||
.vscode/
|
||||
__pycache__/
|
||||
*.py[ocd]
|
||||
db.sqlite3
|
||||
develop-eggs
|
||||
bin
|
||||
parts
|
||||
sources
|
||||
.installed.cfg
|
||||
.mr.developer.cfg
|
||||
*.egg-info
|
||||
eggs/
|
||||
/static/*
|
||||
/documents/
|
||||
/media
|
||||
!/media/image_not_found.jpg
|
||||
dist/
|
||||
build/
|
||||
lib
|
||||
pip-selfcheck.json
|
||||
pyvenv.cfg
|
||||
.DS_Store
|
||||
.coverage
|
||||
coverage.xml
|
||||
htmlcov/
|
||||
venv/
|
||||
86
Jenkinsfile
vendored
Normal file
86
Jenkinsfile
vendored
Normal file
@@ -0,0 +1,86 @@
|
||||
#!/usr/bin/env groovy
|
||||
|
||||
pipeline {
|
||||
agent any
|
||||
options { disableConcurrentBuilds() }
|
||||
environment {
|
||||
PYENVPIPELINE_VIRTUALENV = '1'
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Build') {
|
||||
steps {
|
||||
sh '''
|
||||
python3 -m venv .venv
|
||||
. .venv/bin/activate
|
||||
pip install coverage
|
||||
pip install --upgrade pip "setuptools==69.5.1" wheel
|
||||
make EXTRAS="" install
|
||||
pip install pylint pylint-django vdt.versionplugin.wheel
|
||||
pip install --upgrade "setuptools==69.5.1" wheel
|
||||
make migrate loaddata collectstatic
|
||||
pip install "httpx<0.28"
|
||||
'''
|
||||
}
|
||||
}
|
||||
stage('Lint') {
|
||||
steps {
|
||||
sh '''
|
||||
. .venv/bin/activate
|
||||
pip install coverage
|
||||
make lint
|
||||
'''
|
||||
}
|
||||
}
|
||||
stage('Test') {
|
||||
steps {
|
||||
sh '''
|
||||
. .venv/bin/activate
|
||||
pip install coverage
|
||||
make test
|
||||
'''
|
||||
}
|
||||
post {
|
||||
always {
|
||||
junit allowEmptyResults: true, testResults: '**/nosetests.xml'
|
||||
}
|
||||
success {
|
||||
echo "Coverage step skipped"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
post {
|
||||
always {
|
||||
echo 'This will always run'
|
||||
}
|
||||
success {
|
||||
echo 'This will run only if successful'
|
||||
sh '''
|
||||
. .venv/bin/activate
|
||||
pip install coverage
|
||||
version --plugin=wheel -B${BUILD_NUMBER} --skip-build
|
||||
git push --tags
|
||||
'''
|
||||
build job: 'deployment-stg-create',
|
||||
quietPeriod: 20,
|
||||
wait: false,
|
||||
parameters: [
|
||||
string(name: 'UPSTREAM_BUILD', value: "smokee2el1771369278"),
|
||||
]
|
||||
}
|
||||
failure {
|
||||
emailext subject: "JENKINS-NOTIFICATION: ${currentBuild.currentResult}: Job '${env.JOB_NAME} #${env.BUILD_NUMBER}'",
|
||||
body: '${SCRIPT, template="groovy-text.template"}',
|
||||
recipientProviders: [culprits(), brokenBuildSuspects(), brokenTestsSuspects()]
|
||||
|
||||
}
|
||||
unstable {
|
||||
echo 'This will run only if the run was marked as unstable'
|
||||
}
|
||||
changed {
|
||||
echo 'This will run only if the state of the Pipeline has changed'
|
||||
echo 'For example, if the Pipeline was previously failing but is now successful'
|
||||
}
|
||||
}
|
||||
}
|
||||
3
MANIFEST.in
Normal file
3
MANIFEST.in
Normal file
@@ -0,0 +1,3 @@
|
||||
graft smokee2el1771369278
|
||||
global-exclude *.py[co]
|
||||
global-exclude __pycache__
|
||||
59
Makefile
Normal file
59
Makefile
Normal file
@@ -0,0 +1,59 @@
|
||||
.PHONY: fail-if-no-virtualenv all install loaddata test lint black debug undebug
|
||||
|
||||
all: install migrate loaddata collectstatic
|
||||
|
||||
fail-if-no-virtualenv:
|
||||
ifndef VIRTUAL_ENV # check for a virtualenv in development environment
|
||||
ifndef PYENVPIPELINE_VIRTUALENV # check for jenkins pipeline virtualenv
|
||||
$(error this makefile needs a virtualenv)
|
||||
endif
|
||||
endif
|
||||
|
||||
ifndef PIP_INDEX_URL
|
||||
PIP_INDEX_URL=https://pypi.mandelblog.com/mandel/testing/+simple/
|
||||
endif
|
||||
|
||||
ifndef EXTRAS
|
||||
EXTRAS="[test]"
|
||||
endif
|
||||
|
||||
install: fail-if-no-virtualenv
|
||||
PIP_INDEX_URL=${PIP_INDEX_URL} pip install --pre --editable .${EXTRAS} setuptools wheel --upgrade --upgrade-strategy=eager --use-deprecated=legacy-resolver
|
||||
|
||||
migrate:
|
||||
manage.py migrate --no-input
|
||||
|
||||
loaddata:
|
||||
-manage.py loaddemodata
|
||||
|
||||
collectstatic:
|
||||
manage.py collectstatic --no-input --verbosity=0
|
||||
|
||||
lint: fail-if-no-virtualenv
|
||||
cat smokee2el1771369278/ocyan.json |python3 -m json.tool 1>/dev/null
|
||||
pylint setup.py smokee2el1771369278/
|
||||
|
||||
black:
|
||||
@echo "No formatter configured in template; add your preferred formatter here."
|
||||
|
||||
test: fail-if-no-virtualenv
|
||||
@coverage run --source='smokee2el1771369278' `which manage.py` test
|
||||
@coverage report
|
||||
@coverage xml
|
||||
@coverage html
|
||||
|
||||
run: fail-if-no-virtualenv lint test migrate collectstatic
|
||||
manage.py runserver
|
||||
|
||||
debug: fail-if-no-virtualenv
|
||||
PIP_INDEX_URL=${PIP_INDEX_URL} pip install --pre ocyan.plugin.debug
|
||||
|
||||
undebug:
|
||||
PIP_INDEX_URL=${PIP_INDEX_URL} pip uninstall -y ocyan.plugin.debug
|
||||
|
||||
live:
|
||||
@echo "Did you update the version in setup.py? [y/N]" && read ans && [ $$ans = y ]
|
||||
rm -fr dist
|
||||
rm -fr build*
|
||||
version --plugin=wheel --skip-tag
|
||||
devpi --index=projects/production upload dist/*
|
||||
85
README.rst
Normal file
85
README.rst
Normal file
@@ -0,0 +1,85 @@
|
||||
Project smokee2el1771369278
|
||||
===========================
|
||||
|
||||
About smokee2el1771369278
|
||||
-------------------------
|
||||
Ocyan project: smokee2el1771369278
|
||||
|
||||
Installation
|
||||
------------
|
||||
Create a virtualenv, you only need to do this once for each project::
|
||||
|
||||
mkvirtualenv smokee2el1771369278
|
||||
|
||||
Next build the project, by installing dependencies and creating the database::
|
||||
|
||||
make
|
||||
|
||||
Running
|
||||
-------
|
||||
Activate the virtualenv::
|
||||
|
||||
workon smokee2el1771369278
|
||||
|
||||
You can see which virtualenv is activated, because your
|
||||
terminal will be prefixed with (smokee2el1771369278).
|
||||
|
||||
Next start the development server::
|
||||
|
||||
make run
|
||||
|
||||
Testing
|
||||
-------
|
||||
Testing is done with the default Django testing capabilities. Check the 'Testing in Django' chapter in Django documentation for details.
|
||||
|
||||
To run the tests, issue the following command::
|
||||
|
||||
make test
|
||||
|
||||
Linting
|
||||
-------
|
||||
Source code is formatted using the `black`[1] formatter in its default settings. Installing format-on-save support for your editor is highly recommended.
|
||||
`Pylint`[2] is used for source code analysis.
|
||||
All utilities are installed via the test extra. This extra is installed by default when using the Makefile.
|
||||
|
||||
The following command check style and syntax::
|
||||
|
||||
make lint
|
||||
|
||||
|
||||
1. black: https://pypi.org/project/black/
|
||||
2. pylint: https://pypi.org/project/pylint/
|
||||
|
||||
Edit template translation
|
||||
-------------------------
|
||||
The translation in templates
|
||||
|
||||
Activate the virtualenv::
|
||||
|
||||
workon smokee2el1771369278
|
||||
|
||||
Create the locale directory in the root of the project::
|
||||
|
||||
mkdir smokee2el1771369278/locale
|
||||
|
||||
Go in the project_name directory::
|
||||
|
||||
cd smokee2el1771369278/
|
||||
|
||||
Run this command to create a file with all translatable strings in the project (note: this is only for the dutch translations)::
|
||||
|
||||
manage.py makemessages -l nl
|
||||
|
||||
Go to your text editor and go in this file::
|
||||
|
||||
smokee2el1771369278/smokee2el1771369278/locale/nl/LC_MESSAGES/django.po
|
||||
|
||||
This file will have all of the translations some will be correct and dont need to be chanced
|
||||
|
||||
Edit all the translations u want to change
|
||||
Delete all of the translation u dont want to chance
|
||||
save file
|
||||
|
||||
Apply the translations::
|
||||
|
||||
manage.py compilemessages
|
||||
12
pylintrc
Normal file
12
pylintrc
Normal file
@@ -0,0 +1,12 @@
|
||||
[MASTER]
|
||||
jobs = 1
|
||||
load-plugins = pylint_django,pylint_packageinitcheck
|
||||
django-settings-module = smokee2el1771369278.settings.base
|
||||
score = n
|
||||
ignore = migrations
|
||||
|
||||
[MESSAGES CONTROL]
|
||||
disable = R,C,W5103,W0707,E5110
|
||||
|
||||
[TYPECHECK]
|
||||
ignored-classes = responses
|
||||
30
pyproject.toml
Normal file
30
pyproject.toml
Normal file
@@ -0,0 +1,30 @@
|
||||
[tool.black]
|
||||
target_version = ['py36']
|
||||
exclude = '''
|
||||
(
|
||||
migrations/*
|
||||
| smokee2el1771369278/main.py
|
||||
)
|
||||
'''
|
||||
|
||||
[tool.ruff.lint.isort]
|
||||
known-first-party = ["smokee2el1771369278"]
|
||||
section-order = [
|
||||
"future",
|
||||
"standard-library",
|
||||
"third-party",
|
||||
"wagtail",
|
||||
"oscar",
|
||||
"oscarapi",
|
||||
"oscarextra",
|
||||
"ocyan",
|
||||
"first-party",
|
||||
"local-folder"
|
||||
]
|
||||
|
||||
[tool.ruff.lint.isort.sections]
|
||||
wagtail = ["wagtail", "wagtail_*"]
|
||||
oscar = ["oscar"]
|
||||
oscarapi = ["oscarapi"]
|
||||
oscarextra = ["oscar_*"]
|
||||
ocyan = ["ocyan"]
|
||||
42
setup.py
Normal file
42
setup.py
Normal file
@@ -0,0 +1,42 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import json
|
||||
|
||||
from setuptools import find_packages, setup
|
||||
|
||||
install_requires: list = ["ocyan.main"]
|
||||
|
||||
# Add frets dependencies
|
||||
with open("smokee2el1771369278/ocyan.json", encoding="utf-8") as fp:
|
||||
config = json.loads(fp.read())
|
||||
install_requires.extend(config["ocyan_plugins"])
|
||||
|
||||
extras_require: dict = {
|
||||
"test": [
|
||||
"pylint-django",
|
||||
"vdt.versionplugin.wheel",
|
||||
"coverage",
|
||||
"ocyan.plugin.testing",
|
||||
],
|
||||
"prd": ["psycopg2-binary"],
|
||||
}
|
||||
|
||||
PACKAGE_CLASSIFIERS = [
|
||||
"License :: Other/Proprietary License",
|
||||
"Framework :: Ocyan",
|
||||
]
|
||||
|
||||
setup(
|
||||
name="mandel-smokee2el1771369278",
|
||||
version="0.1.0",
|
||||
url="https://git.mandelblog.com/mandel-projects/smokee2el1771369278",
|
||||
author="Motolani Olaiya",
|
||||
author_email="motolaniolaiya@gmail.com",
|
||||
description="Ocyan project: smokee2el1771369278",
|
||||
packages=find_packages(),
|
||||
include_package_data=True,
|
||||
python_requires=">=3.10",
|
||||
install_requires=install_requires,
|
||||
extras_require=extras_require,
|
||||
entry_points={"console_scripts": ["manage.py=smokee2el1771369278.main:main"]},
|
||||
classifiers=PACKAGE_CLASSIFIERS,
|
||||
)
|
||||
0
smokee2el1771369278/__init__.py
Normal file
0
smokee2el1771369278/__init__.py
Normal file
9
smokee2el1771369278/main.py
Normal file
9
smokee2el1771369278/main.py
Normal file
@@ -0,0 +1,9 @@
|
||||
import os
|
||||
import sys
|
||||
|
||||
|
||||
def main():
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "smokee2el1771369278.settings.base")
|
||||
from django.core.management import execute_from_command_line
|
||||
|
||||
execute_from_command_line(sys.argv)
|
||||
60
smokee2el1771369278/ocyan.json
Normal file
60
smokee2el1771369278/ocyan.json
Normal file
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"ocyan_plugins": [
|
||||
"ocyan.plugin.contact_form",
|
||||
"ocyan.plugin.cookie_jar",
|
||||
"ocyan.plugin.demo_data",
|
||||
"ocyan.plugin.django",
|
||||
"ocyan.plugin.roadrunner_bs5",
|
||||
"ocyan.plugin.sentry_logging",
|
||||
"oxyan.themes",
|
||||
"ocyan.plugin.varnish",
|
||||
"ocyan.plugin.wagtail",
|
||||
"ocyan.plugin.wagtail_blog",
|
||||
"ocyan.plugin.wagtail_content_page",
|
||||
"ocyan.plugin.barebone"
|
||||
],
|
||||
"settings": {
|
||||
"cookie_jar": {
|
||||
"analytical": true,
|
||||
"functional": true,
|
||||
"marketing": false,
|
||||
"social": false
|
||||
},
|
||||
"django": {
|
||||
"description": "",
|
||||
"domain": "smokee2el1771369278.nl",
|
||||
"email_from": "webshop@mandelblog.com",
|
||||
"email_host": "vps.transip.email",
|
||||
"email_host_password": "CHANGE_ME",
|
||||
"email_host_user": "noreply@mandelblog.com",
|
||||
"email_port": "587",
|
||||
"email_to": "info@smokee2el1771369278.nl",
|
||||
"email_use_tls": true,
|
||||
"language_code": "nl",
|
||||
"name": "smokee2el1771369278",
|
||||
"username": "administrator"
|
||||
},
|
||||
"sentry logging": {
|
||||
"dsn_secret": ""
|
||||
},
|
||||
"themes": {
|
||||
"theme": "default",
|
||||
"theme-switcher": false
|
||||
},
|
||||
"wagtail": {
|
||||
"wagtailuserbar_position": "bottom-right"
|
||||
},
|
||||
"wagtail content page": {
|
||||
"actionbuttons": false,
|
||||
"add_to_cart": false,
|
||||
"heading": true,
|
||||
"html": false,
|
||||
"image": true,
|
||||
"paragraph": true,
|
||||
"table": true
|
||||
},
|
||||
"wagtail_blog": {
|
||||
"items_per_page": 10
|
||||
}
|
||||
}
|
||||
}
|
||||
0
smokee2el1771369278/settings/__init__.py
Normal file
0
smokee2el1771369278/settings/__init__.py
Normal file
36
smokee2el1771369278/settings/base.py
Normal file
36
smokee2el1771369278/settings/base.py
Normal file
@@ -0,0 +1,36 @@
|
||||
"""
|
||||
Django settings for de tilde project.
|
||||
|
||||
For more information on this file, see
|
||||
https://docs.djangoproject.com/en/2.0/topics/settings/
|
||||
|
||||
For the full list of settings and their values, see
|
||||
https://docs.djangoproject.com/en/2.0/ref/settings/
|
||||
"""
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
from configtype.jsonconfig import setup_search_paths
|
||||
|
||||
_project_app_path = Path(__file__).parent.parent
|
||||
BASE_PATH = _project_app_path.parent
|
||||
BASE_DIR = str(BASE_PATH)
|
||||
|
||||
setup_search_paths("/etc/ocyan/", str(_project_app_path))
|
||||
|
||||
from ocyan.main.settings import * # pylint:disable=W0401,W0614
|
||||
|
||||
INSTALLED_APPS = ["smokee2el1771369278"] + INSTALLED_APPS
|
||||
|
||||
STATIC_ROOT = str(BASE_PATH / "static")
|
||||
MEDIA_ROOT = str(BASE_PATH / "media")
|
||||
PRIVATE_MEDIA_ROOT = str(BASE_PATH / "private")
|
||||
|
||||
DATABASES = {
|
||||
"default": {
|
||||
"ENGINE": "django.db.backends.sqlite3",
|
||||
"NAME": str(BASE_PATH / "db.sqlite3"),
|
||||
}
|
||||
}
|
||||
|
||||
SECRET_KEY = "o27#np@06cc*sjuc-ss!&nh!d3o4yak2lldefn!kl)dvb67imf"
|
||||
0
smokee2el1771369278/settings/env/__init__.py
vendored
Normal file
0
smokee2el1771369278/settings/env/__init__.py
vendored
Normal file
21
smokee2el1771369278/settings/env/dev.py
vendored
Normal file
21
smokee2el1771369278/settings/env/dev.py
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
from ..base import * # pylint:disable=W0401,W0614
|
||||
|
||||
try:
|
||||
from smokee2el1771369278.json import * # pylint:disable=W0401,W0614,E0611,E0401
|
||||
except ModuleNotFoundError:
|
||||
pass
|
||||
|
||||
DEBUG = False
|
||||
STATIC_ROOT = "/srv/www/smokee2el1771369278/static/"
|
||||
MEDIA_ROOT = "/srv/www/smokee2el1771369278/media/"
|
||||
PRIVATE_MEDIA_ROOT = "/srv/www/smokee2el1771369278/private/"
|
||||
|
||||
ALLOWED_HOSTS = ["*"]
|
||||
|
||||
# Force mail to console
|
||||
EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"
|
||||
|
||||
EDEN_URL = ["https://search.mandelblog.com:9200"]
|
||||
# pylint: disable=E0602
|
||||
WAGTAILSEARCH_BACKENDS["default"]["URLS"] = EDEN_URL
|
||||
OSCAR_ELASTICSEARCH_SERVER_URLS = EDEN_URL
|
||||
15
smokee2el1771369278/settings/env/prd.py
vendored
Normal file
15
smokee2el1771369278/settings/env/prd.py
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
from ..base import * # pylint:disable=W0401,W0614
|
||||
|
||||
try:
|
||||
from smokee2el1771369278.json import * # pylint:disable=W0401,W0614,E0611,E0401
|
||||
except ModuleNotFoundError:
|
||||
pass
|
||||
|
||||
DEBUG = False
|
||||
STATIC_ROOT = "/srv/www/smokee2el1771369278/static/"
|
||||
MEDIA_ROOT = "/srv/www/smokee2el1771369278/media/"
|
||||
PRIVATE_MEDIA_ROOT = "/srv/www/smokee2el1771369278/private/"
|
||||
ALLOWED_HOSTS.append("smokee2el1771369278.%s" % salt_target) # pylint: disable=E0602
|
||||
# pylint: disable=E0602
|
||||
WAGTAILSEARCH_BACKENDS["default"]["URLS"] = ["https://search.mandelblog.com:9200"]
|
||||
EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
|
||||
16
smokee2el1771369278/settings/env/stg.py
vendored
Normal file
16
smokee2el1771369278/settings/env/stg.py
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
from ..base import * # pylint:disable=W0401,W0614
|
||||
|
||||
try:
|
||||
from smokee2el1771369278.json import * # pylint:disable=W0401,W0614,E0611,E0401
|
||||
except ModuleNotFoundError:
|
||||
pass
|
||||
|
||||
DEBUG = False
|
||||
STATIC_ROOT = "/srv/www/smokee2el1771369278/static/"
|
||||
MEDIA_ROOT = "/srv/www/smokee2el1771369278/media/"
|
||||
PRIVATE_MEDIA_ROOT = "/srv/www/smokee2el1771369278/private/"
|
||||
|
||||
ALLOWED_HOSTS = ["*"]
|
||||
|
||||
# Force mail to console
|
||||
EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"
|
||||
0
smokee2el1771369278/static/smokee2el1771369278/img/.gitignore
vendored
Normal file
0
smokee2el1771369278/static/smokee2el1771369278/img/.gitignore
vendored
Normal file
0
smokee2el1771369278/static/smokee2el1771369278/js/.gitignore
vendored
Normal file
0
smokee2el1771369278/static/smokee2el1771369278/js/.gitignore
vendored
Normal file
0
smokee2el1771369278/templates/smokee2el1771369278/.gitignore
vendored
Normal file
0
smokee2el1771369278/templates/smokee2el1771369278/.gitignore
vendored
Normal file
1
smokee2el1771369278/wsgi.py
Normal file
1
smokee2el1771369278/wsgi.py
Normal file
@@ -0,0 +1 @@
|
||||
from ocyan.main.wsgi import application # pylint: disable=W0611
|
||||
28
uwsgi-dev.ini
Normal file
28
uwsgi-dev.ini
Normal file
@@ -0,0 +1,28 @@
|
||||
[uwsgi]
|
||||
master = true
|
||||
chmod-socket = 660
|
||||
workers = 1
|
||||
reload-mercy = 30
|
||||
vacuum = 1
|
||||
auto-procname = true
|
||||
enable-threads = false
|
||||
lazy = 0
|
||||
no-orphans = true
|
||||
stats = 127.0.0.1:9191
|
||||
thunder-lock = false
|
||||
enable-threads = true
|
||||
|
||||
# dev settings
|
||||
python-autoreload = 1
|
||||
http = 127.0.0.1:8000
|
||||
if-env = VIRTUAL_ENV
|
||||
virtualenv = %(_)
|
||||
endif =
|
||||
|
||||
# Django settings
|
||||
env = DJANGO_SETTINGS_MODULE=smokee2el1771369278.settings.base
|
||||
module = smokee2el1771369278.wsgi:application
|
||||
|
||||
# Spoolers
|
||||
spooler = spooler
|
||||
spooler-chdir = %d
|
||||
Reference in New Issue
Block a user