Rename project to Mobilizon

Signed-off-by: Thomas Citharel <tcit@tcit.fr>
This commit is contained in:
Thomas Citharel 2018-10-11 17:37:39 +02:00
parent 3b48ac957f
commit 559c889f1b
191 changed files with 739 additions and 739 deletions

View File

@ -6,11 +6,11 @@ services:
variables:
MIX_ENV: "test"
POSTGRES_DB: eventos_test
POSTGRES_DB: mobilizon_test
POSTGRES_USER: postgres
POSTGRES_PASSWORD: ""
POSTGRES_HOST: postgres
GEOLITE_CITIES_PATH: "/builds/tcit/eventos/priv/data/GeoLite2-City.mmdb"
GEOLITE_CITIES_PATH: "/builds/tcit/mobilizon/priv/data/GeoLite2-City.mmdb"
cache:
key: "$CI_JOB_NAME"

View File

@ -629,7 +629,7 @@ to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
eventos
Mobilizon
Copyright (C) 2018 Thomas Citharel
This program is free software: you can redistribute it and/or modify

View File

@ -1,4 +1,4 @@
# Eventos
# Mobilizon
## Development
@ -22,7 +22,7 @@ to start a database container, an API container and the front-end dev container
* Fetch dependencies with `mix deps.get`.
* Create your database with `mix ecto.create`.
* Create the postgis extension on the database with a postgres user that has
superuser capabilities: `psql eventos_dev`
superuser capabilities: `psql mobilizon_dev`
``` create extension if not exists postgis; ```

View File

@ -6,10 +6,10 @@
use Mix.Config
# General application configuration
config :eventos,
ecto_repos: [Eventos.Repo]
config :mobilizon,
ecto_repos: [Mobilizon.Repo]
config :eventos, :instance,
config :mobilizon, :instance,
name: "Localhost",
version: "1.0.0-dev",
registrations_open: true
@ -20,11 +20,11 @@ config :mime, :types, %{
}
# Configures the endpoint
config :eventos, EventosWeb.Endpoint,
config :mobilizon, MobilizonWeb.Endpoint,
url: [host: "localhost"],
secret_key_base: "1yOazsoE0Wqu4kXk3uC5gu3jDbShOimTCzyFL3OjCdBmOXMyHX87Qmf3+Tu9s0iM",
render_errors: [view: EventosWeb.ErrorView, accepts: ~w(html json)],
pubsub: [name: Eventos.PubSub, adapter: Phoenix.PubSub.PG2],
render_errors: [view: MobilizonWeb.ErrorView, accepts: ~w(html json)],
pubsub: [name: Mobilizon.PubSub, adapter: Phoenix.PubSub.PG2],
instance: "localhost",
email_from: "noreply@localhost",
email_to: "noreply@localhost"
@ -38,12 +38,12 @@ config :logger, :console,
# of this file so it overrides the configuration defined above.
import_config "#{Mix.env()}.exs"
config :eventos, EventosWeb.Guardian,
issuer: "eventos",
config :mobilizon, MobilizonWeb.Guardian,
issuer: "mobilizon",
secret_key: "ty0WM7YBE3ojvxoUQxo8AERrNpfbXnIJ82ovkPdqbUFw31T5LcK8wGjaOiReVQjo"
config :guardian, Guardian.DB,
repo: Eventos.Repo,
repo: Mobilizon.Repo,
# default
schema_name: "guardian_tokens",
# store all token types if not set

View File

@ -6,7 +6,7 @@ use Mix.Config
# The watchers configuration can be used to run external
# watchers to your application. For example, we use it
# with brunch.io to recompile .js and .css sources.
config :eventos, EventosWeb.Endpoint,
config :mobilizon, MobilizonWeb.Endpoint,
http: [port: System.get_env("PORT") || 4001],
debug_errors: true,
code_reloader: true,
@ -30,13 +30,13 @@ config :eventos, EventosWeb.Endpoint,
# different ports.
# Watch static and templates for browser reloading.
config :eventos, EventosWeb.Endpoint,
config :mobilizon, MobilizonWeb.Endpoint,
live_reload: [
patterns: [
~r{priv/static/.*(js|css|png|jpeg|jpg|gif|svg)$},
~r{priv/gettext/.*(po)$},
~r{lib/eventos_web/views/.*(ex)$},
~r{lib/eventos_web/templates/.*(eex)$}
~r{lib/mobilizon_web/views/.*(ex)$},
~r{lib/mobilizon_web/templates/.*(eex)$}
]
]
@ -47,14 +47,14 @@ config :logger, :console, format: "[$level] $message\n", level: :debug
# in production as building large stacktraces may be expensive.
config :phoenix, :stacktrace_depth, 20
config :eventos, Eventos.Mailer, adapter: Bamboo.LocalAdapter
config :mobilizon, Mobilizon.Mailer, adapter: Bamboo.LocalAdapter
# Configure your database
config :eventos, Eventos.Repo,
config :mobilizon, Mobilizon.Repo,
adapter: Ecto.Adapters.Postgres,
types: Eventos.PostgresTypes,
types: Mobilizon.PostgresTypes,
username: System.get_env("POSTGRES_USER") || "elixir",
password: System.get_env("POSTGRES_PASSWORD") || "elixir",
database: System.get_env("POSTGRES_DATABASE") || "eventos_dev",
database: System.get_env("POSTGRES_DATABASE") || "mobilizon_dev",
hostname: System.get_env("POSTGRES_HOST") || "localhost",
pool_size: 10

View File

@ -3,7 +3,7 @@ use Mix.Config
# For production, we often load configuration from external
# sources, such as your system environment. For this reason,
# you won't find the :http configuration below, but set inside
# EventosWeb.Endpoint.init/2 when load_from_system_env is
# MobilizonWeb.Endpoint.init/2 when load_from_system_env is
# true. Any dynamic configuration should be done there.
#
# Don't forget to configure the url host to something meaningful,
@ -13,12 +13,12 @@ use Mix.Config
# containing the digested version of static files. This
# manifest is generated by the mix phx.digest task
# which you typically run after static files are built.
config :eventos, EventosWeb.Endpoint,
config :mobilizon, MobilizonWeb.Endpoint,
load_from_system_env: true,
url: [host: "example.com", port: 80],
cache_static_manifest: "priv/static/cache_manifest.json"
config :eventos, Eventos.Mailer,
config :mobilizon, Mobilizon.Mailer,
adapter: Bamboo.SMTPAdapter,
server: "localhost",
hostname: "localhost",
@ -45,7 +45,7 @@ config :logger, level: :info
# To get SSL working, you will need to add the `https` key
# to the previous section and set your `:url` port to 443:
#
# config :eventos, EventosWeb.Endpoint,
# config :mobilizon, MobilizonWeb.Endpoint,
# ...
# url: [host: "example.com", port: 443],
# https: [:inet6,
@ -60,7 +60,7 @@ config :logger, level: :info
# We also recommend setting `force_ssl`, ensuring no data is
# ever sent via http, always redirecting to https:
#
# config :eventos, EventosWeb.Endpoint,
# config :mobilizon, MobilizonWeb.Endpoint,
# force_ssl: [hsts: true]
#
# Check `Plug.SSL` for all available options in `force_ssl`.
@ -75,7 +75,7 @@ config :logger, level: :info
# Alternatively, you can configure exactly which server to
# start per endpoint:
#
# config :eventos, EventosWeb.Endpoint, server: true
# config :mobilizon, MobilizonWeb.Endpoint, server: true
#
# Finally import the config/prod.secret.exs

View File

@ -2,7 +2,7 @@ use Mix.Config
# We don't run a server during test. If one is required,
# you can enable the server option below.
config :eventos, EventosWeb.Endpoint,
config :mobilizon, MobilizonWeb.Endpoint,
http: [port: 4001],
server: false
@ -13,13 +13,13 @@ config :logger,
level: :info
# Configure your database
config :eventos, Eventos.Repo,
config :mobilizon, Mobilizon.Repo,
adapter: Ecto.Adapters.Postgres,
username: System.get_env("POSTGRES_USER") || "elixir",
password: System.get_env("POSTGRES_PASSWORD") || "elixir",
database: "eventos_test",
database: "mobilizon_test",
hostname: System.get_env("POSTGRES_HOST") || "localhost",
pool: Ecto.Adapters.SQL.Sandbox,
types: Eventos.PostgresTypes
types: Mobilizon.PostgresTypes
config :eventos, Eventos.Mailer, adapter: Bamboo.TestAdapter
config :mobilizon, Mobilizon.Mailer, adapter: Bamboo.TestAdapter

View File

@ -3,15 +3,15 @@ version: '3'
services:
postgres:
container_name: eventos_db
container_name: mobilizon_db
restart: unless-stopped
image: mdillon/postgis:10
environment:
POSTGRES_PASSWORD: postgres
POSTGRES_DB: eventos_dev
POSTGRES_DB: mobilizon_dev
front:
container_name: eventos_front
container_name: mobilizon_front
restart: unless-stopped
build: ./js
volumes:
@ -21,7 +21,7 @@ services:
entrypoint: entrypoint
api:
container_name: eventos_api
container_name: mobilizon_api
restart: unless-stopped
build: .
volumes:
@ -33,7 +33,7 @@ services:
environment:
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
POSTGRES_DATABASE: eventos_dev
POSTGRES_DATABASE: mobilizon_dev
POSTGRES_HOST: postgres
PORT: 4000
entrypoint: entrypoint

View File

@ -1,3 +1,3 @@
API_HOST=eventos.tld
API_ORIGIN=https://eventos.tld
API_HOST=mobilizon.tld
API_ORIGIN=https://mobilizon.tld
API_PATH=/api/v1

2
js/package-lock.json generated
View File

@ -1,5 +1,5 @@
{
"name": "eventos",
"name": "mobilizon",
"version": "0.1.0",
"lockfileVersion": 1,
"requires": true,

View File

@ -1,5 +1,5 @@
{
"name": "eventos",
"name": "mobilizon",
"version": "0.1.0",
"private": true,
"scripts": {

View File

@ -5,11 +5,11 @@
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title>eventos</title>
<title>mobilizon</title>
</head>
<body>
<noscript>
<strong>We're sorry but eventos doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
<strong>We're sorry but mobilizon doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->

View File

@ -1,6 +1,6 @@
{
"name": "eventos",
"short_name": "eventos",
"name": "mobilizon",
"short_name": "mobilizon",
"icons": [
{
"src": "/img/icons/android-chrome-192x192.png",

View File

@ -11,7 +11,7 @@
<v-layout align-center>
<v-flex text-xs-center>
<h1 class="display-3">Find events you like</h1>
<h2>Share it with Eventos</h2>
<h2>Share it with Mobilizon</h2>
<v-btn :to="{ name: 'Register' }">{{ $t("home.register") }}</v-btn>
</v-flex>
</v-layout>

View File

@ -8,7 +8,7 @@
>
<v-toolbar-title style="width: 300px" class="ml-0 pl-3 white--text">
<v-toolbar-side-icon @click.stop="toggleDrawer()"></v-toolbar-side-icon>
<router-link :to="{ name: 'Home' }" class="hidden-sm-and-down white--text">Eventos
<router-link :to="{ name: 'Home' }" class="hidden-sm-and-down white--text">Mobilizon
</router-link>
</v-toolbar-title>
<v-autocomplete

View File

@ -1,7 +1,7 @@
export default {
home: {
welcome: 'Welcome on Eventos, {username}',
welcome_off: 'Welcome on Eventos',
welcome: 'Welcome on Mobilizon, {username}',
welcome_off: 'Welcome on Mobilizon',
events: 'Events',
groups: 'Groups',
login: 'Login',

View File

@ -1,7 +1,7 @@
export default {
home: {
welcome: 'Bienvenue sur Eventos, {username}!',
welcome_off: 'Bienvenue sur Eventos',
welcome: 'Bienvenue sur Mobilizon, {username}!',
welcome_off: 'Bienvenue sur Mobilizon',
events: 'Événements',
groups: 'Groupes',
login: 'Se connecter',

View File

@ -1,9 +1,9 @@
defmodule Eventos do
defmodule Mobilizon do
@moduledoc """
Eventos is a decentralized and federated Meetup-like using [ActivityPub](http://activitypub.rocks/).
Mobilizon is a decentralized and federated Meetup-like using [ActivityPub](http://activitypub.rocks/).
It consists of an API server build with [Elixir](http://elixir-lang.github.io/) and the [Phoenix Framework](https://hexdocs.pm/phoenix).
Eventos relies on `Guardian` for auth and `Geo`/Postgis for geographical informations.
Mobilizon relies on `Guardian` for auth and `Geo`/Postgis for geographical informations.
"""
end

View File

@ -1,6 +0,0 @@
defmodule Eventos.Mailer do
@moduledoc """
Mailer
"""
use Bamboo.Mailer, otp_app: :eventos
end

View File

@ -1,12 +1,12 @@
defmodule EventosWeb do
defmodule MobilizonWeb do
@moduledoc """
The entrypoint for defining your web interface, such
as controllers, views, channels and so on.
This can be used in your application as:
use EventosWeb, :controller
use EventosWeb, :view
use MobilizonWeb, :controller
use MobilizonWeb, :view
The definitions below will be executed for every view,
controller, etc, so keep them short and clean, focused
@ -19,18 +19,18 @@ defmodule EventosWeb do
def controller do
quote do
use Phoenix.Controller, namespace: EventosWeb
use Phoenix.Controller, namespace: MobilizonWeb
import Plug.Conn
import EventosWeb.Router.Helpers
import EventosWeb.Gettext
import MobilizonWeb.Router.Helpers
import MobilizonWeb.Gettext
end
end
def view do
quote do
use Phoenix.View,
root: "lib/eventos_web/templates",
namespace: EventosWeb
root: "lib/mobilizon_web/templates",
namespace: MobilizonWeb
# Import convenience functions from controllers
import Phoenix.Controller, only: [get_flash: 2, view_module: 1]
@ -38,9 +38,9 @@ defmodule EventosWeb do
# Use all HTML functionality (forms, tags, etc)
use Phoenix.HTML
import EventosWeb.Router.Helpers
import EventosWeb.ErrorHelpers
import EventosWeb.Gettext
import MobilizonWeb.Router.Helpers
import MobilizonWeb.ErrorHelpers
import MobilizonWeb.Gettext
end
end
@ -55,7 +55,7 @@ defmodule EventosWeb do
def channel do
quote do
use Phoenix.Channel
import EventosWeb.Gettext
import MobilizonWeb.Gettext
end
end

View File

@ -1,6 +0,0 @@
defmodule EventosWeb.InboxesController do
use EventosWeb, :controller
def create(conn) do
end
end

View File

@ -1,10 +0,0 @@
<html>
<head>
<link rel="stylesheet" href="<%= static_url(EventosWeb.Endpoint, "/css/email.css") %>">
</head>
<body>
<%= render @view_module, @view_template, assigns %>
<p><%= gettext "An email sent by Eventos on %{instance}.", instance: @instance %></p>
</body>
</html>

View File

@ -1,3 +0,0 @@
<%= render @view_module, @view_template, assigns %>
<%= gettext "An email sent by Eventos on %{instance}.", instance: @instance %>

View File

@ -1,3 +0,0 @@
defmodule Eventos.EmailView do
use EventosWeb, :view
end

View File

@ -1,6 +0,0 @@
defmodule EventosWeb.PageView do
@moduledoc """
View for our webapp
"""
use EventosWeb, :view
end

View File

@ -1,10 +0,0 @@
defmodule EventosWeb.UserSessionView do
@moduledoc """
View for user Sessions
"""
use EventosWeb, :view
def render("token.json", %{token: token, user: user}) do
%{token: token, user: render_one(user, EventosWeb.UserView, "user_simple.json")}
end
end

View File

@ -4,10 +4,10 @@ defmodule Mix.Tasks.CreateBot do
"""
use Mix.Task
alias Eventos.Actors
alias Eventos.Actors.Bot
alias Eventos.Repo
alias Eventos.Actors.User
alias Mobilizon.Actors
alias Mobilizon.Actors.Bot
alias Mobilizon.Repo
alias Mobilizon.Actors.User
import Logger
@shortdoc "Register user"

View File

@ -1,4 +1,4 @@
defmodule Eventos.Activity do
defmodule Mobilizon.Activity do
@moduledoc """
Represents an activity
"""

View File

@ -1,6 +1,6 @@
import EctoEnum
defenum(Eventos.Actors.ActorTypeEnum, :actor_type, [
defenum(Mobilizon.Actors.ActorTypeEnum, :actor_type, [
:Person,
:Application,
:Group,
@ -8,19 +8,19 @@ defenum(Eventos.Actors.ActorTypeEnum, :actor_type, [
:Service
])
defmodule Eventos.Actors.Actor do
defmodule Mobilizon.Actors.Actor do
@moduledoc """
Represents an actor (local and remote actors)
"""
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Actors
alias Eventos.Actors.{Actor, User, Follower, Member}
alias Eventos.Events.Event
alias Eventos.Service.ActivityPub
alias Mobilizon.Actors
alias Mobilizon.Actors.{Actor, User, Follower, Member}
alias Mobilizon.Events.Event
alias Mobilizon.Service.ActivityPub
import Ecto.Query
alias Eventos.Repo
alias Mobilizon.Repo
import Logger
@ -33,7 +33,7 @@ defmodule Eventos.Actors.Actor do
field(:following_url, :string)
field(:followers_url, :string)
field(:shared_inbox_url, :string)
field(:type, Eventos.Actors.ActorTypeEnum, default: :Person)
field(:type, Mobilizon.Actors.ActorTypeEnum, default: :Person)
field(:name, :string)
field(:domain, :string)
field(:summary, :string)
@ -73,7 +73,7 @@ defmodule Eventos.Actors.Actor do
:banner_url,
:user_id
])
|> put_change(:url, "#{EventosWeb.Endpoint.url()}/@#{attrs["preferred_username"]}")
|> put_change(:url, "#{MobilizonWeb.Endpoint.url()}/@#{attrs["preferred_username"]}")
|> validate_required([:preferred_username, :keys, :suspended, :url])
|> unique_constraint(:preferred_username, name: :actors_preferred_username_domain_index)
end
@ -94,10 +94,10 @@ defmodule Eventos.Actors.Actor do
:user_id
])
|> unique_constraint(:preferred_username, name: :actors_preferred_username_domain_index)
|> put_change(:url, "#{EventosWeb.Endpoint.url()}/@#{attrs.preferred_username}")
|> put_change(:inbox_url, "#{EventosWeb.Endpoint.url()}/@#{attrs.preferred_username}/inbox")
|> put_change(:outbox_url, "#{EventosWeb.Endpoint.url()}/@#{attrs.preferred_username}/outbox")
|> put_change(:shared_inbox_url, "#{EventosWeb.Endpoint.url()}/inbox")
|> put_change(:url, "#{MobilizonWeb.Endpoint.url()}/@#{attrs.preferred_username}")
|> put_change(:inbox_url, "#{MobilizonWeb.Endpoint.url()}/@#{attrs.preferred_username}/inbox")
|> put_change(:outbox_url, "#{MobilizonWeb.Endpoint.url()}/@#{attrs.preferred_username}/outbox")
|> put_change(:shared_inbox_url, "#{MobilizonWeb.Endpoint.url()}/inbox")
|> validate_required([:preferred_username, :keys, :suspended, :url, :type])
end
@ -160,14 +160,14 @@ defmodule Eventos.Actors.Actor do
])
|> put_change(
:outbox_url,
"#{EventosWeb.Endpoint.url()}/@#{params["preferred_username"]}/outbox"
"#{MobilizonWeb.Endpoint.url()}/@#{params["preferred_username"]}/outbox"
)
|> put_change(
:inbox_url,
"#{EventosWeb.Endpoint.url()}/@#{params["preferred_username"]}/inbox"
"#{MobilizonWeb.Endpoint.url()}/@#{params["preferred_username"]}/inbox"
)
|> put_change(:shared_inbox_url, "#{EventosWeb.Endpoint.url()}/inbox")
|> put_change(:url, "#{EventosWeb.Endpoint.url()}/@#{params["preferred_username"]}")
|> put_change(:shared_inbox_url, "#{MobilizonWeb.Endpoint.url()}/inbox")
|> put_change(:url, "#{MobilizonWeb.Endpoint.url()}/@#{params["preferred_username"]}")
|> put_change(:domain, nil)
|> put_change(:type, :Group)
|> validate_required([:url, :outbox_url, :inbox_url, :type, :name, :preferred_username])
@ -180,7 +180,7 @@ defmodule Eventos.Actors.Actor do
def get_public_key_for_url(url) do
with {:ok, %Actor{} = actor} <- Actors.get_or_fetch_by_url(url) do
actor.keys
|> Eventos.Service.ActivityPub.Utils.pem_to_public_key()
|> Mobilizon.Service.ActivityPub.Utils.pem_to_public_key()
else
_ -> :error
end

View File

@ -1,15 +1,15 @@
defmodule Eventos.Actors do
defmodule Mobilizon.Actors do
@moduledoc """
The Actors context.
"""
import Ecto.Query, warn: false
alias Eventos.Repo
alias Mobilizon.Repo
alias Eventos.Actors.Actor
alias Eventos.Actors
alias Mobilizon.Actors.Actor
alias Mobilizon.Actors
alias Eventos.Service.ActivityPub
alias Mobilizon.Service.ActivityPub
@doc """
Returns the list of actors.
@ -147,7 +147,7 @@ defmodule Eventos.Actors do
|> Repo.insert()
end
alias Eventos.Actors.User
alias Mobilizon.Actors.User
@doc """
Returns the list of users.
@ -361,7 +361,7 @@ defmodule Eventos.Actors do
case Comeonin.Argon2.checkpw(password, user.password_hash) do
true ->
# Yes, create and return the token
EventosWeb.Guardian.encode_and_sign(user)
MobilizonWeb.Guardian.encode_and_sign(user)
_ ->
# No, return an error
@ -391,7 +391,7 @@ defmodule Eventos.Actors do
end
actor =
Eventos.Actors.Actor.registration_changeset(%Eventos.Actors.Actor{}, %{
Mobilizon.Actors.Actor.registration_changeset(%Mobilizon.Actors.Actor{}, %{
preferred_username: username,
domain: nil,
keys: pem,
@ -399,7 +399,7 @@ defmodule Eventos.Actors do
})
user =
Eventos.Actors.User.registration_changeset(%Eventos.Actors.User{}, %{
Mobilizon.Actors.User.registration_changeset(%Mobilizon.Actors.User{}, %{
email: email,
password: password
})
@ -407,7 +407,7 @@ defmodule Eventos.Actors do
actor_with_user = Ecto.Changeset.put_assoc(actor, :user, user)
try do
Eventos.Repo.insert!(actor_with_user)
Mobilizon.Repo.insert!(actor_with_user)
find_by_email(email)
rescue
e in Ecto.InvalidChangesetError ->
@ -421,7 +421,7 @@ defmodule Eventos.Actors do
pem = [entry] |> :public_key.pem_encode() |> String.trim_trailing()
actor =
Eventos.Actors.Actor.registration_changeset(%Eventos.Actors.Actor{}, %{
Mobilizon.Actors.Actor.registration_changeset(%Mobilizon.Actors.Actor{}, %{
preferred_username: name,
domain: nil,
keys: pem,
@ -430,7 +430,7 @@ defmodule Eventos.Actors do
})
try do
Eventos.Repo.insert!(actor)
Mobilizon.Repo.insert!(actor)
rescue
e in Ecto.InvalidChangesetError ->
{:error, e.changeset}
@ -520,7 +520,7 @@ defmodule Eventos.Actors do
User.changeset(user, %{})
end
alias Eventos.Actors.Member
alias Mobilizon.Actors.Member
@doc """
Gets a single member.
@ -626,7 +626,7 @@ defmodule Eventos.Actors do
)
end
alias Eventos.Actors.Bot
alias Mobilizon.Actors.Bot
@doc """
Returns the list of bots.
@ -727,7 +727,7 @@ defmodule Eventos.Actors do
Bot.changeset(bot, %{})
end
alias Eventos.Actors.Follower
alias Mobilizon.Actors.Follower
@doc """
Gets a single follower.

View File

@ -1,10 +1,10 @@
defmodule Eventos.Actors.Bot do
defmodule Mobilizon.Actors.Bot do
@moduledoc """
Represents a local bot
"""
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Actors.{Actor, User, Bot}
alias Mobilizon.Actors.{Actor, User, Bot}
schema "bots" do
field(:source, :string)

View File

@ -1,11 +1,11 @@
defmodule Eventos.Actors.Follower do
defmodule Mobilizon.Actors.Follower do
@moduledoc """
Represents the following of an actor to another actor
"""
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Actors.Follower
alias Eventos.Actors.Actor
alias Mobilizon.Actors.Follower
alias Mobilizon.Actors.Actor
schema "followers" do
field(:approved, :boolean, default: false)

View File

@ -1,11 +1,11 @@
defmodule Eventos.Actors.Member do
defmodule Mobilizon.Actors.Member do
@moduledoc """
Represents the membership of an actor to a group
"""
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Actors.Member
alias Eventos.Actors.Actor
alias Mobilizon.Actors.Member
alias Mobilizon.Actors.Actor
schema "members" do
field(:approved, :boolean, default: true)

View File

@ -1,8 +1,8 @@
defmodule Eventos.Actors.Service.Activation do
defmodule Mobilizon.Actors.Service.Activation do
@moduledoc false
alias Eventos.{Mailer, Repo, Actors.User, Actors}
alias Eventos.Email.User, as: UserEmail
alias Mobilizon.{Mailer, Repo, Actors.User, Actors}
alias Mobilizon.Email.User, as: UserEmail
require Logger

View File

@ -1,10 +1,10 @@
defmodule Eventos.Actors.Service.ResetPassword do
defmodule Mobilizon.Actors.Service.ResetPassword do
@moduledoc false
require Logger
alias Eventos.{Mailer, Repo, Actors.User}
alias Eventos.Email.User, as: UserEmail
alias Mobilizon.{Mailer, Repo, Actors.User}
alias Mobilizon.Email.User, as: UserEmail
@doc """
Check that the provided token is correct and update provided password

View File

@ -1,10 +1,10 @@
defmodule Eventos.Actors.User do
defmodule Mobilizon.Actors.User do
@moduledoc """
Represents a local user
"""
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Actors.{Actor, User}
alias Mobilizon.Actors.{Actor, User}
schema "users" do
field(:email, :string)

View File

@ -1,11 +1,11 @@
defmodule Eventos.Addresses.Address do
defmodule Mobilizon.Addresses.Address do
@moduledoc "An address for an event or a group"
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Addresses.Address
alias Eventos.Events.Event
alias Eventos.Groups.Group
alias Mobilizon.Addresses.Address
alias Mobilizon.Events.Event
alias Mobilizon.Groups.Group
schema "addresses" do
field(:addressCountry, :string)

View File

@ -1,12 +1,12 @@
defmodule Eventos.Addresses do
defmodule Mobilizon.Addresses do
@moduledoc """
The Addresses context.
"""
import Ecto.Query, warn: false
alias Eventos.Repo
alias Mobilizon.Repo
alias Eventos.Addresses.Address
alias Mobilizon.Addresses.Address
import Logger

View File

@ -1,6 +1,6 @@
defmodule Eventos.Application do
defmodule Mobilizon.Application do
@moduledoc """
The Eventos application
The Mobilizon application
"""
use Application
@ -12,25 +12,25 @@ defmodule Eventos.Application do
# Define workers and child supervisors to be supervised
children = [
# Start the Ecto repository
supervisor(Eventos.Repo, []),
supervisor(Mobilizon.Repo, []),
# Start the endpoint when the application starts
supervisor(EventosWeb.Endpoint, []),
# Start your own worker by calling: Eventos.Worker.start_link(arg1, arg2, arg3)
# worker(Eventos.Worker, [arg1, arg2, arg3]),
supervisor(MobilizonWeb.Endpoint, []),
# Start your own worker by calling: Mobilizon.Worker.start_link(arg1, arg2, arg3)
# worker(Mobilizon.Worker, [arg1, arg2, arg3]),
worker(Guardian.DB.Token.SweeperServer, []),
worker(Eventos.Service.Federator, [])
worker(Mobilizon.Service.Federator, [])
]
# See https://hexdocs.pm/elixir/Supervisor.html
# for other strategies and supported options
opts = [strategy: :one_for_one, name: Eventos.Supervisor]
opts = [strategy: :one_for_one, name: Mobilizon.Supervisor]
Supervisor.start_link(children, opts)
end
# Tell Phoenix to update the endpoint configuration
# whenever the application is updated.
def config_change(changed, _new, removed) do
EventosWeb.Endpoint.config_change(changed, removed)
MobilizonWeb.Endpoint.config_change(changed, removed)
:ok
end
end

View File

@ -1,13 +1,13 @@
defmodule Eventos.Email.User do
defmodule Mobilizon.Email.User do
@moduledoc """
Handles emails sent to users
"""
alias Eventos.Actors.User
alias Mobilizon.Actors.User
import Bamboo.Email
import Bamboo.Phoenix
use Bamboo.Phoenix, view: Eventos.EmailView
import EventosWeb.Gettext
use Bamboo.Phoenix, view: Mobilizon.EmailView
import MobilizonWeb.Gettext
def confirmation_email(%User{} = user, locale \\ "en") do
Gettext.put_locale(locale)
@ -45,13 +45,13 @@ defmodule Eventos.Email.User do
defp base_email do
# Here you can set a default from, default headers, etc.
new_email()
|> from(Application.get_env(:eventos, EventosWeb.Endpoint)[:email_from])
|> put_html_layout({Eventos.EmailView, "email.html"})
|> put_text_layout({Eventos.EmailView, "email.text"})
|> from(Application.get_env(:mobilizon, MobilizonWeb.Endpoint)[:email_from])
|> put_html_layout({Mobilizon.EmailView, "email.html"})
|> put_text_layout({Mobilizon.EmailView, "email.text"})
end
@spec get_config(atom()) :: any()
defp get_config(key) do
_config = Application.get_env(:eventos, EventosWeb.Endpoint) |> Keyword.get(key)
_config = Application.get_env(:mobilizon, MobilizonWeb.Endpoint) |> Keyword.get(key)
end
end

View File

@ -1,10 +1,10 @@
defmodule Eventos.Events.Category do
defmodule Mobilizon.Events.Category do
@moduledoc """
Represents a category for events
"""
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Events.Category
alias Mobilizon.Events.Category
schema "categories" do
field(:description, :string)

View File

@ -1,4 +1,4 @@
defmodule Eventos.Events.Comment do
defmodule Mobilizon.Events.Comment do
@moduledoc """
An actor comment (for instance on an event or on a group)
"""
@ -6,9 +6,9 @@ defmodule Eventos.Events.Comment do
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Events.Event
alias Eventos.Actors.Actor
alias Eventos.Actors.Comment
alias Mobilizon.Events.Event
alias Mobilizon.Actors.Actor
alias Mobilizon.Actors.Comment
schema "comments" do
field(:text, :string)
@ -32,7 +32,7 @@ defmodule Eventos.Events.Comment do
url =
if Map.has_key?(attrs, "url"),
do: attrs["url"],
else: "#{EventosWeb.Endpoint.url()}/comments/#{uuid}"
else: "#{MobilizonWeb.Endpoint.url()}/comments/#{uuid}"
comment
|> cast(attrs, [:url, :text, :actor_id, :event_id, :in_reply_to_comment_id, :attributed_to_id])

View File

@ -1,15 +1,15 @@
import EctoEnum
defenum(AddressTypeEnum, :address_type, [:physical, :url, :phone, :other])
defmodule Eventos.Events.Event do
defmodule Mobilizon.Events.Event do
@moduledoc """
Represents an event
"""
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Events.{Event, Participant, Tag, Category, Session, Track}
alias Eventos.Actors.Actor
alias Eventos.Addresses.Address
alias Mobilizon.Events.{Event, Participant, Tag, Category, Session, Track}
alias Mobilizon.Actors.Actor
alias Mobilizon.Addresses.Address
schema "events" do
field(:url, :string)
@ -58,7 +58,7 @@ defmodule Eventos.Events.Event do
url =
if Map.has_key?(attrs, "url"),
do: attrs["url"],
else: "#{EventosWeb.Endpoint.url()}/@#{actor_url}/#{uuid}"
else: "#{MobilizonWeb.Endpoint.url()}/@#{actor_url}/#{uuid}"
event
|> Ecto.Changeset.cast(attrs, [

View File

@ -1,15 +1,15 @@
defmodule Eventos.Events do
defmodule Mobilizon.Events do
@moduledoc """
The Events context.
"""
import Ecto.Query, warn: false
alias Eventos.Repo
alias Mobilizon.Repo
alias Eventos.Events.Event
alias Eventos.Events.Comment
alias Eventos.Actors.Actor
alias Eventos.Addresses.Address
alias Mobilizon.Events.Event
alias Mobilizon.Events.Comment
alias Mobilizon.Actors.Actor
alias Mobilizon.Addresses.Address
@doc """
Returns the list of events.
@ -263,7 +263,7 @@ defmodule Eventos.Events do
Event.changeset(event, %{})
end
alias Eventos.Events.Category
alias Mobilizon.Events.Category
@doc """
Returns the list of categories.
@ -364,7 +364,7 @@ defmodule Eventos.Events do
Category.changeset(category, %{})
end
alias Eventos.Events.Tag
alias Mobilizon.Events.Tag
@doc """
Returns the list of tags.
@ -460,7 +460,7 @@ defmodule Eventos.Events do
Tag.changeset(tag, %{})
end
alias Eventos.Events.Participant
alias Mobilizon.Events.Participant
@doc """
Returns the list of participants.
@ -562,7 +562,7 @@ defmodule Eventos.Events do
Repo.all(from(p in Participant, where: p.actor_id == ^actor.id and p.approved == false))
end
alias Eventos.Events.Session
alias Mobilizon.Events.Session
@doc """
Returns the list of sessions.
@ -679,7 +679,7 @@ defmodule Eventos.Events do
Session.changeset(session, %{})
end
alias Eventos.Events.Track
alias Mobilizon.Events.Track
@doc """
Returns the list of tracks.
@ -775,7 +775,7 @@ defmodule Eventos.Events do
Track.changeset(track, %{})
end
alias Eventos.Events.Comment
alias Mobilizon.Events.Comment
@doc """
Returns the list of comments.

View File

@ -1,11 +1,11 @@
defmodule Eventos.Events.Participant do
defmodule Mobilizon.Events.Participant do
@moduledoc """
Represents a participant, an actor participating to an event
"""
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Events.{Participant, Event}
alias Eventos.Actors.Actor
alias Mobilizon.Events.{Participant, Event}
alias Mobilizon.Actors.Actor
@primary_key false
schema "participants" do

View File

@ -1,10 +1,10 @@
defmodule Eventos.Events.Session do
defmodule Mobilizon.Events.Session do
@moduledoc """
Represents a session for an event (such as a talk at a conference)
"""
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Events.{Session, Event, Track}
alias Mobilizon.Events.{Session, Event, Track}
schema "sessions" do
field(:audios_urls, :string)

View File

@ -1,10 +1,10 @@
defmodule Eventos.Events.Tag.TitleSlug do
defmodule Mobilizon.Events.Tag.TitleSlug do
@moduledoc """
Generates slugs for tags
"""
alias Eventos.Events.Tag
alias Mobilizon.Events.Tag
import Ecto.Query
alias Eventos.Repo
alias Mobilizon.Repo
use EctoAutoslugField.Slug, from: :title, to: :slug
def build_slug(sources, changeset) do
@ -25,20 +25,20 @@ defmodule Eventos.Events.Tag.TitleSlug do
_story ->
slug
|> Eventos.Slug.increment_slug()
|> Mobilizon.Slug.increment_slug()
|> build_unique_slug(changeset)
end
end
end
defmodule Eventos.Events.Tag do
defmodule Mobilizon.Events.Tag do
@moduledoc """
Represents a tag for events
"""
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Events.Tag
alias Eventos.Events.Tag.TitleSlug
alias Mobilizon.Events.Tag
alias Mobilizon.Events.Tag.TitleSlug
schema "tags" do
field(:title, :string)

View File

@ -1,10 +1,10 @@
defmodule Eventos.Events.Track do
defmodule Mobilizon.Events.Track do
@moduledoc """
Represents a track for an event (such as a theme) having multiple sessions
"""
use Ecto.Schema
import Ecto.Changeset
alias Eventos.Events.{Track, Event, Session}
alias Mobilizon.Events.{Track, Event, Session}
schema "tracks" do
field(:color, :string)

View File

@ -1,9 +1,9 @@
defmodule Eventos.Export.ICalendar do
defmodule Mobilizon.Export.ICalendar do
@moduledoc """
Export an event to iCalendar format
"""
alias Eventos.Events.Event
alias Mobilizon.Events.Event
@spec export_event(%Event{}) :: String
def export_event(%Event{} = event) do

6
lib/mobilizon/mailer.ex Normal file
View File

@ -0,0 +1,6 @@
defmodule Mobilizon.Mailer do