Compare commits

5 Commits

19 changed files with 114 additions and 74 deletions

View File

@ -9,13 +9,19 @@ Now you can visit [`localhost:4000`](http://localhost:4000) from your browser.
Ready to run in production? Please [check our deployment guides](https://hexdocs.pm/phoenix/deployment.html). Ready to run in production? Please [check our deployment guides](https://hexdocs.pm/phoenix/deployment.html).
# Configure for deployment environment
Replace beetround.example.com in prod.exs for "url" & "check_origin"
TODO: verify that "url" replacement in config.exs ins't necessary (should be overruled by prod.exs, right?)
# Deployment on new uberspace asteroid # Deployment on new uberspace asteroid
## Initial deployment ## Initial deployment
### Add subdomain ### Add subdomain
uberspace web domain add beetround.example.com `uberspace web domain add beetround.example.com`
### Init database ### Init database
@ -24,57 +30,58 @@ https://lab.uberspace.de/guide_postgresql/
#### Configure database #### Configure database
createuser beetround_admin -P `createuser beetround_admin -P`
createdb --encoding=UTF8 --owner=beetround_admin --template=template0 beetround_server `createdb --encoding=UTF8 --owner=beetround_admin --template=template0 beetround_server`
## Configure Elixir/Phoenix ## Configure Elixir/Phoenix
uberspace tools version use erlang 27 `uberspace tools version use erlang 27`
## Build & run BeetRound ## Build & run BeetRound
cd ~/ `cd ~/`
mkdir develop `mkdir develop`
git clone https://git.working-copy.org/bent/BeetRoundServer.git `git clone https://git.working-copy.org/bent/BeetRoundServer.git`
cd develop `cd develop`
export MIX_ENV=prod `export MIX_ENV=prod`
mix deps.get `mix deps.get`
mix phx.gen.secret `mix phx.gen.secret`
export SECRET_KEY_BASE=<SECRET_KEY> `export SECRET_KEY_BASE=<SECRET_KEY>`
export DATABASE_URL=ecto://beetround_admin:<DB_PASSWORD>@localhost/beetround_server `export DATABASE_URL=ecto://beetround_admin:<DB_PASSWORD>@localhost/beetround_server`
mix assets.deploy #throws "'mix tailwind beet_round_server --minify' exited with 1" error `mix assets.deploy` #throws "'mix tailwind beet_round_server --minify' exited with 1" error
Workaround: copy assets from develop machine Workaround: copy assets from develop machine
mix compile `mix compile`
PHX_HOST=beetround.example.com PORT=4005 mix ecto.migrate `PHX_HOST=beetround.example.com PORT=4005 mix ecto.migrate`
### Create webbackend ### Create webbackend
uberspace web backend set beetround.example.com --http --port 4005 `uberspace web backend set beetround.example.com --http --port 4005`
#### Test backend #### Test backend
PHX_HOST=beetround.example.com PORT=4005 mix phx.server `PHX_HOST=beetround.example.com PORT=4005 mix phx.server`
#### Create mix release #### Create mix release
mix release `mix release`
### Create service ### Create service
nvim ~/etc/services.d/beetround_server.ini Create service file:
`~/etc/services.d/beetround_server.ini:`
``` ```
[program:beetround_server] [program:beetround_server]
@ -94,11 +101,11 @@ environment =
SECRET_KEY_BASE=<SECRET_KEY> SECRET_KEY_BASE=<SECRET_KEY>
``` ```
supervisorctl reread `supervisorctl reread`
supervisorctl update `supervisorctl update`
supervisorctl status `supervisorctl status`
## Updates (TODO old content. needs to be adjusted/checked) ## Updates (TODO old content. needs to be adjusted/checked)

View File

@ -20,7 +20,6 @@
Server zum Sammeln der digital abgegeben Gebote. Server zum Sammeln der digital abgegeben Gebote.
</p> </p>
<%= if true do %>
<br /> <br />
<a <a
href={~p"/biddings"} href={~p"/biddings"}
@ -28,7 +27,6 @@
> >
Zu meinen Geboten Zu meinen Geboten
</a> </a>
<% end %>
<div class="flex"> <div class="flex">
<div class="w-full sm:w-auto"> <div class="w-full sm:w-auto">

View File

@ -10,7 +10,7 @@ defmodule BeetRoundServerWeb.BiddingLive.Form do
~H""" ~H"""
<Layouts.app flash={@flash} current_scope={@current_scope}> <Layouts.app flash={@flash} current_scope={@current_scope}>
<.header> <.header>
{@page_title} {@page_title} ({@current_scope.user.email})
<:subtitle>Bitte gib hier den Betrag ein, den Du monatlich bezahlen willst.</:subtitle> <:subtitle>Bitte gib hier den Betrag ein, den Du monatlich bezahlen willst.</:subtitle>
</.header> </.header>
<%= if @bidding.bidding_round == 0 do %> <%= if @bidding.bidding_round == 0 do %>
@ -20,24 +20,30 @@ defmodule BeetRoundServerWeb.BiddingLive.Form do
</footer> </footer>
<% else %> <% else %>
<.form for={@form} id="bidding-form" phx-change="validate" phx-submit="save"> <.form for={@form} id="bidding-form" phx-change="validate" phx-submit="save">
<.input field={@form[:amount]} type="number" label="Betrag" /> <p>
Wenn du für einen halben Anteil bietest, orientiere dich bitte an einen Richtwert von 56 €.
</p>
<br />
<p><b>Bietrunde: {@bidding.bidding_round}</b></p>
<%= if @bidding.bidding_round == 1 do %>
<.input field={@form[:amount]} type="number" label="Betrag/Monat" />
<.input <.input
field={@form[:depot_wish_one]} field={@form[:depot_wish_one]}
type="select" type="select"
label="Depot Wunsch 1" label="Depot Wunsch 1"
options={[ options={[
{"", ""}, {"", ""},
{"KlimaWerkStadt (1)", "KlimaWerkStadt"}, {"Puramila (1)", "Puramila"},
{"Puramila (2)", "Puramila"}, {"Eine Welt Aktion (2)", "Eine Welt Aktion"},
{"Eine Welt Aktion (3)", "Eine Welt Aktion"}, {"KlimaWerkStadt (3)", "KlimaWerkStadt"},
{"Hof Buntentor (4)", "Hof Buntentor"}, {"Buntentorsteinweg 231, Abholschrank (4)", "Buntentorsteinweg 231, Abholschrank"},
{"Mädchen-Kulturhaus (5)", "Mädchen-Kulturhaus"}, {"Klimazone (5)", "Klimazone"},
{"neues Depot im Viertel (6)", "neues Depot im Viertel"}, {"Hof von bude e.V., Abholschrank(6)", "Hof von bude e.V., Abholschrank"},
{"Creative Hub (7)", "Creative Hub"}, {"Lagerhaus, Abholschrank (7)", "Lagerhaus, Abholschrank"},
{"Klimazone (8)", "Klimazone"}, {"KARL, Abholschrank (8)", "KARL, Abholschrank"},
{"Garage Walle (9)", "Garage Walle"},
{"Hof Riede (A)", "Hof Riede"}, {"Hof Riede (A)", "Hof Riede"},
{"Thedinghausen (B)", "Thedinghausen"} {"Thedinghausen (B)", "Thedinghausen"},
{"Achim (Planung ab April) (C)", "Achim"}
]} ]}
/> />
<.input <.input
@ -46,20 +52,26 @@ defmodule BeetRoundServerWeb.BiddingLive.Form do
label="Depot Wunsch 2" label="Depot Wunsch 2"
options={[ options={[
{"", ""}, {"", ""},
{"KlimaWerkStadt (1)", "KlimaWerkStadt"}, {"Puramila (1)", "Puramila"},
{"Puramila (2)", "Puramila"}, {"Eine Welt Aktion (2)", "Eine Welt Aktion"},
{"Eine Welt Aktion (3)", "Eine Welt Aktion"}, {"KlimaWerkStadt (3)", "KlimaWerkStadt"},
{"Hof Buntentor (4)", "Hof Buntentor"}, {"Buntentorsteinweg 231, Abholschrank (4)", "Buntentorsteinweg 231, Abholschrank"},
{"Mädchen-Kulturhaus (5)", "Mädchen-Kulturhaus"}, {"Klimazone (5)", "Klimazone"},
{"neues Depot im Viertel (6)", "neues Depot im Viertel"}, {"Hof von bude e.V., Abholschrank(6)", "Hof von bude e.V., Abholschrank"},
{"Creative Hub (7)", "Creative Hub"}, {"Lagerhaus, Abholschrank (7)", "Lagerhaus, Abholschrank"},
{"Klimazone (8)", "Klimazone"}, {"KARL, Abholschrank (8)", "KARL, Abholschrank"},
{"Garage Walle (9)", "Garage Walle"},
{"Hof Riede (A)", "Hof Riede"}, {"Hof Riede (A)", "Hof Riede"},
{"Thedinghausen (B)", "Thedinghausen"} {"Thedinghausen (B)", "Thedinghausen"},
{"Achim (Planung ab April) (C)", "Achim"}
]} ]}
/> />
<.input field={@form[:bidding_round]} type="number" readonly hidden /> <.input field={@form[:bidding_round]} type="hidden" readonly />
<% else %>
<.input field={@form[:amount]} type="number" label="Betrag/Monat" />
<.input field={@form[:depot_wish_one]} type="hidden" readonly />
<.input field={@form[:depot_wish_two]} type="hidden" readonly />
<.input field={@form[:bidding_round]} type="hidden" readonly />
<% end %>
<footer> <footer>
<.button phx-disable-with="Bearbeitung..." variant="primary">Gebot abgeben</.button> <.button phx-disable-with="Bearbeitung..." variant="primary">Gebot abgeben</.button>
<.button navigate={return_path(@current_scope, @return_to, @bidding)}>Abbrechen</.button> <.button navigate={return_path(@current_scope, @return_to, @bidding)}>Abbrechen</.button>
@ -96,6 +108,10 @@ defmodule BeetRoundServerWeb.BiddingLive.Form do
defp apply_action(socket, :new, _params) do defp apply_action(socket, :new, _params) do
current_round = BiddingRoundFacade.get_current_round() current_round = BiddingRoundFacade.get_current_round()
current_bidding = Biddings.get_most_recent_bidding(socket.assigns.current_scope)
case current_bidding do
nil ->
bidding = %Bidding{ bidding = %Bidding{
user_id: socket.assigns.current_scope.user.id, user_id: socket.assigns.current_scope.user.id,
bidding_round: current_round bidding_round: current_round
@ -105,6 +121,20 @@ defmodule BeetRoundServerWeb.BiddingLive.Form do
|> assign(:page_title, "Neues Gebot") |> assign(:page_title, "Neues Gebot")
|> assign(:bidding, bidding) |> assign(:bidding, bidding)
|> assign(:form, to_form(Biddings.change_bidding(socket.assigns.current_scope, bidding))) |> assign(:form, to_form(Biddings.change_bidding(socket.assigns.current_scope, bidding)))
%Bidding{} ->
bidding = %Bidding{
user_id: socket.assigns.current_scope.user.id,
bidding_round: current_round,
depot_wish_one: current_bidding.depot_wish_one,
depot_wish_two: current_bidding.depot_wish_two
}
socket
|> assign(:page_title, "Neues Gebot")
|> assign(:bidding, bidding)
|> assign(:form, to_form(Biddings.change_bidding(socket.assigns.current_scope, bidding)))
end
end end
@impl true @impl true

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 791 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 791 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -0,0 +1,5 @@
# See https://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
#
# To ban all spiders from the entire site uncomment the next two lines:
User-agent: *
Disallow: /

BIN
priv/static/robots.txt.gz Normal file

Binary file not shown.