diff --git a/.dockerignore b/.dockerignore index d9671a8..ed0835d 100644 --- a/.dockerignore +++ b/.dockerignore @@ -5,3 +5,5 @@ !src/ !requirements/ !entrypoint.sh +!pyproject.toml +!README.md diff --git a/Dockerfile b/Dockerfile index 3e3971a..cc600b1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,7 +11,13 @@ ARG DJANGO_ENV ARG BUILD ENV BUILD ${BUILD} -RUN apt-get update \ +WORKDIR /app + +RUN groupadd -g 1000 www && useradd -u 1000 -ms /bin/bash -g www www +COPY --chown=www:www . . +RUN mkdir /app/src/static \ + && chown www:www /app/src/static \ + && apt-get update \ && apt-get install -y \ binutils \ libpq-dev \ @@ -23,15 +29,9 @@ RUN apt-get update \ libgdk-pixbuf2.0-0 \ libffi-dev \ shared-mime-info \ - gettext - -WORKDIR /app - -RUN groupadd -g 1000 www && useradd -u 1000 -ms /bin/bash -g www www -COPY --chown=www:www . /app/ -RUN mkdir /app/src/static && chown www:www /app/src/static -RUN pip install -r requirements/$([ "$DJANGO_ENV" = "production" ] && echo "base.txt" || echo "dev.txt") &&\ - django-admin compilemessages + gettext \ + && pip install . \ + && django-admin compilemessages ENTRYPOINT ["./entrypoint.sh"] diff --git a/pyproject.toml b/pyproject.toml index 5d27e93..85da85f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,5 +1,5 @@ [build-system] -requires = ["hatchling", "hatch-vcs"] +requires = ["hatchling"] build-backend = "hatchling.build" [project] @@ -22,11 +22,12 @@ dependencies = [ "django-zen-queries==2.1.0", "django-registries==0.0.3", "django-view-decorator==0.0.4", + "django-oauth-toolkit==2.3.0", ] -dynamic = ["version"] +version = "0.0.1" -[tool.hatch.version] -source = "vcs" +[tool.hatch.build.targets.wheel] +packages = ["src"] [tool.hatch.envs.default] dependencies = [ @@ -59,7 +60,7 @@ cov = "pytest --cov-report=term-missing --cov-config=pyproject.toml --cov=src -- no-cov = "cov --no-cov {args}" typecheck = "mypy --config-file=pyproject.toml ." requirements = "pip-compile --output-file requirements/base.txt pyproject.toml" -server = "./src/manage.py runserver" +server = "./src/manage.py runserver 0.0.0.0:8000" migrate = "./src/manage.py migrate" makemigrations = "./src/manage.py makemigrations" createsuperuser = "./src/manage.py createsuperuser" diff --git a/src/project/static/css/dark-style.css b/src/project/static/css/dark-style.css index 2f75768..7f48771 100644 --- a/src/project/static/css/dark-style.css +++ b/src/project/static/css/dark-style.css @@ -53,4 +53,15 @@ html.dark article table tbody tr:nth-child(2n+1) td { html.dark article table tbody tr:last-child td { border-bottom: var(--half-space) solid var(--twilight); +} + +html.dark form>div>input[type="text"], +html.dark form>div>input[type="password"], +html.dark input[type="email"] { + border: 2px solid var(--twilight); + border-radius: 6px; + padding: 8px; + background: var(--dark-dark); + width: 100%; + color: var(--light-dust); } \ No newline at end of file diff --git a/src/project/static/css/style.css b/src/project/static/css/style.css index 9873fc9..d71a430 100644 --- a/src/project/static/css/style.css +++ b/src/project/static/css/style.css @@ -94,7 +94,7 @@ h6 { } a { - <<<<<<< HEAD font-weight: 500; + font-weight: 500; color: var(--splash); text-decoration: none; cursor: pointer; @@ -105,10 +105,6 @@ hr { height: 0; border: 0; border-bottom: 1px solid var(--dark-custard); - =======font-weight: 500; - color: var(--splash); - text-decoration: none; - >>>>>>>bdc2d8717cbcab1795b1b2dc4f08f83242e4a4ca } body { @@ -248,7 +244,7 @@ article { padding: var(--double-space) var(--outer-space); } -article>div.content-view { +article div.content-view { background: var(--dust); padding: var(--double-space); margin-bottom: var(--space); @@ -267,12 +263,7 @@ div.services { div.services>div, div.infobox { - <<<<<<< HEAD background: var(--light); - padding: var(--double-space); - border-radius: 6px; - flex: 240px; - max-width: 420px; - =======background: var(--light); + background: var(--light); padding: var(--double-space); border-radius: 6px; flex: 240px; @@ -294,111 +285,6 @@ div.services>div>div.description>p { margin-top: var(--half-space); } -div.services>div>a, -a.button, -button { - display: block; - color: var(--light); - background: var(--splash); - padding: var(--space) var(--double-space); - border-radius: 3px; - opacity: 0.9; - cursor: pointer; - text-align: center; - border: 0; - font-weight: 600; - letter-spacing: 0.03em; - text-decoration: none; -} - -div.services>div>a:hover, -a.button:hover, -button:hover { - opacity: 1.0; -} - -article table { - width: 100%; - border-spacing: 0; - margin: var(--space) 0; -} - -article table thead th { - text-align: left; -} - -article table tbody tr:nth-child(odd) { - background: var(--medium-dust); -} - -article table thead th, -article table tbody td { - padding: var(--half-space); -} - -form>div { - margin: 0 0 var(--double-space); -} - -form>div>label { - display: block; - margin: 0 0 6px; -} - -form>div>input[type="text"], -form>div>input[type="password"] { - border: 2px solid var(--twilight); - border-radius: 6px; - padding: 8px; - background: var(--light-dust); - width: 100%; -} - -#login { - height: 100%; - display: flex; - align-items: center; - justify-content: center; -} - -#loginbox { - border-radius: var(--space); - border: 6px solid white; - width: 800px; - height: 500px; - - display: flex; - flex-flow: row; -} - -#loginbox>div { - padding: var(--double-space); - flex: 1; -} - -#loginbox label { - color: var(--twilight); -} - -#loginbox>div.login { - background: var(--light-dust); - >>>>>>>bdc2d8717cbcab1795b1b2dc4f08f83242e4a4ca display: flex; - flex-flow: column; - justify-content: space-between; -} - -div.infobox button { - margin-top: var(--double-space); -} - -div.services>div>div.description { - margin-bottom: var(--double-space); -} - -div.services>div>div.description>p { - margin-top: var(--half-space); -} - div.services>div>a, a.button, button { @@ -434,6 +320,10 @@ button:disabled { cursor: default; } +button.secondary { + background: var(--twilight); +} + article table { width: 100%; border-spacing: 0; @@ -514,6 +404,28 @@ form div.buttonHolder button { display: inline-block; } +#email-add-overlay { + display: none; + position: fixed; + left: 0; + top: 0; + bottom: 0; + right: 0; + background: rgba(0, 0, 0, 0.8); + align-items: center; + justify-content: center; + z-index: 1000; +} + +#email-add-overlay .content-view { + width: 600px; + padding: var(--double-space); +} + +#email-add-overlay .content-view p { + margin: var(--double-space) 0; +} + #login { height: 100%; display: flex; diff --git a/src/project/templates/account/email.html b/src/project/templates/account/email.html index c5cbe38..ec996ca 100644 --- a/src/project/templates/account/email.html +++ b/src/project/templates/account/email.html @@ -16,7 +16,7 @@ {% csrf_token %}
- + @@ -76,21 +76,22 @@ {% trans "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc." %}

{% endif %} -