Compare commits
10 Commits
fix/error-
...
main
Author | SHA1 | Date | |
---|---|---|---|
|
567093c449 | ||
2147d7ad5e | |||
f414acb2d5 | |||
66aded5112 | |||
8c12884212 | |||
6cead51bb9 | |||
74ca20d3e8 | |||
cedb8dce92 | |||
006b1893c1 | |||
|
fcb1e77a3a |
@ -1,46 +0,0 @@
|
|||||||
name: Build Nginx-based docker image
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
pull_request:
|
|
||||||
concurrency:
|
|
||||||
group: ${{ github.ref }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
jobs:
|
|
||||||
build-static-assets:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
timeout-minutes: 30
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v3
|
|
||||||
|
|
||||||
- name: Login to the private Docker registry
|
|
||||||
uses: docker/login-action@v3
|
|
||||||
with:
|
|
||||||
registry: ${{ secrets.PRIVATE_REGISTRY_HOST }}
|
|
||||||
username: ${{ secrets.PRIVATE_REGISTRY_USERNAME }}
|
|
||||||
password: ${{ secrets.PRIVATE_REGISTRY_TOKEN }}
|
|
||||||
|
|
||||||
- name: Build and push intermediate stages (build)
|
|
||||||
uses: docker/build-push-action@v6
|
|
||||||
with:
|
|
||||||
context: .
|
|
||||||
target: build
|
|
||||||
push: ${{ github.ref == 'refs/heads/main' }}
|
|
||||||
tags: ${{ secrets.PRIVATE_REGISTRY_HOST }}/${{ env.GITHUB_REPOSITORY }}:build
|
|
||||||
cache-from: type=registry,ref=${{ secrets.PRIVATE_REGISTRY_HOST }}/${{ env.GITHUB_REPOSITORY }}:build
|
|
||||||
cache-to: type=inline
|
|
||||||
|
|
||||||
- name: Build and push (final)
|
|
||||||
uses: docker/build-push-action@v6
|
|
||||||
with:
|
|
||||||
context: .
|
|
||||||
push: ${{ github.ref == 'refs/heads/main' }}
|
|
||||||
tags: ${{ secrets.PRIVATE_REGISTRY_HOST }}/${{ env.GITHUB_REPOSITORY }}:latest
|
|
||||||
cache-from: type=registry,ref=${{ secrets.PRIVATE_REGISTRY_HOST }}/${{ env.GITHUB_REPOSITORY }}:latest
|
|
||||||
cache-to: type=inline
|
|
@ -1,39 +0,0 @@
|
|||||||
name: Add copyright notice
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
permissions:
|
|
||||||
contents: write
|
|
||||||
concurrency:
|
|
||||||
group: ${{ github.ref }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
jobs:
|
|
||||||
copyright_notice:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
token: ${{ secrets.ACTIONS_TOKEN }}
|
|
||||||
ref: ${{ github.head_ref }}
|
|
||||||
- uses: VinnyBabuManjaly/copyright-action@v1.0.0
|
|
||||||
with:
|
|
||||||
CopyrightString: '# Copyright (C) 2024 Manuel Bustillo\n\n'
|
|
||||||
FileType: '.rb'
|
|
||||||
Path: 'app/, config/, db/, spec/'
|
|
||||||
- uses: VinnyBabuManjaly/copyright-action@v1.0.0
|
|
||||||
with:
|
|
||||||
CopyrightString: '<%# Copyright (C) 2024 Manuel Bustillo %>\n\n'
|
|
||||||
FileType: '.erb'
|
|
||||||
Path: 'app/'
|
|
||||||
- name: Commit changes
|
|
||||||
run: |
|
|
||||||
git config --local user.email "bustikiller@bustikiller.com"
|
|
||||||
git config --local user.name "Manuel Bustillo"
|
|
||||||
git add .
|
|
||||||
|
|
||||||
if [ -n "$(git status --porcelain)" ]; then
|
|
||||||
echo "there are changes";
|
|
||||||
git commit -m "Add copyright notice"
|
|
||||||
git push
|
|
||||||
else
|
|
||||||
echo "no changes";
|
|
||||||
fi
|
|
@ -1,21 +0,0 @@
|
|||||||
name: Check usage of free licenses
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
pull_request:
|
|
||||||
concurrency:
|
|
||||||
group: ${{ github.ref }}
|
|
||||||
cancel-in-progress: true
|
|
||||||
jobs:
|
|
||||||
check-licenses:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
- uses: ruby/setup-ruby@v1.207.0
|
|
||||||
- name: Install project dependencies
|
|
||||||
run: bundle install --jobs `getconf _NPROCESSORS_ONLN`
|
|
||||||
- name: Run license finder
|
|
||||||
run: license_finder
|
|
@ -10,7 +10,7 @@ concurrency:
|
|||||||
jobs:
|
jobs:
|
||||||
unit_tests:
|
unit_tests:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
services:
|
services: &services
|
||||||
postgres:
|
postgres:
|
||||||
image: postgres
|
image: postgres
|
||||||
env:
|
env:
|
||||||
@ -22,10 +22,11 @@ jobs:
|
|||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.GITHUB_TOKEN }}
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
ref: ${{ github.head_ref }} # Checkout the actual branch, not the result if merged into the base
|
||||||
- uses: ruby/setup-ruby@v1.207.0
|
- uses: ruby/setup-ruby@v1.207.0
|
||||||
- run: bundle install
|
- run: bundle install
|
||||||
- run: bundle exec rubocop --force-exclusion --parallel
|
- &postgres_wait
|
||||||
- name: Wait until Postgres is ready to accept connections
|
name: Wait until Postgres is ready to accept connections
|
||||||
run: |
|
run: |
|
||||||
apt-get update && apt-get install -f -y postgresql-client
|
apt-get update && apt-get install -f -y postgresql-client
|
||||||
until pg_isready -h postgres -U postgres -d postgres
|
until pg_isready -h postgres -U postgres -d postgres
|
||||||
@ -33,12 +34,126 @@ jobs:
|
|||||||
sleep 1
|
sleep 1
|
||||||
echo "Trying again"
|
echo "Trying again"
|
||||||
done
|
done
|
||||||
- run: |
|
- name: Load schema and run unit tests
|
||||||
|
run: |
|
||||||
bundle exec rake db:schema:load
|
bundle exec rake db:schema:load
|
||||||
bundle exec rspec
|
bundle exec rspec
|
||||||
env:
|
env:
|
||||||
RAILS_ENV: test
|
RAILS_ENV: test
|
||||||
DATABASE_URL: postgres://postgres:postgres@postgres:5432/postgres
|
DATABASE_URL: postgres://postgres:postgres@postgres:5432/postgres
|
||||||
|
- name: Get all migrations added
|
||||||
|
id: changed-migration-files
|
||||||
|
uses: tj-actions/changed-files@v45
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
db/migrate/**.rb
|
||||||
|
- name: Redo all migrations and check there are no schema changes
|
||||||
|
if: steps.changed-migration-files.outputs.any_changed == 'true'
|
||||||
|
env:
|
||||||
|
ALL_CHANGED_FILES: ${{ steps.changed-migration-files.outputs.all_changed_files }}
|
||||||
|
RAILS_ENV: test
|
||||||
|
DATABASE_URL: postgres://postgres:postgres@postgres:5432/postgres
|
||||||
|
run: |
|
||||||
|
echo ${#ALL_CHANGED_FILES[@]} migrations changed:
|
||||||
|
for file in ${ALL_CHANGED_FILES}; do
|
||||||
|
echo "$file"
|
||||||
|
done
|
||||||
|
|
||||||
|
bundle exec rake db:migrate:redo STEP=${#ALL_CHANGED_FILES[@]}
|
||||||
|
git diff --exit-code db/schema.rb
|
||||||
- name: Clean up containers generated by this flow
|
- name: Clean up containers generated by this flow
|
||||||
if: failure()
|
if: failure()
|
||||||
run: docker ps --filter network=$JOB_CONTAINER_NAME-$GITHUB_JOB-network --filter name=$JOB_CONTAINER_NAME-* --format "{{.ID}}" | xargs docker rm -f
|
run: docker ps --filter network=$JOB_CONTAINER_NAME-$GITHUB_JOB-network --filter name=$JOB_CONTAINER_NAME-* --format "{{.ID}}" | xargs docker rm -f
|
||||||
|
rubocop:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
- uses: ruby/setup-ruby@v1.207.0
|
||||||
|
- run: bundle install
|
||||||
|
- run: bundle exec rubocop --force-exclusion --parallel
|
||||||
|
check-licenses:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
- uses: ruby/setup-ruby@v1.207.0
|
||||||
|
- name: Install project dependencies
|
||||||
|
run: bundle install --jobs `getconf _NPROCESSORS_ONLN`
|
||||||
|
- name: Run license finder
|
||||||
|
run: license_finder
|
||||||
|
copyright_notice:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.ACTIONS_TOKEN }}
|
||||||
|
ref: ${{ github.head_ref }}
|
||||||
|
- uses: VinnyBabuManjaly/copyright-action@v1.0.0
|
||||||
|
with:
|
||||||
|
CopyrightString: '# Copyright (C) 2024-2025 LibreWeddingPlanner contributors\n\n'
|
||||||
|
FileType: '.rb'
|
||||||
|
Path: 'app/, config/, db/, spec/'
|
||||||
|
IgnorePath: 'db'
|
||||||
|
- uses: VinnyBabuManjaly/copyright-action@v1.0.0
|
||||||
|
with:
|
||||||
|
CopyrightString: '<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>\n\n'
|
||||||
|
FileType: '.erb'
|
||||||
|
Path: 'app/'
|
||||||
|
- name: Commit changes
|
||||||
|
run: |
|
||||||
|
git config --local user.email "bustikiller@bustikiller.com"
|
||||||
|
git config --local user.name "Manuel Bustillo"
|
||||||
|
git add .
|
||||||
|
|
||||||
|
if [ -n "$(git status --porcelain)" ]; then
|
||||||
|
echo "there are changes";
|
||||||
|
git commit -m "Add copyright notice"
|
||||||
|
git push
|
||||||
|
else
|
||||||
|
echo "no changes";
|
||||||
|
fi
|
||||||
|
|
||||||
|
build-static-assets:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 30
|
||||||
|
needs:
|
||||||
|
- unit_tests
|
||||||
|
- rubocop
|
||||||
|
- check-licenses
|
||||||
|
- copyright_notice
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
uses: docker/setup-buildx-action@v3
|
||||||
|
|
||||||
|
- name: Login to the private Docker registry
|
||||||
|
uses: docker/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: ${{ secrets.PRIVATE_REGISTRY_HOST }}
|
||||||
|
username: ${{ secrets.PRIVATE_REGISTRY_USERNAME }}
|
||||||
|
password: ${{ secrets.PRIVATE_REGISTRY_TOKEN }}
|
||||||
|
|
||||||
|
- name: Build and push intermediate stages (build)
|
||||||
|
uses: docker/build-push-action@v6
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
target: build
|
||||||
|
push: ${{ github.ref == 'refs/heads/main' }}
|
||||||
|
tags: ${{ secrets.PRIVATE_REGISTRY_HOST }}/${{ env.GITHUB_REPOSITORY }}:build
|
||||||
|
cache-from: type=registry,ref=${{ secrets.PRIVATE_REGISTRY_HOST }}/${{ env.GITHUB_REPOSITORY }}:build
|
||||||
|
cache-to: type=inline
|
||||||
|
|
||||||
|
- name: Build and push (final)
|
||||||
|
uses: docker/build-push-action@v6
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
push: ${{ github.ref == 'refs/heads/main' }}
|
||||||
|
tags: ${{ secrets.PRIVATE_REGISTRY_HOST }}/${{ env.GITHUB_REPOSITORY }}:latest
|
||||||
|
cache-from: type=registry,ref=${{ secrets.PRIVATE_REGISTRY_HOST }}/${{ env.GITHUB_REPOSITORY }}:latest
|
||||||
|
cache-to: type=inline
|
16
Gemfile.lock
16
Gemfile.lock
@ -94,7 +94,7 @@ GEM
|
|||||||
logger (~> 1.5)
|
logger (~> 1.5)
|
||||||
chroma (0.2.0)
|
chroma (0.2.0)
|
||||||
coderay (1.1.3)
|
coderay (1.1.3)
|
||||||
concurrent-ruby (1.3.4)
|
concurrent-ruby (1.3.5)
|
||||||
connection_pool (2.4.1)
|
connection_pool (2.4.1)
|
||||||
crass (1.0.6)
|
crass (1.0.6)
|
||||||
csv (3.3.2)
|
csv (3.3.2)
|
||||||
@ -130,7 +130,7 @@ GEM
|
|||||||
csv
|
csv
|
||||||
mini_mime (>= 1.0.0)
|
mini_mime (>= 1.0.0)
|
||||||
multi_xml (>= 0.5.2)
|
multi_xml (>= 0.5.2)
|
||||||
i18n (1.14.6)
|
i18n (1.14.7)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
importmap-rails (2.1.0)
|
importmap-rails (2.1.0)
|
||||||
actionpack (>= 6.0.0)
|
actionpack (>= 6.0.0)
|
||||||
@ -329,7 +329,7 @@ GEM
|
|||||||
rswag-ui (2.16.0)
|
rswag-ui (2.16.0)
|
||||||
actionpack (>= 5.2, < 8.1)
|
actionpack (>= 5.2, < 8.1)
|
||||||
railties (>= 5.2, < 8.1)
|
railties (>= 5.2, < 8.1)
|
||||||
rubocop (1.70.0)
|
rubocop (1.71.0)
|
||||||
json (~> 2.3)
|
json (~> 2.3)
|
||||||
language_server-protocol (>= 3.17.0)
|
language_server-protocol (>= 3.17.0)
|
||||||
parallel (~> 1.10)
|
parallel (~> 1.10)
|
||||||
@ -343,7 +343,7 @@ GEM
|
|||||||
parser (>= 3.3.1.0)
|
parser (>= 3.3.1.0)
|
||||||
rubocop-factory_bot (2.26.1)
|
rubocop-factory_bot (2.26.1)
|
||||||
rubocop (~> 1.61)
|
rubocop (~> 1.61)
|
||||||
rubocop-rails (2.29.0)
|
rubocop-rails (2.29.1)
|
||||||
activesupport (>= 4.2.0)
|
activesupport (>= 4.2.0)
|
||||||
rack (>= 1.1)
|
rack (>= 1.1)
|
||||||
rubocop (>= 1.52.0, < 2.0)
|
rubocop (>= 1.52.0, < 2.0)
|
||||||
@ -481,7 +481,7 @@ CHECKSUMS
|
|||||||
childprocess (5.1.0) sha256=9a8d484be2fd4096a0e90a0cd3e449a05bc3aa33f8ac9e4d6dcef6ac1455b6ec
|
childprocess (5.1.0) sha256=9a8d484be2fd4096a0e90a0cd3e449a05bc3aa33f8ac9e4d6dcef6ac1455b6ec
|
||||||
chroma (0.2.0) sha256=64bdcd36a4765fbcd45adc64960cc153101300b4918f90ffdd89f4e2eb954b54
|
chroma (0.2.0) sha256=64bdcd36a4765fbcd45adc64960cc153101300b4918f90ffdd89f4e2eb954b54
|
||||||
coderay (1.1.3) sha256=dc530018a4684512f8f38143cd2a096c9f02a1fc2459edcfe534787a7fc77d4b
|
coderay (1.1.3) sha256=dc530018a4684512f8f38143cd2a096c9f02a1fc2459edcfe534787a7fc77d4b
|
||||||
concurrent-ruby (1.3.4) sha256=d4aa926339b0a86b5b5054a0a8c580163e6f5dcbdfd0f4bb916b1a2570731c32
|
concurrent-ruby (1.3.5) sha256=813b3e37aca6df2a21a3b9f1d497f8cbab24a2b94cab325bffe65ee0f6cbebc6
|
||||||
connection_pool (2.4.1) sha256=0f40cf997091f1f04ff66da67eabd61a9fe0d4928b9a3645228532512fab62f4
|
connection_pool (2.4.1) sha256=0f40cf997091f1f04ff66da67eabd61a9fe0d4928b9a3645228532512fab62f4
|
||||||
crass (1.0.6) sha256=dc516022a56e7b3b156099abc81b6d2b08ea1ed12676ac7a5657617f012bd45d
|
crass (1.0.6) sha256=dc516022a56e7b3b156099abc81b6d2b08ea1ed12676ac7a5657617f012bd45d
|
||||||
csv (3.3.2) sha256=6ff0c135e65e485d1864dde6c1703b60d34cc9e19bed8452834a0b28a519bd4e
|
csv (3.3.2) sha256=6ff0c135e65e485d1864dde6c1703b60d34cc9e19bed8452834a0b28a519bd4e
|
||||||
@ -499,7 +499,7 @@ CHECKSUMS
|
|||||||
fugit (1.11.1) sha256=e89485e7be22226d8e9c6da411664d0660284b4b1c08cacb540f505907869868
|
fugit (1.11.1) sha256=e89485e7be22226d8e9c6da411664d0660284b4b1c08cacb540f505907869868
|
||||||
globalid (1.2.1) sha256=70bf76711871f843dbba72beb8613229a49429d1866828476f9c9d6ccc327ce9
|
globalid (1.2.1) sha256=70bf76711871f843dbba72beb8613229a49429d1866828476f9c9d6ccc327ce9
|
||||||
httparty (0.22.0) sha256=78652a5c9471cf0093d3b2083c2295c9c8f12b44c65112f1846af2b71430fa6c
|
httparty (0.22.0) sha256=78652a5c9471cf0093d3b2083c2295c9c8f12b44c65112f1846af2b71430fa6c
|
||||||
i18n (1.14.6) sha256=dc229a74f5d181f09942dd60ab5d6e667f7392c4ee826f35096db36d1fe3614c
|
i18n (1.14.7) sha256=ceba573f8138ff2c0915427f1fc5bdf4aa3ab8ae88c8ce255eb3ecf0a11a5d0f
|
||||||
importmap-rails (2.1.0) sha256=9f10c67d60651a547579f448100d033df311c5d5db578301374aeb774faae741
|
importmap-rails (2.1.0) sha256=9f10c67d60651a547579f448100d033df311c5d5db578301374aeb774faae741
|
||||||
io-console (0.8.0) sha256=cd6a9facbc69871d69b2cb8b926fc6ea7ef06f06e505e81a64f14a470fddefa2
|
io-console (0.8.0) sha256=cd6a9facbc69871d69b2cb8b926fc6ea7ef06f06e505e81a64f14a470fddefa2
|
||||||
irb (1.14.3) sha256=c457f1f2f1438ae9ce5c5be3981ae2138dec7fb894c7d73777eeeb0a6c0d0752
|
irb (1.14.3) sha256=c457f1f2f1438ae9ce5c5be3981ae2138dec7fb894c7d73777eeeb0a6c0d0752
|
||||||
@ -578,10 +578,10 @@ CHECKSUMS
|
|||||||
rswag-api (2.16.0) sha256=b653f7bd92e98be18b01ab4525d88950d7b0960e293a99f856b9efcee3ae6074
|
rswag-api (2.16.0) sha256=b653f7bd92e98be18b01ab4525d88950d7b0960e293a99f856b9efcee3ae6074
|
||||||
rswag-specs (2.16.0) sha256=8ba26085c408b0bd2ed21dc8015c80f417c7d34c63720ab7133c2549b5bd2a91
|
rswag-specs (2.16.0) sha256=8ba26085c408b0bd2ed21dc8015c80f417c7d34c63720ab7133c2549b5bd2a91
|
||||||
rswag-ui (2.16.0) sha256=a1f49e927dceda92e6e6e7c1000f1e217ee66c565f69e28131dc98b33cd3a04f
|
rswag-ui (2.16.0) sha256=a1f49e927dceda92e6e6e7c1000f1e217ee66c565f69e28131dc98b33cd3a04f
|
||||||
rubocop (1.70.0) sha256=96751f8440b36a0ac6e9a8ab596900803118d83d6b83f2037bf8b3d7a5bc440e
|
rubocop (1.71.0) sha256=e19679efd447346ac476122313d3788ae23c38214790bcf660e984c747608bf0
|
||||||
rubocop-ast (1.37.0) sha256=9513ac88aaf113d04b52912533ffe46475de1362d4aa41141b51b2455827c080
|
rubocop-ast (1.37.0) sha256=9513ac88aaf113d04b52912533ffe46475de1362d4aa41141b51b2455827c080
|
||||||
rubocop-factory_bot (2.26.1) sha256=8de13cd4edcee5ca800f255188167ecef8dbfc3d1fae9f15734e9d2e755392aa
|
rubocop-factory_bot (2.26.1) sha256=8de13cd4edcee5ca800f255188167ecef8dbfc3d1fae9f15734e9d2e755392aa
|
||||||
rubocop-rails (2.29.0) sha256=35bffd140c80671453aafac0e2d5ab5b3dd65736a3fc8f3936ccca226b89c234
|
rubocop-rails (2.29.1) sha256=41c2fcf48d5d62f4a5f574d5f1c97bbaf4cba88ee367936c98b3422d047b17aa
|
||||||
rubocop-rspec (3.4.0) sha256=8721c13b6a8c9530a7ac481cea9423022f946fcf72428bda8289f8b57e4d4885
|
rubocop-rspec (3.4.0) sha256=8721c13b6a8c9530a7ac481cea9423022f946fcf72428bda8289f8b57e4d4885
|
||||||
rubocop-rspec_rails (2.30.0) sha256=888112e83f9d7ef7ad2397e9d69a0b9614a4bae24f072c399804a180f80c4c46
|
rubocop-rspec_rails (2.30.0) sha256=888112e83f9d7ef7ad2397e9d69a0b9614a4bae24f072c399804a180f80c4c46
|
||||||
ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
|
ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,12 +1,18 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
class TablesArrangementsController < ApplicationController
|
class TablesArrangementsController < ApplicationController
|
||||||
def index
|
def index
|
||||||
render json: TablesArrangement.order(discomfort: :asc).limit(3).as_json(only: %i[id name discomfort])
|
current_digest = Tables::Distribution.digest(current_tenant)
|
||||||
|
|
||||||
|
render json: TablesArrangement
|
||||||
|
.order(valid: :desc)
|
||||||
|
.order(discomfort: :asc)
|
||||||
|
.select(:id, :name, :discomfort)
|
||||||
|
.select("digest = '#{current_digest}'::uuid as valid")
|
||||||
|
.limit(20)
|
||||||
|
.as_json(only: %i[id name discomfort valid])
|
||||||
end
|
end
|
||||||
|
|
||||||
def show
|
def show
|
||||||
@ -18,6 +24,12 @@ class TablesArrangementsController < ApplicationController
|
|||||||
.then { |result| render json: { id: params[:id], tables: result } }
|
.then { |result| render json: { id: params[:id], tables: result } }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def create
|
||||||
|
TableSimulatorJob.perform_later(current_tenant.id)
|
||||||
|
|
||||||
|
render json: {}, status: :created
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def format(number:, guests:)
|
def format(number:, guests:)
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
@ -43,16 +41,5 @@ class Guest < ApplicationRecord
|
|||||||
|
|
||||||
scope :potential, -> { where.not(status: %i[declined considered]) }
|
scope :potential, -> { where.not(status: %i[declined considered]) }
|
||||||
|
|
||||||
after_destroy :recalculate_simulations
|
|
||||||
after_save :recalculate_simulations, if: :saved_change_to_status?
|
|
||||||
|
|
||||||
has_many :seats, dependent: :delete_all
|
has_many :seats, dependent: :delete_all
|
||||||
|
|
||||||
private
|
|
||||||
|
|
||||||
def recalculate_simulations
|
|
||||||
TablesArrangement.delete_all
|
|
||||||
|
|
||||||
ActiveJob.perform_all_later(50.times.map { TableSimulatorJob.new(wedding_id) })
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
@ -9,6 +7,7 @@
|
|||||||
# Table name: tables_arrangements
|
# Table name: tables_arrangements
|
||||||
#
|
#
|
||||||
# id :uuid not null, primary key
|
# id :uuid not null, primary key
|
||||||
|
# digest :uuid not null
|
||||||
# discomfort :integer
|
# discomfort :integer
|
||||||
# name :string not null
|
# name :string not null
|
||||||
# created_at :datetime not null
|
# created_at :datetime not null
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
@ -21,4 +19,6 @@ class Wedding < ApplicationRecord
|
|||||||
SLUG_REGEX = /[a-z\d-]+/
|
SLUG_REGEX = /[a-z\d-]+/
|
||||||
|
|
||||||
validates :slug, presence: true, uniqueness: true, format: { with: /\A#{SLUG_REGEX}\z/ }
|
validates :slug, presence: true, uniqueness: true, format: { with: /\A#{SLUG_REGEX}\z/ }
|
||||||
|
|
||||||
|
has_many :guests, dependent: :delete_all
|
||||||
end
|
end
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
@ -8,7 +6,13 @@ require_relative '../../extensions/tree_node_extension'
|
|||||||
|
|
||||||
module Tables
|
module Tables
|
||||||
class Distribution
|
class Distribution
|
||||||
attr_accessor :tables, :min_per_table, :max_per_table
|
class << self
|
||||||
|
def digest(wedding)
|
||||||
|
Digest::UUID.uuid_v5(wedding.id, wedding.guests.potential.order(:id).pluck(:id).join)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
attr_accessor :tables, :min_per_table, :max_per_table, :hierarchy
|
||||||
|
|
||||||
def initialize(min_per_table:, max_per_table:)
|
def initialize(min_per_table:, max_per_table:)
|
||||||
@min_per_table = min_per_table
|
@min_per_table = min_per_table
|
||||||
@ -56,7 +60,10 @@ module Tables
|
|||||||
|
|
||||||
Seat.insert_all!(records_to_store)
|
Seat.insert_all!(records_to_store)
|
||||||
|
|
||||||
arrangement.update!(discomfort:)
|
arrangement.update!(
|
||||||
|
discomfort:,
|
||||||
|
digest: self.class.digest(tables.first.first.wedding)
|
||||||
|
)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
<%# Copyright (C) 2024 Manuel Bustillo %>
|
|
||||||
|
|
||||||
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
|
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
<%# Copyright (C) 2024 Manuel Bustillo %>
|
|
||||||
|
|
||||||
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
|
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
|
||||||
|
|
||||||
<%= yield %>
|
<%= yield %>
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
<%# Copyright (C) 2024 Manuel Bustillo %>
|
|
||||||
|
|
||||||
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
|
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
|
||||||
|
|
||||||
<p>Welcome <%= @email %>!</p>
|
<p>Welcome <%= @email %>!</p>
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
<%# Copyright (C) 2024 Manuel Bustillo %>
|
|
||||||
|
|
||||||
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
|
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
|
||||||
|
|
||||||
<p>Hello <%= @email %>!</p>
|
<p>Hello <%= @email %>!</p>
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
<%# Copyright (C) 2024 Manuel Bustillo %>
|
|
||||||
|
|
||||||
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
|
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
|
||||||
|
|
||||||
<p>Hello <%= @resource.email %>!</p>
|
<p>Hello <%= @resource.email %>!</p>
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
<%# Copyright (C) 2024 Manuel Bustillo %>
|
|
||||||
|
|
||||||
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
|
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
|
||||||
|
|
||||||
<p>Hello <%= @resource.email %>!</p>
|
<p>Hello <%= @resource.email %>!</p>
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
<%# Copyright (C) 2024 Manuel Bustillo %>
|
|
||||||
|
|
||||||
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
|
<%# Copyright (C) 2024-2025 LibreWeddingPlanner contributors %>
|
||||||
|
|
||||||
<p>Hello <%= @resource.email %>!</p>
|
<p>Hello <%= @resource.email %>!</p>
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
require_relative 'boot'
|
require_relative 'boot'
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
|
ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../Gemfile", __dir__)
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# Load the Rails application.
|
# Load the Rails application.
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
require "active_support/core_ext/integer/time"
|
require "active_support/core_ext/integer/time"
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
require "active_support/core_ext/integer/time"
|
require "active_support/core_ext/integer/time"
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
require "active_support/core_ext/integer/time"
|
require "active_support/core_ext/integer/time"
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# Pin npm packages by running ./bin/importmap
|
# Pin npm packages by running ./bin/importmap
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
ActsAsTenant.configure do |config|
|
ActsAsTenant.configure do |config|
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# Be sure to restart your server when you modify this file.
|
# Be sure to restart your server when you modify this file.
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
Chroma.define_palette :decreasing_saturation do
|
Chroma.define_palette :decreasing_saturation do
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# Be sure to restart your server when you modify this file.
|
# Be sure to restart your server when you modify this file.
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# config/initializers/cors.rb
|
# config/initializers/cors.rb
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# Be sure to restart your server when you modify this file.
|
# Be sure to restart your server when you modify this file.
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# Be sure to restart your server when you modify this file.
|
# Be sure to restart your server when you modify this file.
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# Be sure to restart your server when you modify this file.
|
# Be sure to restart your server when you modify this file.
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
Rswag::Api.configure do |c|
|
Rswag::Api.configure do |c|
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
Rswag::Ui.configure do |c|
|
Rswag::Ui.configure do |c|
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
class Numeric
|
class Numeric
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# This configuration file will be evaluated by Puma. The top-level methods that
|
# This configuration file will be evaluated by Puma. The top-level methods that
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
Rails.application.routes.draw do
|
Rails.application.routes.draw do
|
||||||
@ -39,7 +37,7 @@ Rails.application.routes.draw do
|
|||||||
resources :expenses, only: %i[index create update destroy] do
|
resources :expenses, only: %i[index create update destroy] do
|
||||||
get :summary, on: :collection
|
get :summary, on: :collection
|
||||||
end
|
end
|
||||||
resources :tables_arrangements, only: %i[index show]
|
resources :tables_arrangements, only: %i[index show create]
|
||||||
resources :summary, only: :index
|
resources :summary, only: :index
|
||||||
|
|
||||||
root to: redirect("/%{slug}")
|
root to: redirect("/%{slug}")
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
class CreateExpenses < ActiveRecord::Migration[7.1]
|
class CreateExpenses < ActiveRecord::Migration[7.1]
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
class CreateGuests < ActiveRecord::Migration[7.1]
|
class CreateGuests < ActiveRecord::Migration[7.1]
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
class CreateTablesArrangements < ActiveRecord::Migration[7.1]
|
class CreateTablesArrangements < ActiveRecord::Migration[7.1]
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
class CreateSeats < ActiveRecord::Migration[7.1]
|
class CreateSeats < ActiveRecord::Migration[7.1]
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
class CreateGroups < ActiveRecord::Migration[7.1]
|
class CreateGroups < ActiveRecord::Migration[7.1]
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
class AddParentToGroup < ActiveRecord::Migration[7.1]
|
class AddParentToGroup < ActiveRecord::Migration[7.1]
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
class AddGroupToGuest < ActiveRecord::Migration[7.1]
|
class AddGroupToGuest < ActiveRecord::Migration[7.1]
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
class AddStatusToGuest < ActiveRecord::Migration[7.1]
|
class AddStatusToGuest < ActiveRecord::Migration[7.1]
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
class DropTaggableTables < ActiveRecord::Migration[7.2]
|
class DropTaggableTables < ActiveRecord::Migration[7.2]
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
class AddNameToTablesArrangements < ActiveRecord::Migration[7.2]
|
class AddNameToTablesArrangements < ActiveRecord::Migration[7.2]
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
class SolidQueueInstall < ActiveRecord::Migration[7.2]
|
class SolidQueueInstall < ActiveRecord::Migration[7.2]
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
class RemoveEmailFromGuests < ActiveRecord::Migration[7.2]
|
class RemoveEmailFromGuests < ActiveRecord::Migration[7.2]
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
class AddColorToGroup < ActiveRecord::Migration[7.2]
|
class AddColorToGroup < ActiveRecord::Migration[7.2]
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
class MergeGuestNames < ActiveRecord::Migration[8.0]
|
class MergeGuestNames < ActiveRecord::Migration[8.0]
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
# Copyright (C) 2024 Manuel Bustillo
|
|
||||||
|
|
||||||
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
# Copyright (C) 2024-2025 LibreWeddingPlanner contributors
|
||||||
|
|
||||||
class CreateWeddings < ActiveRecord::Migration[8.0]
|
class CreateWeddings < ActiveRecord::Migration[8.0]
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user