Skip to content

Instantly share code, notes, and snippets.

View form.html.leex
user_status: <%= @user.status %>
<div class="mb-6">
<%= select(f, @user.status, @statuses) %>
</div>
View ensure_role_plug.ex
defmodule ElijahWeb.EnsureRolePlug do
@moduledoc """
This plug ensures that a user has a particular role before accessing a given route.
## Example
Let's suppose we have three roles: :admin, :manager and :user.
If you want a user to have at least manager role, so admins and managers are authorised to access a given route
plug ElijahWeb.EnsureRolePlug, [:admin, :manager]
View router.ex
defmodule ElijahWeb.Router do
use ElijahWeb, :router
import ElijahWeb.UserAuth
import Plug.BasicAuth
alias ElijahWeb.EnsureRolePlug
pipeline :browser do
plug :accepts, ["html"]
plug :fetch_session
@mazz
mazz / app.js
Last active Oct 23, 2020
liveview alpine modal live component
View app.js
// We need to import the CSS so that webpack will load it.
// The MiniCssExtractPlugin is used to separate it out into
// its own CSS file.
import "../css/app.scss"
// webpack automatically bundles all modules in your
// entry points. Those entry points can be configured
// in "webpack.config.js".
//
// Import deps with the dep name or local files with a relative path, for example:
@mazz
mazz / error.log
Last active Oct 22, 2020
runtime error
View error.log
[error] an exception was raised:
** (Phoenix.Template.UndefinedError) Could not render "invitation_request.html" for ElijahWeb.InvitationRequestView, please define a matching clause for render/2 or define a template at "lib/elijah_web/templates/invitation_request/*". The following templates were compiled:
* invitation_request_loading.html
View error.ex
[error] an exception was raised:
** (Phoenix.Template.UndefinedError) Could not render "invitation_request.html" for ElijahWeb.InvitationRequestView, please define a matching clause for render/2 or define a template at "lib/elijah_web/templates/invitation_request/*". The following templates were compiled:
* invitation_request_loading.html
@mazz
mazz / iex.ex
Created Oct 19, 2020
insert two users to the same org, second association clobbers first
View iex.ex
iex(2)> org = Repo.get(Org, 1)
[debug] QUERY OK source="orgs" db=11.6ms decode=1.4ms queue=1.4ms idle=1333.3ms
SELECT o0."id", o0."basename", o0."shortname", o0."uuid", o0."hash_id", o0."inserted_at", o0."updated_at" FROM "orgs" AS o0 WHERE (o0."id" = $1) [1]
%Elijah.Schema.Org{
__meta__: #Ecto.Schema.Metadata<:loaded, "orgs">,
basename: "app",
channels: #Ecto.Association.NotLoaded<association :channels is not loaded>,
hash_id: "6vz6",
id: 1,
inserted_at: ~U[2020-10-19 16:27:51Z],
View search_live.ex
defmodule ElijahWeb.SearchLive do
use ElijahWeb, :live_view
alias Elijah.Bank
require Logger
def mount(_params, _session, socket) do
socket =
assign(socket,
@mazz
mazz / views.py
Created Jan 22, 2017
NameError: name 'path' is not defined
View views.py
from websauna.system.http import Request
from websauna.system.core.route import simple_route
from cornice.service import Service
# Configure view named home at path / using a template xact/home.html
@simple_route("/", route_name="home", renderer='xact/home.html')
def home(request: Request):
"""Render site homepage."""
return {"project": "xact"}
View register_users.ex
[debug] QUERY OK source="users" db=1.8ms decode=2.1ms queue=1.4ms idle=130.8ms
SELECT TRUE FROM "users" AS u0 WHERE (u0."email" = $1) LIMIT 1 ["kostas@live.com"]
#Ecto.Changeset<
action: nil,
changes: %{email: "kostas@live.com", password: "rubf6TFg"},
errors: [],
data: #Elijah.Accounts.User<>,
valid?: true
>
#Ecto.Changeset<
You can’t perform that action at this time.