Compare commits
merge into: 0k:master
0k:0k/dev/master
0k:backup
0k:bgallet/nextcloud
0k:boris/smtp-extern
0k:charm-codimd-new
0k:cups_service_alpha
0k:dev
0k:dev1
0k:dhcp
0k:element
0k:etherpad-upd
0k:framadate
0k:get-version
0k:lokavaluto/dev/master
0k:master
0k:matomo
0k:new-mailhog-charms
0k:new-monujo-options
0k:nj-collabra-office
0k:nj-keycloak-17.0
0k:nj-organice-charm
0k:nj-vaulwarden-migrate
0k:ntfy-install
0k:odoo_fix_webhook_url
0k:postgres
0k:test
0k:upd-docker
0k:update-latest-synapse
0k:wip
pull from: 0k:framadate
0k:0k/dev/master
0k:backup
0k:bgallet/nextcloud
0k:boris/smtp-extern
0k:charm-codimd-new
0k:cups_service_alpha
0k:dev
0k:dev1
0k:dhcp
0k:element
0k:etherpad-upd
0k:framadate
0k:get-version
0k:lokavaluto/dev/master
0k:master
0k:matomo
0k:new-mailhog-charms
0k:new-monujo-options
0k:nj-collabra-office
0k:nj-keycloak-17.0
0k:nj-organice-charm
0k:nj-vaulwarden-migrate
0k:ntfy-install
0k:odoo_fix_webhook_url
0k:postgres
0k:test
0k:upd-docker
0k:update-latest-synapse
0k:wip
4 Commits
Author | SHA1 | Message | Date |
---|---|---|---|
Valentin Lab | 3d685e994a |
new: [framadate] adding charm
|
6 years ago |
Valentin Lab | a7c16fac99 |
fix: dev: [postgres] remove some debugging info !minor
Signed-off-by: Valentin Lab <valentin.lab@kalysto.org> |
5 years ago |
Valentin Lab | 0aefc4422d |
new: [py3o-{fusion,server},lo-xcgd] add charm
Signed-off-by: Valentin Lab <valentin.lab@kalysto.org> |
5 years ago |
Valentin Lab | 347c825964 |
new: [postgres] add automatic backup every hours
Signed-off-by: Valentin Lab <valentin.lab@kalysto.org> |
5 years ago |
21 changed files with 3681 additions and 19 deletions
-
123framadate/hooks/init
-
28framadate/hooks/postgres_database-relation-joined
-
19framadate/hooks/publish_dir-relation-joined
-
50framadate/lib/common
-
34framadate/metadata.yml
-
2830framadate/patch/composer.json.patch
-
23framadate/patch/find-all-poll-date.patch
-
39framadate/patch/postgresql-compatibility.patch
-
12framadate/patch/protect-unset.patch
-
13framadate/patch/typo-poll-creation.patch
-
433framadate/src/init.sql
-
7lo-xcgd/metadata.yml
-
2postgres/build/Dockerfile
-
22postgres/hooks/schedule_command-relation-joined
-
1postgres/lib/common
-
9postgres/metadata.yml
-
7postgres/resources/bin/pg-backup
-
11py3o-fusion/hooks/py3o_render_server-relation-joined
-
11py3o-fusion/metadata.yml
-
10py3o-server/hooks/lo_server-relation-joind
-
14py3o-server/metadata.yml
@ -0,0 +1,123 @@ |
|||
#!/bin/bash |
|||
|
|||
## Init is run on host |
|||
## For now it is run every time the script is launched, but |
|||
## it should be launched only once after build. |
|||
|
|||
## Accessible variables are: |
|||
## - SERVICE_NAME Name of current service |
|||
## - DOCKER_BASE_IMAGE Base image from which this service might be built if any |
|||
## - SERVICE_DATASTORE Location on host of the DATASTORE of this service |
|||
## - SERVICE_CONFIGSTORE Location on host of the CONFIGSTORE of this service |
|||
|
|||
|
|||
. lib/common |
|||
|
|||
set -e |
|||
|
|||
|
|||
if ! [ -e "$FRAMADATE_CODE" ]; then |
|||
git clone --depth 1 -b v1.2.0-alpha.1 \ |
|||
https://framagit.org/framasoft/framadate/framadate.git \ |
|||
"$FRAMADATE_CODE" |
|||
mv "$FRAMADATE_CODE"/{htaccess.txt,.htaccess} |
|||
( |
|||
cd "$FRAMADATE_CODE" |
|||
patch -p1 |
|||
) < <(cat patch/*.patch) |
|||
|
|||
fi |
|||
|
|||
if ! [ -e "$FRAMADATE_CODE/vendor" ]; then |
|||
dcomposer global require "hirak/prestissimo:^0.3" \ |
|||
--prefer-dist \ |
|||
--no-progress \ |
|||
--no-suggest \ |
|||
--classmap-authoritative \ |
|||
--ignore-platform-reqs |
|||
fi |
|||
|
|||
cfg_dir=$(cfg_dir_init) || exit 1 |
|||
cd "$cfg_dir" || exit 1 |
|||
|
|||
FRAMADATE_OPTS=( |
|||
title:NOMAPPLICATION |
|||
admin-mail:ADRESSEMAILADMIN |
|||
auto-response-mail:ADRESSEMAILREPONSEAUTO |
|||
default-language:DEFAULT_LANGUAGE |
|||
) |
|||
|
|||
cat <<EOF > config.php |
|||
<?php |
|||
|
|||
EOF |
|||
|
|||
for opt in "${FRAMADATE_OPTS[@]}"; do |
|||
yaml_opt=${opt%%:*} |
|||
php_opt=${opt##*:} |
|||
value=$(options-get "$yaml_opt") || exit 1 |
|||
echo "const $php_opt = '$value';" >> config.php || exit 1 |
|||
done |
|||
|
|||
|
|||
cat <<'EOF' >> config.php |
|||
|
|||
// List of supported languages, fake constant as arrays can be used as constants only in PHP >=5.6 |
|||
$ALLOWED_LANGUAGES = [ |
|||
'fr' => 'Français', |
|||
'en' => 'English', |
|||
'oc' => 'Occitan', |
|||
'es' => 'Español', |
|||
'de' => 'Deutsch', |
|||
'nl' => 'Dutch', |
|||
'it' => 'Italiano', |
|||
'br' => 'Brezhoneg', |
|||
]; |
|||
|
|||
// Path to image file with the title |
|||
const IMAGE_TITRE = 'images/logo-framadate.png'; |
|||
|
|||
// Clean URLs, boolean |
|||
const URL_PROPRE = true; |
|||
|
|||
// Use REMOTE_USER data provided by web server |
|||
const USE_REMOTE_USER = true; |
|||
|
|||
// Path to the log file |
|||
const LOG_FILE = 'log/stdout.log'; |
|||
|
|||
// Days (after expiration date) before purging a poll |
|||
const PURGE_DELAY = 60; |
|||
|
|||
// Max slots per poll |
|||
const MAX_SLOTS_PER_POLL = 366; |
|||
|
|||
// Number of seconds before we allow to resend an "Remember Edit Link" email. |
|||
const TIME_EDIT_LINK_EMAIL = 60; |
|||
|
|||
// Config |
|||
$config = [ |
|||
/* general config */ |
|||
'use_smtp' => true, // use email for polls creation/modification/responses notification |
|||
'smtp_options' => [ |
|||
'host' => 'localhost', // SMTP server (you could add many servers (main and backup for example) : use ";" like separator |
|||
'auth' => false, // Enable SMTP authentication |
|||
'username' => '', // SMTP username |
|||
'password' => '', // SMTP password |
|||
'secure' => '', // Enable encryption (false, tls or ssl) |
|||
'port' => 25, // TCP port to connect to |
|||
], |
|||
/* home */ |
|||
'show_what_is_that' => true, // display "how to use" section |
|||
'show_the_software' => true, // display technical information about the software |
|||
'show_cultivate_your_garden' => true, // display "development and administration" information |
|||
/* create_classic_poll.php / create_date_poll.php */ |
|||
'default_poll_duration' => 180, // default values for the new poll duration (number of days). |
|||
/* create_classic_poll.php */ |
|||
'user_can_add_img_or_link' => true, // user can add link or URL when creating his poll. |
|||
'markdown_editor_by_default' => true, // The markdown editor for the description is enabled by default |
|||
'provide_fork_awesome' => true, // Whether the build-in fork-awesome should be provided |
|||
]; |
|||
|
|||
EOF |
|||
|
@ -0,0 +1,28 @@ |
|||
#!/bin/bash |
|||
|
|||
. lib/common |
|||
|
|||
set -e |
|||
|
|||
PASSWORD="$(relation-get password)" |
|||
USER="$(relation-get user)" |
|||
DBNAME="$(relation-get dbname)" |
|||
|
|||
cfg_dir=$(cfg_dir_init) || exit 1 |
|||
cd "$cfg_dir" || exit 1 |
|||
|
|||
cat <<EOF >> config.php |
|||
|
|||
const DB_CONNECTION_STRING = 'pgsql:host=$TARGET_SERVICE_NAME;dbname=$DBNAME;port=5432'; |
|||
|
|||
const DB_DRIVER = 'pdo_pgsql'; |
|||
const DB_NAME = '$DBNAME'; |
|||
const DB_HOST = '$TARGET_SERVICE_NAME'; |
|||
const DB_PORT = '5432'; |
|||
|
|||
const DB_USER= '$USER'; |
|||
const DB_PASSWORD = '$PASSWORD'; |
|||
const TABLENAME_PREFIX = 'fd_'; |
|||
const MIGRATION_TABLE = 'migration'; |
|||
|
|||
EOF |
@ -0,0 +1,19 @@ |
|||
#!/bin/bash |
|||
|
|||
. lib/common |
|||
|
|||
set -e |
|||
|
|||
domain=$(relation-get domain) || exit 1 |
|||
location=$DATASTORE/$BASE_SERVICE_NAME/var/www/$domain |
|||
|
|||
if ! [ -e "$location/app/inc/init.php" ]; then |
|||
cp -av "$FRAMADATE_CODE/app/inc/"* "$location/app/inc/" |
|||
fi |
|||
|
|||
cfg_dir=$(cfg_dir_init) || exit 1 |
|||
cd "$cfg_dir" |
|||
|
|||
echo "const APP_URL = '$domain';" >> config.php |
|||
|
|||
|
@ -0,0 +1,50 @@ |
|||
# -*- mode: sh -*- |
|||
|
|||
|
|||
COMPOSER_DIR="$SERVICE_CONFIGSTORE/root/.composer" |
|||
FRAMADATE_CODE="$SERVICE_CONFIGSTORE/opt/apps/framadate" |
|||
|
|||
dcomposer() { |
|||
docker run --rm -v "$COMPOSER_DIR:/root/.composer" \ |
|||
-v "$FRAMADATE_CODE:/opt/apps/framadate" \ |
|||
-w "/opt/apps/framadate" \ |
|||
--env "COMPOSER_ALLOW_SUPERUSER=1" \ |
|||
composer:latest "-vvv" "--working-dir=/opt/apps/framadate" "$@" |
|||
} |
|||
|
|||
|
|||
|
|||
cfg_dir_init() { |
|||
local locations candidate_location cfg_dir |
|||
|
|||
if [ "$BASE_SERVICE_NAME" ]; then |
|||
candidate_location=("$DATASTORE/$BASE_SERVICE_NAME/var/www/"*"/app/inc/") |
|||
else |
|||
candidate_location=("$DATASTORE/$SERVICE_NAME/var/www/"*"/app/inc/") |
|||
fi |
|||
|
|||
locations=() |
|||
for location in "${candidate_location[@]}"; do |
|||
[ -d "${location[0]}" ] || continue |
|||
locations+=("$location") |
|||
done |
|||
|
|||
case "${#locations[@]}" in |
|||
0) |
|||
debug "Relation publish-dir did not yet copy config files" |
|||
## not yet copied |
|||
cfg_dir="$FRAMADATE_CODE/app/inc/" |
|||
;; |
|||
1) |
|||
debug "Relation publish-dir already copied config files" |
|||
cfg_dir="${locations[0]}" |
|||
;; |
|||
*) |
|||
err "Unexpected: there are more than one directory in $DATASTORE/$BASE_SERVICE_NAME/var/www/" |
|||
exit 1 |
|||
;; |
|||
esac |
|||
|
|||
debug "found location: $cfg_dir" >&2 |
|||
echo "$cfg_dir" |
|||
} |
@ -0,0 +1,34 @@ |
|||
description: Framadate |
|||
subordinate: true |
|||
host-resources: |
|||
- /etc/timezone |
|||
default-options: |
|||
title: "Framadate" |
|||
admin-mail: "admin@example.com" |
|||
auto-response-mail: "no@reply" |
|||
default-language: fr |
|||
uses: |
|||
publish-dir: |
|||
#constraint: required | recommended | optional |
|||
#auto: pair | summon | none ## default: pair |
|||
constraint: required |
|||
auto: summon |
|||
solves: |
|||
database: "HTTP Publishing" |
|||
scope: container |
|||
default-options: |
|||
location: !var-expand "$CONFIGSTORE/$BASE_SERVICE_NAME/opt/apps/framadate" |
|||
data-dirs: |
|||
- tpl_c |
|||
- app/inc |
|||
- log |
|||
|
|||
postgres-database: |
|||
#constraint: required | recommended | optional |
|||
#auto: pair | summon | none ## default: pair |
|||
constraint: required |
|||
auto: summon |
|||
solves: |
|||
database: "main storage" |
|||
default-options: |
|||
init-sql: !file-content "$BASE_CHARM_PATH/src/init.sql" |
2830
framadate/patch/composer.json.patch
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,23 @@ |
|||
diff --git a/app/classes/Framadate/Repositories/PollRepository.php b/app/classes/Framadate/Repositories/PollRepository.php
|
|||
index 4a1e6ea..7cedca1 100644
|
|||
--- a/app/classes/Framadate/Repositories/PollRepository.php
|
|||
+++ b/app/classes/Framadate/Repositories/PollRepository.php
|
|||
@@ -202,7 +202,17 @@ class PollRepository extends AbstractRepository {
|
|||
|
|||
$prepared->execute(); |
|||
|
|||
- return $prepared->fetchAll();
|
|||
+ $polls = $prepared->fetchAll();
|
|||
+
|
|||
+ foreach ($polls as $poll) {
|
|||
+ /**
|
|||
+ * Hack to make date a proper DateTime
|
|||
+ */
|
|||
+ $poll->creation_date = Type::getType(Type::DATETIME)->convertToPhpValue($poll->creation_date, $this->connect->getDatabasePlatform());
|
|||
+ $poll->end_date = Type::getType(Type::DATETIME)->convertToPhpValue($poll->end_date, $this->connect->getDatabasePlatform());
|
|||
+ }
|
|||
+ return $polls;
|
|||
+
|
|||
} |
|||
|
|||
/** |
@ -0,0 +1,39 @@ |
|||
diff --git a/app/classes/Framadate/Repositories/PollRepository.php b/app/classes/Framadate/Repositories/PollRepository.php
|
|||
index 78d0860..4a1e6ea 100644
|
|||
--- a/app/classes/Framadate/Repositories/PollRepository.php
|
|||
+++ b/app/classes/Framadate/Repositories/PollRepository.php
|
|||
@@ -163,7 +163,7 @@ class PollRepository extends AbstractRepository {
|
|||
$request .= "SELECT p.*,"; |
|||
$request .= " (SELECT count(1) FROM " . Utils::table('vote') . " v WHERE p.id=v.poll_id) votes"; |
|||
$request .= " FROM " . Utils::table('poll') . " p"; |
|||
- $request .= " WHERE 1";
|
|||
+ $request .= " WHERE True";
|
|||
|
|||
$values = []; |
|||
|
|||
@@ -189,7 +189,7 @@ class PollRepository extends AbstractRepository {
|
|||
} |
|||
|
|||
$request .= " ORDER BY p.title ASC"; |
|||
- $request .= " LIMIT :start, :limit";
|
|||
+ $request .= " OFFSET :start LIMIT :limit";
|
|||
|
|||
$prepared = $this->prepare($request); |
|||
|
|||
@@ -230,11 +230,11 @@ class PollRepository extends AbstractRepository {
|
|||
// Total count |
|||
$prepared = $this->prepare(' |
|||
SELECT count(1) nb |
|||
- FROM ' . Utils::table('poll') . ' p
|
|||
- WHERE (:id = "" OR p.id LIKE :id)
|
|||
- AND (:title = "" OR p.title LIKE :title)
|
|||
- AND (:name = "" OR p.admin_name LIKE :name)
|
|||
- ORDER BY p.title ASC');
|
|||
+ FROM ' . Utils::table('poll') . " p
|
|||
+ WHERE (:id = '' OR p.id LIKE :id)
|
|||
+ AND (:title = '' OR p.title LIKE :title)
|
|||
+ AND (:name = '' OR p.admin_name LIKE :name)
|
|||
+");
|
|||
|
|||
$poll = $search === null ? '' : $search['poll'] . '%'; |
|||
$title = $search === null ? '' : '%' . $search['title'] . '%'; |
@ -0,0 +1,12 @@ |
|||
diff --git a/app/inc/init.php b/app/inc/init.php
|
|||
index 0e8fb19..272d83c 100644
|
|||
--- a/app/inc/init.php
|
|||
+++ b/app/inc/init.php
|
|||
@@ -97,4 +97,6 @@ require_once __DIR__ . '/i18n.php';
|
|||
require_once __DIR__ . '/smarty.php'; |
|||
|
|||
require_once __DIR__ . '/services.php'; |
|||
-Services::init($connect, $smarty);
|
|||
+if (isset($connect)) {
|
|||
+ Services::init($connect, $smarty);
|
|||
+}
|
@ -0,0 +1,13 @@ |
|||
diff --git a/app/classes/Framadate/Services/PollService.php b/app/classes/Framadate/Services/PollService.php
|
|||
index ca9eb70..3d9e967 100644
|
|||
--- a/app/classes/Framadate/Services/PollService.php
|
|||
+++ b/app/classes/Framadate/Services/PollService.php
|
|||
@@ -216,7 +216,7 @@ class PollService {
|
|||
list($poll_id, $admin_poll_id) = $this->createPoll($form); |
|||
|
|||
// Send confirmation by mail if enabled |
|||
- if (!is_null($ids)) {
|
|||
+ if (!is_null($poll_id)) {
|
|||
// Everything went well |
|||
$this->notificationService->sendPollCreationMails($form->admin_mail, $form->admin_name, $form->title, $poll_id, $admin_poll_id); |
|||
|
@ -0,0 +1,433 @@ |
|||
-- |
|||
-- PostgreSQL database dump |
|||
-- |
|||
|
|||
-- Dumped from database version 10.4 |
|||
-- Dumped by pg_dump version 10.4 |
|||
|
|||
SET statement_timeout = 0; |
|||
SET lock_timeout = 0; |
|||
SET idle_in_transaction_session_timeout = 0; |
|||
SET client_encoding = 'UTF8'; |
|||
SET standard_conforming_strings = on; |
|||
SELECT pg_catalog.set_config('search_path', '', false); |
|||
SET check_function_bodies = false; |
|||
SET client_min_messages = warning; |
|||
SET row_security = off; |
|||
|
|||
-- |
|||
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: - |
|||
-- |
|||
|
|||
CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog; |
|||
|
|||
|
|||
-- |
|||
-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: - |
|||
-- |
|||
|
|||
COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language'; |
|||
|
|||
|
|||
-- |
|||
-- Name: comment_seq; Type: SEQUENCE; Schema: public; Owner: - |
|||
-- |
|||
|
|||
CREATE SEQUENCE public.comment_seq |
|||
START WITH 1 |
|||
INCREMENT BY 1 |
|||
NO MINVALUE |
|||
NO MAXVALUE |
|||
CACHE 1; |
|||
|
|||
|
|||
-- |
|||
-- Name: comments_seq; Type: SEQUENCE; Schema: public; Owner: - |
|||
-- |
|||
|
|||
CREATE SEQUENCE public.comments_seq |
|||
START WITH 1 |
|||
INCREMENT BY 1 |
|||
NO MINVALUE |
|||
NO MAXVALUE |
|||
CACHE 1; |
|||
|
|||
|
|||
SET default_tablespace = ''; |
|||
|
|||
SET default_with_oids = false; |
|||
|
|||
-- |
|||
-- Name: fd_comment; Type: TABLE; Schema: public; Owner: - |
|||
-- |
|||
|
|||
CREATE TABLE public.fd_comment ( |
|||
id integer NOT NULL, |
|||
poll_id character varying(64) NOT NULL, |
|||
name character varying(64) NOT NULL, |
|||
comment text NOT NULL, |
|||
date timestamp(0) without time zone DEFAULT ((0)::abstime)::timestamp without time zone NOT NULL |
|||
); |
|||
|
|||
|
|||
-- |
|||
-- Name: fd_comment_id_seq; Type: SEQUENCE; Schema: public; Owner: - |
|||
-- |
|||
|
|||
CREATE SEQUENCE public.fd_comment_id_seq |
|||
AS integer |
|||
START WITH 1 |
|||
INCREMENT BY 1 |
|||
NO MINVALUE |
|||
NO MAXVALUE |
|||
CACHE 1; |
|||
|
|||
|
|||
-- |
|||
-- Name: fd_comment_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - |
|||
-- |
|||
|
|||
ALTER SEQUENCE public.fd_comment_id_seq OWNED BY public.fd_comment.id; |
|||
|
|||
|
|||
-- |
|||
-- Name: fd_migration_new; Type: TABLE; Schema: public; Owner: - |
|||
-- |
|||
|
|||
CREATE TABLE public.fd_migration_new ( |
|||
version character varying(255) NOT NULL |
|||
); |
|||
|
|||
|
|||
-- |
|||
-- Name: fd_poll; Type: TABLE; Schema: public; Owner: - |
|||
-- |
|||
|
|||
CREATE TABLE public.fd_poll ( |
|||
id character varying(64) NOT NULL, |
|||
admin_id character varying(255) NOT NULL, |
|||
title text NOT NULL, |
|||
description text, |
|||
admin_name character varying(255) NOT NULL, |
|||
admin_mail character varying(255) DEFAULT NULL::character varying, |
|||
creation_date timestamp(0) without time zone DEFAULT '2019-05-02 22:18:17'::timestamp without time zone NOT NULL, |
|||
end_date timestamp(0) without time zone DEFAULT NULL::timestamp without time zone, |
|||
format character varying(255) DEFAULT NULL::character varying, |
|||
editable integer DEFAULT 0 NOT NULL, |
|||
receivenewvotes boolean DEFAULT false NOT NULL, |
|||
active boolean DEFAULT true NOT NULL, |
|||
receivenewcomments boolean DEFAULT false NOT NULL, |
|||
hidden boolean DEFAULT false NOT NULL, |
|||
password_hash character varying(255) DEFAULT NULL::character varying, |
|||
results_publicly_visible boolean, |
|||
valuemax smallint, |
|||
collect_users_mail boolean DEFAULT false NOT NULL, |
|||
collect_users_mail_integer smallint DEFAULT 0 NOT NULL |
|||
); |
|||
|
|||
|
|||
-- |
|||
-- Name: fd_slot; Type: TABLE; Schema: public; Owner: - |
|||
-- |
|||
|
|||
CREATE TABLE public.fd_slot ( |
|||
id integer NOT NULL, |
|||
poll_id character varying(64) NOT NULL, |
|||
title text NOT NULL, |
|||
moments text |
|||
); |
|||
|
|||
|
|||
-- |
|||
-- Name: fd_slot_id_seq; Type: SEQUENCE; Schema: public; Owner: - |
|||
-- |
|||
|
|||
CREATE SEQUENCE public.fd_slot_id_seq |
|||
AS integer |
|||
START WITH 1 |
|||
INCREMENT BY 1 |
|||
NO MINVALUE |
|||
NO MAXVALUE |
|||
CACHE 1; |
|||
|
|||
|
|||
-- |
|||
-- Name: fd_slot_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - |
|||
-- |
|||
|
|||
ALTER SEQUENCE public.fd_slot_id_seq OWNED BY public.fd_slot.id; |
|||
|
|||
|
|||
-- |
|||
-- Name: fd_vote; Type: TABLE; Schema: public; Owner: - |
|||
-- |
|||
|
|||
CREATE TABLE public.fd_vote ( |
|||
id integer NOT NULL, |
|||
poll_id character varying(64) NOT NULL, |
|||
name character varying(255) NOT NULL, |
|||
choices character varying(255) NOT NULL, |
|||
uniqid character varying(16) NOT NULL, |
|||
mail character varying(255) DEFAULT NULL::character varying |
|||
); |
|||
|
|||
|
|||
-- |
|||
-- Name: fd_vote_id_seq; Type: SEQUENCE; Schema: public; Owner: - |
|||
-- |
|||
|
|||
CREATE SEQUENCE public.fd_vote_id_seq |
|||
AS integer |
|||
START WITH 1 |
|||
INCREMENT BY 1 |
|||
NO MINVALUE |
|||
NO MAXVALUE |
|||
CACHE 1; |
|||
|
|||
|
|||
-- |
|||
-- Name: fd_vote_id_seq; Type: SEQUENCE OWNED BY; Schema: public; Owner: - |
|||
-- |
|||
|
|||
ALTER SEQUENCE public.fd_vote_id_seq OWNED BY public.fd_vote.id; |
|||
|
|||
|
|||
-- |
|||
-- Name: slot_seq; Type: SEQUENCE; Schema: public; Owner: - |
|||
-- |
|||
|
|||
CREATE SEQUENCE public.slot_seq |
|||
START WITH 1 |
|||
INCREMENT BY 1 |
|||
NO MINVALUE |
|||
NO MAXVALUE |
|||
CACHE 1; |
|||
|
|||
|
|||
-- |
|||
-- Name: user_studs_seq; Type: SEQUENCE; Schema: public; Owner: - |
|||
-- |
|||
|
|||
CREATE SEQUENCE public.user_studs_seq |
|||
START WITH 1 |
|||
INCREMENT BY 1 |
|||
NO MINVALUE |
|||
NO MAXVALUE |
|||
CACHE 1; |
|||
|
|||
|
|||
-- |
|||
-- Name: vote_seq; Type: SEQUENCE; Schema: public; Owner: - |
|||
-- |
|||
|
|||
CREATE SEQUENCE public.vote_seq |
|||
START WITH 1 |
|||
INCREMENT BY 1 |
|||
NO MINVALUE |
|||
NO MAXVALUE |
|||
CACHE 1; |
|||
|
|||
|
|||
-- |
|||
-- Name: fd_comment id; Type: DEFAULT; Schema: public; Owner: - |
|||
-- |
|||
|
|||
ALTER TABLE ONLY public.fd_comment ALTER COLUMN id SET DEFAULT nextval('public.fd_comment_id_seq'::regclass); |
|||
|
|||
|
|||
-- |
|||
-- Name: fd_slot id; Type: DEFAULT; Schema: public; Owner: - |
|||
-- |
|||
|
|||
ALTER TABLE ONLY public.fd_slot ALTER COLUMN id SET DEFAULT nextval('public.fd_slot_id_seq'::regclass); |
|||
|
|||
|
|||
-- |
|||
-- Name: fd_vote id; Type: DEFAULT; Schema: public; Owner: - |
|||
-- |
|||
|
|||
ALTER TABLE ONLY public.fd_vote ALTER COLUMN id SET DEFAULT nextval('public.fd_vote_id_seq'::regclass); |
|||
|
|||
|
|||
-- |
|||
-- Data for Name: fd_comment; Type: TABLE DATA; Schema: public; Owner: - |
|||
-- |
|||
|
|||
COPY public.fd_comment (id, poll_id, name, comment, date) FROM stdin; |
|||
\. |
|||
|
|||
|
|||
-- |
|||
-- Data for Name: fd_migration_new; Type: TABLE DATA; Schema: public; Owner: - |
|||
-- |
|||
|
|||
COPY public.fd_migration_new (version) FROM stdin; |
|||
20150101000000 |
|||
20150102000000 |
|||
20150102100000 |
|||
20150117000000 |
|||
20150402000000 |
|||
20150405000000 |
|||
20150624000000 |
|||
20150918000000 |
|||
20151012075900 |
|||
20151012082600 |
|||
20151028000000 |
|||
20151205000000 |
|||
20180220000000 |
|||
20180411000000 |
|||
20180419170000 |
|||
20180419180000 |
|||
20180419190000 |
|||
20180525110000 |
|||
\. |
|||
|
|||
|
|||
-- |
|||
-- Data for Name: fd_poll; Type: TABLE DATA; Schema: public; Owner: - |
|||
-- |
|||
|
|||
COPY public.fd_poll (id, admin_id, title, description, admin_name, admin_mail, creation_date, end_date, format, editable, receivenewvotes, active, receivenewcomments, hidden, password_hash, results_publicly_visible, valuemax, collect_users_mail, collect_users_mail_integer) FROM stdin; |
|||
\. |
|||
|
|||
|
|||
-- |
|||
-- Data for Name: fd_slot; Type: TABLE DATA; Schema: public; Owner: - |
|||
-- |
|||
|
|||
COPY public.fd_slot (id, poll_id, title, moments) FROM stdin; |
|||
\. |
|||
|
|||
|
|||
-- |
|||
-- Data for Name: fd_vote; Type: TABLE DATA; Schema: public; Owner: - |
|||
-- |
|||
|
|||
COPY public.fd_vote (id, poll_id, name, choices, uniqid, mail) FROM stdin; |
|||
\. |
|||
|
|||
|
|||
-- |
|||
-- Name: comment_seq; Type: SEQUENCE SET; Schema: public; Owner: - |
|||
-- |
|||
|
|||
SELECT pg_catalog.setval('public.comment_seq', 1, false); |
|||
|
|||
|
|||
-- |
|||
-- Name: comments_seq; Type: SEQUENCE SET; Schema: public; Owner: - |
|||
-- |
|||
|
|||
SELECT pg_catalog.setval('public.comments_seq', 1, false); |
|||
|
|||
|
|||
-- |
|||
-- Name: fd_comment_id_seq; Type: SEQUENCE SET; Schema: public; Owner: - |
|||
-- |
|||
|
|||
SELECT pg_catalog.setval('public.fd_comment_id_seq', 1, false); |
|||
|
|||
|
|||
-- |
|||
-- Name: fd_slot_id_seq; Type: SEQUENCE SET; Schema: public; Owner: - |
|||
-- |
|||
|
|||
SELECT pg_catalog.setval('public.fd_slot_id_seq', 1, false); |
|||
|
|||
|
|||
-- |
|||
-- Name: fd_vote_id_seq; Type: SEQUENCE SET; Schema: public; Owner: - |
|||
-- |
|||
|
|||
SELECT pg_catalog.setval('public.fd_vote_id_seq', 1, false); |
|||
|
|||
|
|||
-- |
|||
-- Name: slot_seq; Type: SEQUENCE SET; Schema: public; Owner: - |
|||
-- |
|||
|
|||
SELECT pg_catalog.setval('public.slot_seq', 1, false); |
|||
|
|||
|
|||
-- |
|||
-- Name: user_studs_seq; Type: SEQUENCE SET; Schema: public; Owner: - |
|||
-- |
|||
|
|||
SELECT pg_catalog.setval('public.user_studs_seq', 1, false); |
|||
|
|||
|
|||
-- |
|||
-- Name: vote_seq; Type: SEQUENCE SET; Schema: public; Owner: - |
|||
-- |
|||
|
|||
SELECT pg_catalog.setval('public.vote_seq', 1, false); |
|||
|
|||
|
|||
-- |
|||
-- Name: fd_migration_new fd_migration_new_pkey; Type: CONSTRAINT; Schema: public; Owner: - |
|||
-- |
|||
|
|||
ALTER TABLE ONLY public.fd_migration_new |
|||
ADD CONSTRAINT fd_migration_new_pkey PRIMARY KEY (version); |
|||
|
|||
|
|||
-- |
|||
-- Name: comment_index_id; Type: INDEX; Schema: public; Owner: - |
|||
-- |
|||
|
|||
CREATE UNIQUE INDEX comment_index_id ON public.fd_comment USING btree (id); |
|||
|
|||
|
|||
-- |
|||
-- Name: comment_index_poll_id; Type: INDEX; Schema: public; Owner: - |
|||
-- |
|||
|
|||
CREATE INDEX comment_index_poll_id ON public.fd_comment USING btree (poll_id); |
|||
|
|||
|
|||
-- |
|||
-- Name: idx_vote_uniqid; Type: INDEX; Schema: public; Owner: - |
|||
-- |
|||
|
|||
CREATE INDEX idx_vote_uniqid ON public.fd_vote USING btree (uniqid); |
|||
|
|||
|
|||
-- |
|||
-- Name: poll_index_id; Type: INDEX; Schema: public; Owner: - |
|||
-- |
|||
|
|||
CREATE UNIQUE INDEX poll_index_id ON public.fd_poll USING btree (id); |
|||
|
|||
|
|||
-- |
|||
-- Name: slot_index_id; Type: INDEX; Schema: public; Owner: - |
|||
-- |
|||
|
|||
CREATE UNIQUE INDEX slot_index_id ON public.fd_slot USING btree (id); |
|||
|
|||
|
|||
-- |
|||
-- Name: slot_index_poll_id; Type: INDEX; Schema: public; Owner: - |
|||
-- |
|||
|
|||
CREATE INDEX slot_index_poll_id ON public.fd_slot USING btree (poll_id); |
|||
|
|||
|
|||
-- |
|||
-- Name: vote_index_id; Type: INDEX; Schema: public; Owner: - |
|||
-- |
|||
|
|||
CREATE UNIQUE INDEX vote_index_id ON public.fd_vote USING btree (id); |
|||
|
|||
|
|||
-- |
|||
-- Name: vote_index_poll_id; Type: INDEX; Schema: public; Owner: - |
|||
-- |
|||
|
|||
CREATE INDEX vote_index_poll_id ON public.fd_vote USING btree (poll_id); |
|||
|
|||
|
|||
-- |
|||
-- PostgreSQL database dump complete |
|||
-- |
|||
|
@ -0,0 +1,7 @@ |
|||
docker-image: docker.0k.io/py3o-server:1.0.0 |
|||
|
|||
data-resources: |
|||
- /tmp |
|||
|
|||
provides: |
|||
lo-server: |
@ -0,0 +1,11 @@ |
|||
#!/bin/bash |
|||
|
|||
set -e |
|||
|
|||
config-add "\ |
|||
services: |
|||
$MASTER_BASE_SERVICE_NAME: |
|||
command: |
|||
- start-py3o-fusion |
|||
- \"--renderserver=$TARGET_SERVICE_NAME\" |
|||
" |
@ -0,0 +1,11 @@ |
|||
docker-image: docker.0k.io/py3o-fusion:1.0.0 |
|||
|
|||
uses: |
|||
py3o-render-server: |
|||
#constraint: required | recommended | optional |
|||
#auto: pair | summon | none ## default: pair |
|||
constraint: required |
|||
auto: summon |
|||
solves: |
|||
py3o-render: "Render server" |
|||
|
@ -0,0 +1,10 @@ |
|||
#!/bin/bash |
|||
|
|||
set -e |
|||
|
|||
config-add "\ |
|||
services: |
|||
$MASTER_BASE_SERVICE_NAME: |
|||
volumes: |
|||
- $HOST_DATASTORE/$TARGET_BASE_SERVICE_NAME/tmp:/tmp |
|||
" |
@ -0,0 +1,14 @@ |
|||
docker-image: docker.0k.io/py3o-server:1.0.0 |
|||
|
|||
provides: |
|||
py3o-render-server: |
|||
|
|||
uses: |
|||
lo-server: |
|||
#constraint: required | recommended | optional |
|||
#auto: pair | summon | none ## default: pair |
|||
constraint: required |
|||
auto: summon |
|||
solves: |
|||
lo-server: "Libre office server" |
|||
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue