moving models to the oh so clean active_hash, puny tests work

This commit is contained in:
Torsten 2022-12-10 23:11:17 +02:00
parent 04e189f913
commit b710541ee3
10 changed files with 1639 additions and 122 deletions

View File

@ -1,30 +1,13 @@
module Merged
class Card
include ActiveModel::API
include ActiveModel::Conversion
extend ActiveModel::Naming
class Card < ActiveYaml::Base
set_root_path Rails.root #ouside engines not necessary
include ActiveHash::Associations
belongs_to :section , class_name: "Merged::Section"
include Optioned
cattr_reader :all
@@all = {}
attr_reader :content , :index , :section
[ :id , :text , :header, :image ].each do |meth|
define_method(meth) do
@content[meth.to_s]
end
end
def initialize(section , index , card_data)
@section = section
@index = index
raise "No data #{card_data}" unless card_data.is_a?(Hash)
@content = card_data
raise "No id #{card_data}" unless id.is_a?(String)
@@all[self.id] = self
end
fields :index , :section_id, :id , :text , :header, :image
def template_style
@section.card_template
@ -52,11 +35,8 @@ module Merged
end
def save
section.save
end
def save_soon
super
data = Option.all.collect {|obj| obj.attributes}
data = Card.all.collect {|obj| obj.attributes}
File.write( Option.full_path , data.to_yaml)
end

View File

@ -1,48 +1,18 @@
module Merged
class Page
include ActiveModel::API
include ActiveModel::Conversion
extend ActiveModel::Naming
class Page < ActiveYaml::Base
set_root_path Rails.root #ouside engines not necessary
include ActiveHash::Associations
has_many :sections , class_name: "Merged::Section"
# could be config options
def self.cms_root
"cms"
end
cattr_reader :all
@@all = {}
def self.load_pages()
files = Set.new Dir.new(Rails.root.join(Page.cms_root)).children
files.each do |file|
page = Page.new(file)
end
end
attr_reader :name , :content , :sections , :size , :updated_at
fields :name , :content , :size , :updated_at
alias :id :name
def initialize( f_name )
@name = f_name.split(".").first
@content = YAML.load_file( filename )
@sections = []
@content.each_with_index do |section_data, index|
section = Section.new(self , index, section_data)
@sections << section
end
@@all[@name] = self
update_size
end
def filename
Rails.root.join(Page.cms_root , @name + ".yaml")
end
def update_size
@size = File.size(filename)
@updated_at = File.ctime(filename)
end
def self.check_name(name)
return "only alphanumeric, not #{name}" if name.match(/\A[a-zA-Z0-9]*\z/).nil?
nil
@ -111,15 +81,9 @@ module Merged
end
def save
File.write( filename , @content.to_yaml)
update_size
end
def self.find(name)
raise "nil given" if name.blank?
page = @@all[name]
raise "Page not found #{name}" unless page
return page
super
data = Page.all.collect {|obj| obj.attributes}
File.write( Page.full_path , data.to_yaml)
end
end

View File

@ -1,50 +1,25 @@
module Merged
class Section
include ActiveModel::API
include ActiveModel::Conversion
extend ActiveModel::Naming
class Section < ActiveYaml::Base
set_root_path Rails.root #ouside engines not necessary
include ActiveHash::Associations
belongs_to :page , class_name: "Merged::Page"
has_many :cards , class_name: "Merged::Card"
include Optioned
cattr_reader :all
@@all = {}
attr_reader :name , :content , :page , :index , :cards
def initialize(page , index , section_data)
@page = page
raise "No number #{index}" unless index.is_a?(Integer)
raise "No hash #{section_data}" unless section_data.is_a?(Hash)
@index = index
@content = section_data
@@all[self.id] = self
@cards = []
element = @content["cards"]
return if element.nil?
element.each_with_index do|card_content , index|
@cards << Card.new(self , index , card_content)
end
end
[:template , :card_template , :id , :text , :header, :image].each do |meth|
define_method(meth) do
@content[meth.to_s]
end
end
fields :name , :page_id , :index , :cards
fields :template , :card_template , :id , :text , :header, :image
def set_template(new_template)
@content["template"] = new_template
self.template = new_template
new_style = template_style
if(new_style.has_cards?)
unless card_template
@content["card_template"] = CardStyle.first.name
@content["cards"] = []
raise "Should not have cards" unless cards.empty?
self.card_template = CardStyle.first.name
end
else
@content.delete("cards")
@content.delete("card_template")
@cards.clear
cards.delete_all
end
end
@ -138,7 +113,9 @@ module Merged
end
def save
page.save
super
data = Section.all.collect {|obj| obj.attributes}
File.write( Section.full_path , data.to_yaml)
end
def set_index(index)

View File

@ -8,7 +8,7 @@ module Merged
Option.all
CardStyle.all
SectionStyle.all
Page.load_pages
Page.all
Image.load_images
end

View File

@ -2,16 +2,16 @@ require 'rails_helper'
module Merged
RSpec.describe Card, type: :model do
let(:first) {Card.all.values.first}
let(:first) {Card.first}
it "has Card.all" do
expect(Card.all.class).to be Hash
expect(Card.all.length).to be 46
end
it "has cards" do
expect(first.class).to be Card
end
it "has index" do
expect(first.index).to eq 0
expect(first.index).to eq 1
end
end
end

View File

@ -2,19 +2,19 @@ require 'rails_helper'
module Merged
RSpec.describe Page, type: :model do
let(:index) {Page.find('index')}
let(:index) {Page.find_by_name('index')}
it "has Pages.all" do
expect(Page.all.class).to be Hash
expect(Page.all.length).to be 6
end
it "has index page" do
expect(index.class).to be Page
end
it "has sections" do
expect(index.sections.length).to be 1
expect(index.sections.length).to be 10
end
it "has section array" do
expect(index.sections.class).to be Array
expect(index.sections.first.class).to be Section
end
end
end

View File

@ -2,22 +2,22 @@ require 'rails_helper'
module Merged
RSpec.describe Section, type: :model do
let(:first) {Section.all.values.first}
let(:first) {Section.last}
it "has Sections.all" do
expect(Section.all.class).to be Hash
expect(Section.all.length).to be 40
end
it "has index page" do
expect(first.class).to be Section
end
it "has index" do
expect(first.index).to eq 0
expect(first.index).to eq 10
end
it "has cards" do
expect(first.cards.length).to eq 2
expect(first.cards.length).to eq 5
end
it "has cards array" do
expect(first.cards.class).to be Array
expect(first.cards.class).to be ActiveHash::Relation
end
end
end

478
test/dummy/merged/cards.yml Normal file
View File

@ -0,0 +1,478 @@
---
- id: 1
header: Name
text: ''
options:
compulsory: 'yes'
form_type: text
updated_at: &1 2022-12-09 17:56:51.141334688 +02:00
section_id: 9
index: 1
- id: 2
header: Email
text: ''
options:
compulsory: 'yes'
form_type: email
updated_at: *1
section_id: 9
index: 2
- id: 3
header: Phone
text: ''
options:
compulsory: 'yes'
form_type: phone
updated_at: *1
section_id: 9
index: 3
- id: 4
header: Interest
text: ''
updated_at: *1
section_id: 9
index: 4
- id: 5
header: Message
text: ''
options:
compulsory: 'no'
form_type: message
updated_at: *1
section_id: 9
index: 5
- header: Standard
text: This is the standard two patient room. They are mostly towards the south,
so may have great, or too much light, depending on how you see it. The size is
about 3x5, cost 120e.
image: standard
id: 6
options:
background: solid_blue
color: white
align: left
updated_at: &2 2022-12-09 17:50:02.733622073 +02:00
section_id: 11
index: 1
- header: Large
text: The old four patient rooms are basically twice the size as the small. They
are large enough to be shared. The size is about 30m2 and the cost 240e. Like
the small rooms these are south facing, very light.
image: large
id: 7
options:
background: solid_blue
color: white
align: left
updated_at: *2
section_id: 11
index: 2
- id: 8
header: Non standard
text: There are smaller, rooms, and some connected rooms. If your needs are small,
of you rather have 2 small rooms than one, talk to us. These are mostly old admin
rooms facing north, starting at 100e.
image: non_standard_room
options:
background: solid_blue
color: white
align: left
updated_at: *2
section_id: 11
index: 3
- id: 9
header: Wet spaces
text: If your work requires you to get dirty, we have different size wet rooms.
Here we are talking about spaces with floor drains that are tiled all around.
There are about 2-3 per floor, in different sizes, from 12 to 25m2.
options:
background: solid_blue
color: white
align: left
image: wet_space_room
updated_at: *2
section_id: 11
index: 4
- id: 10
header: Common spaces
text: Each floor has it's own large common space. Also, Hub Feenix offers great
public spaces, terraces, a cafe, co-working and maker spaces.
image: common_spaces
options:
background: solid_red
align: center
updated_at: *2
section_id: 12
index: 1
- id: 11
header: En suite and fold out
text: "Some rooms have attached (or shared) bathrooms. Also, you have the option
of a fold-out bed to stay overnight.\r\nIt's like a home away from home."
image: en_suite_studio
options:
background: solid_blue
align: center
updated_at: *2
section_id: 12
index: 2
- id: 12
header: Shared kitchen, own sink
text: Each floor has it's own common kitchen. This is especially useful if you take
the option of a fold out bed to stay overnight. And almost all spaces have a sink
in the room, so you can clean things or make a tea in peace.
options:
background: solid_indigo
align: center
image: studio_kitchen
updated_at: *2
section_id: 12
index: 3
- id: 13
header: Name
text: ''
options:
compulsory: 'yes'
form_type: text
updated_at: *2
section_id: 13
index: 1
- id: 14
header: Email
text: ''
options:
compulsory: 'yes'
form_type: email
updated_at: *2
section_id: 13
index: 2
- id: 15
header: Phone
text: ''
options:
compulsory: 'no'
form_type: phone
updated_at: *2
section_id: 13
index: 3
- id: 16
header: Space requirements
text: ''
updated_at: *2
section_id: 13
index: 4
- id: 17
header: Message
text: ''
options:
compulsory: 'no'
form_type: message
updated_at: *2
section_id: 13
index: 5
- id: 18
header: The Hall
text: Our beautiful hall, one of the largest in the area, is 8 x 20m and can accommodate
50 yogi, 80 dancers, or 120 listeners. We have a professional audio system for
dancing and of course chairs for meetings.
options:
background: none
align: center
subheader: 40 - 120
color: none
image: the_hall
updated_at: &3 2022-12-09 17:32:41.538163009 +02:00
section_id: 15
index: 1
- id: 19
header: Mandala room
text: The Mandala room, in the fifth floor, is a slightly asymmetrical 100m2. With
it's great views and light atmosphere it is especially suited for yoga (30) and
mediation (60). It also has a private eating area and staircase.
options:
background: none
align: center
subheader: 30 - 60
color: none
image: mandala_room
updated_at: *3
section_id: 15
index: 2
- id: 20
header: Sky Conference
text: "Also in the fifth floor with great views is the sky conference room. It sits
35 people as shown and up to 80 in a theatre arrangement.\r\n\r\nThere is a smaller
semi attached break room and two more break-out rooms next to it.\r\n\r\nGreat
for meetings of any sort."
image: sky_conference
options:
background: light_orange
align: center
color: none
subheader: 35 - 80
updated_at: *3
section_id: 15
index: 3
- id: 21
header: Lootus room
text: "Downstairs, next to the café, the spacious lotus room is especially good
for day events. 20 Yogi or dancers fit easily into the 70m2 and for group work
30 is still good.\r\n\r\nCan be rented on hourly basis."
image: lotus_room
options:
background: light_orange
align: center
color: none
subheader: 15 - 30
updated_at: *3
section_id: 15
index: 4
- id: 22
header: Earth room
text: "On the ground floor (with a clay plastered wall)\r\n\r\nthe earth room is
great for groups wanting privacy. It's 50m2, with accommodation on the same floor,
sits up to 25 people either with or without tables."
image: earth_room
options:
background: none
align: center
color: none
subheader: 10 - 25
updated_at: *3
section_id: 15
index: 5
- id: 23
header: The Loft
text: "For smaller groups, we have many 40 m2 rooms, depending on the needs. Dancing,
yoga, theatre practise, group work.\r\nThe room shown is especially cosy (a roof
extension), and accommodates about 12 yogi or 15 sitting. Also available per hour."
image: loft_room
options:
background: light_grey
align: center
color: none
subheader: 8-15
updated_at: *3
section_id: 15
index: 6
- id: 24
header: Name
text: ''
updated_at: *3
section_id: 24
index: 1
- id: 25
header: Email
text: ''
options:
compulsory: 'yes'
form_type: email
updated_at: *3
section_id: 24
index: 2
- id: 26
header: Phone
text: ''
updated_at: *3
section_id: 24
index: 3
- id: 27
header: Event Type
text: ''
updated_at: *3
section_id: 24
index: 4
- id: 28
header: Number of participants
text: ''
updated_at: *3
section_id: 24
index: 5
- id: 29
header: Date
text: ''
options:
compulsory: 'yes'
form_type: date
updated_at: *3
section_id: 24
index: 6
- id: 30
header: Message
text: ''
options:
compulsory: 'no'
form_type: message
updated_at: *3
section_id: 24
index: 7
- id: 31
header: Floating desk
text: "Come anytime and work on any of the available desk. We have 30 places in
two rooms, with mixed normal desks, high desks, standing places and bean bags.\r\nAlso
possible per day, 10e."
options:
background: solid_blue
color: white
order: left
align: center
subheader: 120 / month
image: floating_office_small
updated_at: &4 2022-12-09 18:00:01.444815664 +02:00
section_id: 26
index: 1
- id: 32
header: Single office
text: If you need the quiet, or require safe shelf space, rent your own private
office. We provide desk, chair, shelves and wifi
options:
background: solid_blue
color: white
order: right
align: center
subheader: 200 / month
image: single_office_small
updated_at: *4
section_id: 26
index: 2
- id: 33
header: Double office
text: "Double offices are slightly larger than the singles, but also come furnished
to your needs.\r\n"
options:
background: solid_blue
color: white
order: left
align: center
subheader: 350 / month
image: double_office_small
updated_at: *4
section_id: 26
index: 3
- id: 34
header: Name
text: ''
options:
compulsory: 'yes'
form_type: text
updated_at: *4
section_id: 27
index: 1
- id: 35
header: Email
text: ''
options:
compulsory: 'yes'
form_type: email
updated_at: *4
section_id: 27
index: 2
- id: 36
header: Phone
text: ''
options:
compulsory: 'no'
form_type: phone
updated_at: *4
section_id: 27
index: 3
- id: 37
header: Space
text: ''
options:
compulsory: 'yes'
form_type: text
updated_at: *4
section_id: 27
index: 4
- id: 38
header: Message
text: ''
options:
compulsory: 'no'
form_type: message
updated_at: *4
section_id: 27
index: 5
- id: 39
header: Cafe
text: Our cafe serves vegan and vegetarian light food and great tea and coffee.
image: service_cafe
options:
background: light_gray
color: solid_blue
align: center
subheader: ''
updated_at: &5 2022-12-10 20:28:17.967357225 +02:00
section_id: 39
index: 1
- id: 40
header: Treatments
text: In our healery you can get professional help from osteopathy, shiatsu, acupuncture
and more.
image: service_treatments
options:
background: light_gray
color: solid_blue
align: center
subheader: ''
updated_at: *5
section_id: 39
index: 2
- id: 41
header: Boutique and Gallery
text: In our Boutique, you can find organic cosmetics, buy our great hub feenix
teas to take home and find inspirational art from our artists.
image: service_boutique
options:
background: light_gray
color: solid_blue
align: center
subheader: ''
updated_at: *5
section_id: 39
index: 3
- id: 42
header: Name
text: ''
options:
compulsory: 'yes'
form_type: text
updated_at: *5
section_id: 40
index: 1
- id: 43
header: Email
text: ''
options:
compulsory: 'yes'
form_type: text
updated_at: *5
section_id: 40
index: 2
- id: 44
header: Phone
text: ''
options:
compulsory: 'no'
form_type: text
updated_at: *5
section_id: 40
index: 3
- id: 45
header: Subject
text: TEXT
options:
compulsory: 'yes'
form_type: text
updated_at: *5
section_id: 40
index: 4
- id: 46
header: Message
text: ''
options:
compulsory: 'yes'
form_type: message
updated_at: *5
section_id: 40
index: 5

View File

@ -0,0 +1,13 @@
---
- :name: makerspace
:updated_at: 2022-12-09 17:56:51.141334688 +02:00
- :name: studios
:updated_at: 2022-12-09 17:50:02.733622073 +02:00
- :name: retreats
:updated_at: 2022-12-09 17:32:41.538163009 +02:00
- :name: coworking
:updated_at: 2022-12-09 18:00:01.444815664 +02:00
- :name: about
:updated_at: 2022-12-08 19:11:48.243621696 +02:00
- :name: index
:updated_at: 2022-12-10 20:28:17.967357225 +02:00

View File

@ -0,0 +1,1105 @@
---
- template: section_half_image
header: Makerspace
text: "Makerspace\r\n\r\nThe makers movement is transforming consumers into creaters.
By sharing otherwise expensive tools, it allows everyone to start exploring and
producing through otherwise inaccessible means.\r\nIn Finland this builds on the
traditional adult education and expands it into new technologies like electronics
and 3d printing.\r\nWe start with traditional tools that we know and have, like
woodworking, sowing, and metalworking. And we will expand into electronics and
3d technologies as funding starts coming. (See wish-list below if you want to
help)"
image: makerspace
id: 1
updated_at: &1 2022-12-09 17:56:51.141334688 +02:00
page_id: makerspace
index: 1
- template: section_full_up
id: 2
header: Different workshops
text: "Some of the machines, but all of the spaces described here exists. Also courses
for all the activities will be part of a shared future, and if you have something
to contribute (or teach) contact us.\r\nIf you want to use any of the facilities,
see below."
options:
background: light_gray
color: black
margin: '0'
subheader: Sharing machines and experiences
button_link: ''
button_text: ''
updated_at: *1
page_id: makerspace
index: 2
- template: section_large_image
id: 3
header: 3D
text: "We have 2 3d printers, one small, on large, to allow everyone to try to bring
their imagination to the physical world.\r\nAdditionally to hard and soft plastics,
3d printers can be used to print aluminium and carbon fibre to produce usable
machine parts.\r\nComputers and software for designing are available."
options:
subheader: Printing, scanning and planning
order: left
color: black
background: light_gray
margin: '0'
image: 3dprinter_wide
updated_at: *1
page_id: makerspace
index: 3
- template: section_large_image
id: 4
header: Clothes
text: "The thrid floor makerspace already has some sowing machines and will get
more. We are sourcing industrial sawing and embroidering machines so no project
is too big (or small). The large rooms is set up for a shared working environment,
enabling knowledge to be shared easily.\r\nPrivate lockers make it easy to interrupt
and return to your project in your own time."
image: sowing_wide
options:
subheader: Express your style
order: right
color: none
background: light_gray
margin: '0'
updated_at: *1
page_id: makerspace
index: 4
- template: section_large_image
id: 5
header: Metal workshop and garage
text: "The building has a garage workshop and we will move our metal workshop there.
There is a saw, drills, different welders (gas, stick, mig) and wrenches to allow
members to build the robot of their dreams, or fix their car.\r\nSmaller side
rooms allow for private and more detailed work, and we are looking to get a lathe,
possibly also a cnc machine."
image: metal_wide
options:
subheader: Useful and practical
margin: '0'
order: left
color: none
background: light_gray
updated_at: *1
page_id: makerspace
index: 5
- template: section_large_image
id: 6
header: Electronics
text: "This is in the third floor, set up as a basic electronics workshop.\r\nCurrently
we only have a soldering iron and a lab power source, but we are hoping to buy
oscilloscopes and other measuring equipment that will allow members to do everything
from a small LED project to arduino or raspberry pi based robots."
image: electronics_wide
options:
subheader: Wizz wizz wizz
margin: '0'
order: right
color: none
background: light_gray
updated_at: *1
page_id: makerspace
index: 6
- template: section_large_image
id: 7
header: Clay
text: Hub Feenix is looking to buy a clay oven, and set aside one or two wet spaces
for clay work. Both free form sculpturing and table turning facilities will be
available for hobbyists to try their hand at clay.
image: clay_wide
options:
subheader: Sculptured or turned
margin: '0'
order: left
color: none
background: light_gray
updated_at: *1
page_id: makerspace
index: 7
- template: section_large_image
id: 8
header: Woodworking
text: "We have a full woodworking workshop, we just need to move the machines to
Hub Feenix.\r\n\r\nWe will make this available to trained members on an hourly
basis much like nikkariverstas in Espoo.\r\n\r\nThe workshop will have all large
machines (as in the picture) and a separate hand tool for smaller projects."
image: woodworking_wide
options:
subheader: ''
margin: '0'
order: right
color: none
background: light_gray
updated_at: *1
page_id: makerspace
index: 8
- template: form_section
id: 9
card_template: form_field
cards:
- id: 1
header: Name
text: ''
options:
compulsory: 'yes'
form_type: text
updated_at: *1
section_id: 9
index: 1
- id: 2
header: Email
text: ''
options:
compulsory: 'yes'
form_type: email
updated_at: *1
section_id: 9
index: 2
- id: 3
header: Phone
text: ''
options:
compulsory: 'yes'
form_type: phone
updated_at: *1
section_id: 9
index: 3
- id: 4
header: Interest
text: ''
updated_at: *1
section_id: 9
index: 4
- id: 5
header: Message
text: ''
options:
compulsory: 'no'
form_type: message
updated_at: *1
section_id: 9
index: 5
header: Participate
text: "If you want to use any of the facilities or machines listed above, you need
to be a member of the coop. This requires a small fee and a certain amount of
participation in general tasks.\r\n\r\nAdditionally some machines will require
skill to operate, and you need to prove that you are able, possibly participate
in training.\r\n\r\nConsumables, like wood, thread, clay, electronic parts, cost
but many basic ones are made available at cost price by the coop.\r\n\r\nCurrently
many of the facilities are still being built up, but if you want to participate
already, or be notified when a certain facility is ready, fill the form below.\r\n\r\nIf
you want to stay informed about planned meetings, courses and happening, join
the Makers forum here.\r\n"
options:
ok_message: ''
handler: FormHandler
background: light_orange
color: solid_black
updated_at: *1
page_id: makerspace
index: 9
- template: section_half_image
id: 10
header: Studios
text: Hub Feenix is a place to create together. A community of artists and makers.
Several floors of the building are reserved for artist studios. Some creative
activities that require large equipment (presses, ovens) overlap strongly with
the Makers idea. Have a look at the rooms available and tell us what you need.
image: studios
options:
button_link: ''
button_text: ''
order: left
background: white
updated_at: &2 2022-12-09 17:50:02.733622073 +02:00
page_id: studios
index: 1
- template: section_cards
header: Sizes and kinds
text: We offer different sizes and different types of studios for artists. There
large and small rooms, with more or less light, also rooms with tiles for wet-work.
The rooms are in the old hospital wings, so most are old patient rooms, but there
are plenty of others too. Prices do not include electricity or vat, but do include
the use of common spaces, see below.
image:
id: 11
card_template: card_full_image
cards:
- header: Standard
text: This is the standard two patient room. They are mostly towards the south,
so may have great, or too much light, depending on how you see it. The size
is about 3x5, cost 120e.
image: standard
id: 6
options:
background: solid_blue
color: white
align: left
updated_at: *2
section_id: 11
index: 1
- header: Large
text: The old four patient rooms are basically twice the size as the small. They
are large enough to be shared. The size is about 30m2 and the cost 240e. Like
the small rooms these are south facing, very light.
image: large
id: 7
options:
background: solid_blue
color: white
align: left
updated_at: *2
section_id: 11
index: 2
- id: 8
header: Non standard
text: There are smaller, rooms, and some connected rooms. If your needs are small,
of you rather have 2 small rooms than one, talk to us. These are mostly old
admin rooms facing north, starting at 100e.
image: non_standard_room
options:
background: solid_blue
color: white
align: left
updated_at: *2
section_id: 11
index: 3
- id: 9
header: Wet spaces
text: If your work requires you to get dirty, we have different size wet rooms.
Here we are talking about spaces with floor drains that are tiled all around.
There are about 2-3 per floor, in different sizes, from 12 to 25m2.
options:
background: solid_blue
color: white
align: left
image: wet_space_room
updated_at: *2
section_id: 11
index: 4
options:
button_link: ''
button_text: ''
background: light_blue
columns: '2'
updated_at: *2
page_id: studios
index: 2
- template: section_cards
id: 12
card_template: card_normal_square
cards:
- id: 10
header: Common spaces
text: Each floor has it's own large common space. Also, Hub Feenix offers great
public spaces, terraces, a cafe, co-working and maker spaces.
image: common_spaces
options:
background: solid_red
align: center
updated_at: *2
section_id: 12
index: 1
- id: 11
header: En suite and fold out
text: "Some rooms have attached (or shared) bathrooms. Also, you have the option
of a fold-out bed to stay overnight.\r\nIt's like a home away from home."
image: en_suite_studio
options:
background: solid_blue
align: center
updated_at: *2
section_id: 12
index: 2
- id: 12
header: Shared kitchen, own sink
text: Each floor has it's own common kitchen. This is especially useful if you
take the option of a fold out bed to stay overnight. And almost all spaces have
a sink in the room, so you can clean things or make a tea in peace.
options:
background: solid_indigo
align: center
image: studio_kitchen
updated_at: *2
section_id: 12
index: 3
header: Included
text: The studios offer a unique environment both in terms of fellow beings, and
the spaces around.
options:
background: white
columns: '3'
button_link: ''
button_text: ''
updated_at: *2
page_id: studios
index: 3
- template: form_section
id: 13
card_template: form_field
cards:
- id: 13
header: Name
text: ''
options:
compulsory: 'yes'
form_type: text
updated_at: *2
section_id: 13
index: 1
- id: 14
header: Email
text: ''
options:
compulsory: 'yes'
form_type: email
updated_at: *2
section_id: 13
index: 2
- id: 15
header: Phone
text: ''
options:
compulsory: 'no'
form_type: phone
updated_at: *2
section_id: 13
index: 3
- id: 16
header: Space requirements
text: ''
updated_at: *2
section_id: 13
index: 4
- id: 17
header: Message
text: ''
options:
compulsory: 'no'
form_type: message
updated_at: *2
section_id: 13
index: 5
options:
ok_message: Ok
handler: FormHandler
background: light_orange
color: none
header: The deal
text: "Hub Feenix is not just renting space, we are looking to build a community
of active, participating creatives.\r\n\r\nCheck out the MakerSpace facilities
as well"
updated_at: *2
page_id: studios
index: 4
- template: section_half_image
id: 14
header: Retreats
text: "Hub Feenix is a beautiful place, ideally situated in the country, but close
to Helsinki. We have different sized studios and spaces, to organise retreats
for groups from 10, up to 100 people.\r\n"
options:
button_link: ''
button_text: ''
order: left
background: white
subheader: Come to learn, enjoy your stay
text: " Different levels of accommodation and our cafe and great vegan food make
your stay enjoyable also outside the course program."
align: center
color: solid_blue
image: retreats
updated_at: &3 2022-12-09 17:32:41.538163009 +02:00
page_id: retreats
index: 1
- template: section_cards
id: 15
card_template: card_normal_square
cards:
- id: 18
header: The Hall
text: Our beautiful hall, one of the largest in the area, is 8 x 20m and can accommodate
50 yogi, 80 dancers, or 120 listeners. We have a professional audio system for
dancing and of course chairs for meetings.
options:
background: none
align: center
subheader: 40 - 120
color: none
image: the_hall
updated_at: *3
section_id: 15
index: 1
- id: 19
header: Mandala room
text: The Mandala room, in the fifth floor, is a slightly asymmetrical 100m2.
With it's great views and light atmosphere it is especially suited for yoga
(30) and mediation (60). It also has a private eating area and staircase.
options:
background: none
align: center
subheader: 30 - 60
color: none
image: mandala_room
updated_at: *3
section_id: 15
index: 2
- id: 20
header: Sky Conference
text: "Also in the fifth floor with great views is the sky conference room. It
sits 35 people as shown and up to 80 in a theatre arrangement.\r\n\r\nThere
is a smaller semi attached break room and two more break-out rooms next to it.\r\n\r\nGreat
for meetings of any sort."
image: sky_conference
options:
background: light_orange
align: center
color: none
subheader: 35 - 80
updated_at: *3
section_id: 15
index: 3
- id: 21
header: Lootus room
text: "Downstairs, next to the café, the spacious lotus room is especially good
for day events. 20 Yogi or dancers fit easily into the 70m2 and for group work
30 is still good.\r\n\r\nCan be rented on hourly basis."
image: lotus_room
options:
background: light_orange
align: center
color: none
subheader: 15 - 30
updated_at: *3
section_id: 15
index: 4
- id: 22
header: Earth room
text: "On the ground floor (with a clay plastered wall)\r\n\r\nthe earth room
is great for groups wanting privacy. It's 50m2, with accommodation on the same
floor, sits up to 25 people either with or without tables."
image: earth_room
options:
background: none
align: center
color: none
subheader: 10 - 25
updated_at: *3
section_id: 15
index: 5
- id: 23
header: The Loft
text: "For smaller groups, we have many 40 m2 rooms, depending on the needs. Dancing,
yoga, theatre practise, group work.\r\nThe room shown is especially cosy (a
roof extension), and accommodates about 12 yogi or 15 sitting. Also available
per hour."
image: loft_room
options:
background: light_grey
align: center
color: none
subheader: 8-15
updated_at: *3
section_id: 15
index: 6
header: Spaces
text: For different size groups and needs
options:
background: light_orange
columns: '3'
button_link: ''
button_text: ''
color: solid_blue
align: center
updated_at: *3
page_id: retreats
index: 2
- template: section_full_up
id: 16
header: Accommodation
text: We have three wings set aside to accommodate retreat participants. Each wing
can accommodate up to 32 people, and spare beds (and rooms) are available.
updated_at: *3
page_id: retreats
index: 3
- template: section_full_image
id: 17
image: suites_wide
header: Suites
text: Suites are single occupancy and have en-suite toilet and shower.
options:
fixed: 'off'
shade_color: solid_blue_25
color: white
align: right
updated_at: *3
page_id: retreats
index: 4
- template: section_full_image
id: 18
header: Shared room
text: "Shared rooms have double occupancy but their own bathroom with toilet and
shower.\r\n"
image: shared_wide
options:
fixed: 'off'
color: white
align: left
shade_color: solid_red_25
updated_at: *3
page_id: retreats
index: 5
- template: section_full_image
id: 19
header: Common room
text: Common rooms have either two or four beds and shared facilities. Rooms with
two beds will often share the bathroom with another room. Some rooms have shared
facilities on the corridor.
image: common_wide
options:
fixed: 'off'
color: white
align: center
shade_color: black_25
updated_at: *3
page_id: retreats
index: 6
- template: section_full_up
id: 20
header: Common services for retreats
text: Relax outside the course program
options:
background: light_orange
color: solid_blue
button_link: ''
button_text: ''
margin: '0'
updated_at: *3
page_id: retreats
index: 7
- template: section_large_image
id: 21
image: common_spaces_wide
options:
fixed: 'on'
color: solid_blue
align: left
background: light_orange
header: Common spaces
text: Enjoy the free time in between learning. Several common spaces, like in the
picture, terraces and the cafe make a relaxed atmosphere.
updated_at: *3
page_id: retreats
index: 8
- template: section_large_image
id: 22
image: food_area
header: Great Food
text: Healthy plant-based food keeps you going between session. The dining hall
is conveniently situated next to the hall, so smaller breaks don't stop your flow.
options:
fixed: 'on'
color: solid_blue
align: left
background: light_orange
order: right
updated_at: *3
page_id: retreats
index: 9
- template: section_large_image
id: 23
image: nature_around
header: Nature around
text: Enjoy your spare time by walking around in the surrounding forest. Or (in
the summer) go swimming in the nearby lake.
options:
order: left
color: solid_blue
background: light_orange
updated_at: *3
page_id: retreats
index: 10
- template: form_section
id: 24
card_template: form_field
cards:
- id: 24
header: Name
text: ''
updated_at: *3
section_id: 24
index: 1
- id: 25
header: Email
text: ''
options:
compulsory: 'yes'
form_type: email
updated_at: *3
section_id: 24
index: 2
- id: 26
header: Phone
text: ''
updated_at: *3
section_id: 24
index: 3
- id: 27
header: Event Type
text: ''
updated_at: *3
section_id: 24
index: 4
- id: 28
header: Number of participants
text: ''
updated_at: *3
section_id: 24
index: 5
- id: 29
header: Date
text: ''
options:
compulsory: 'yes'
form_type: date
updated_at: *3
section_id: 24
index: 6
- id: 30
header: Message
text: ''
options:
compulsory: 'no'
form_type: message
updated_at: *3
section_id: 24
index: 7
header: Start planning now
text: We create custom packages for your specific needs. Just tell us what you are
planning, for how many people and we will create a solution for you.
options:
ok_message: ''
handler: FormHandler
background: light_gray
color: solid_blue
updated_at: *3
page_id: retreats
index: 11
- template: section_half_image
id: 25
header: Coworking and offices
text: "We have various spaces for co-working and offices. You can just come for
the odd afternoon and work in a shared environment. Or rent your own office, single
or double.\r\n"
image: coworking_office
options:
order: left
background: white
color: solid_blue
subheader: ''
text: ''
align: center
button_link: ''
button_text: ''
updated_at: &4 2022-12-09 18:00:01.444815664 +02:00
page_id: coworking
index: 1
- template: section_cards
id: 26
card_template: card_gap_square
cards:
- id: 31
header: Floating desk
text: "Come anytime and work on any of the available desk. We have 30 places in
two rooms, with mixed normal desks, high desks, standing places and bean bags.\r\nAlso
possible per day, 10e."
options:
background: solid_blue
color: white
order: left
align: center
subheader: 120 / month
image: floating_office_small
updated_at: *4
section_id: 26
index: 1
- id: 32
header: Single office
text: If you need the quiet, or require safe shelf space, rent your own private
office. We provide desk, chair, shelves and wifi
options:
background: solid_blue
color: white
order: right
align: center
subheader: 200 / month
image: single_office_small
updated_at: *4
section_id: 26
index: 2
- id: 33
header: Double office
text: "Double offices are slightly larger than the singles, but also come furnished
to your needs.\r\n"
options:
background: solid_blue
color: white
order: left
align: center
subheader: 350 / month
image: double_office_small
updated_at: *4
section_id: 26
index: 3
header: Relax, connect and work
text: "Relaxed work environments have been shown to be more productive. Working
in different places and positions, even a bit of background noise, helps creativity
and thus work.\r\nAnd then enjoy a good coffee in our nice cafe."
options:
background: light_orange
columns: '3'
color: solid_blue
updated_at: *4
page_id: coworking
index: 2
- template: form_section
id: 27
card_template: form_field
cards:
- id: 34
header: Name
text: ''
options:
compulsory: 'yes'
form_type: text
updated_at: *4
section_id: 27
index: 1
- id: 35
header: Email
text: ''
options:
compulsory: 'yes'
form_type: email
updated_at: *4
section_id: 27
index: 2
- id: 36
header: Phone
text: ''
options:
compulsory: 'no'
form_type: phone
updated_at: *4
section_id: 27
index: 3
- id: 37
header: Space
text: ''
options:
compulsory: 'yes'
form_type: text
updated_at: *4
section_id: 27
index: 4
- id: 38
header: Message
text: ''
options:
compulsory: 'no'
form_type: message
updated_at: *4
section_id: 27
index: 5
header: Join the working tribe
text: ''
options:
ok_message: ''
handler: FormHandler
background: light_orange
color: solid_blue
updated_at: *4
page_id: coworking
index: 3
- template: section_full_image
id: 28
header: Hub Feenix
text: "Our Vision:\r\n\r\nArt, craft, music, yoga, dance, meditation, nature, and
creatives of every kind come together under our roof in an atmosphere of openness
and learning. \r\n\r\n \r\n\r\nWe are very much just starting, so make contact,
check later, or follow us on facebook."
options:
fixed: 'off'
color: white
align: left
shade_color: solid_blue_25
image: cafe_about
updated_at: &5 2022-12-08 19:11:48.243621696 +02:00
page_id: about
index: 1
- template: section_full_up
id: 29
header: About Us
text: "Hub Feenix is a community space that fosters creativity, healing, and connection.
\r\nArt, craft, music, yoga, dance, meditation, nature, and creative people of
all kinds come together under our roof in an atmosphere of openness and learning.
\r\n\r\nHub Feenix provides opportunities for creative people to live, work, learn,
create, exhibit, and perform in a healing natural setting in the tranquil southeastern
Finland forest. \r\n\r\nAs part of our commitment to ongoing connection and learning,
Hub Feenix provides space for retreats, workshops, conferences, short- and long-term
residencies, and other gatherings."
options:
background: light_orange
color: solid_blue
margin: '0'
subheader: ''
button_link: ''
button_text: ''
updated_at: *5
page_id: about
index: 2
- template: section_full_image
id: 30
header: ''
text: "[Click here to open](https://duckduckgo.com/?t=ffab&q=H%C3%B6gbenintie+30%2C+10350+Meltola%2C+Raasepori&atb=v283-1&ia=web&iaxm=directions&end=what%3AH%25C3%25B6gbensv%25C3%25A4gen%252030%252C%252010350%2520Meltola%252C%2520Finland&transport=drive)"
image: map_wide
options:
fixed: 'on'
color: black
align: center
shade_color: none
updated_at: *5
page_id: about
index: 3
- template: section_full_image
header: HUB FEENIX
text: Only an hour west of Helsinki, the Feenix rises from an old sanatorium. The
Hub is a place to create, learn and regenerate.
image: house
id: 31
options:
fixed: 'on'
shade_color: black_25
color: solid_blue
align: left
updated_at: &6 2022-12-10 20:28:17.967357225 +02:00
page_id: index
index: 1
- template: section_spacer
id: 32
updated_at: *6
page_id: index
index: 2
- template: section_half_image
header: Retreats
text: Hub Feenix is a beautiful place, ideally situated in the country, but close
to Helsinki. We have different sized studios and spaces, to organise retreats
for up to 100 people.
options:
button_text: Retreats
button_link: retreats
order: left
background: solid_blue
image: retreats
id: 33
updated_at: *6
page_id: index
index: 3
- template: section_half_image
header: Studios
text: We offer different size and different type of studios for artists. There are
large and small rooms, with more or less light, also rooms with tiles for wetwork,
small dance studios etc.
options:
order: right
button_link: ''
button_text: ''
background: solid_blue
image: studios
id: 34
updated_at: *6
page_id: index
index: 4
- template: section_half_image
header: Makerspace
text: The hub encourages all people to be creative in any way they choose. We provide
facilities from more traditional sowing and woodworking, to modern 3d printers
and electronics lab.
options:
button_text: Makerspace
button_link: makerspace
order: left
background: solid_blue
image: makerspace
id: 35
updated_at: *6
page_id: index
index: 5
- template: section_half_image
id: 36
header: Coworking and offices
text: We have various spaces for co-working and office rent. You can just come for
the odd afternoon and work in a shared environment. Or rent your own office or
even wing, from 15 to 500 m2.
image: coworking_office
options:
order: right
background: solid_blue
color: none
subheader: ''
text: ''
align: left
button_link: coworking
button_text: Coworking
updated_at: *6
page_id: index
index: 6
- template: section_half_image
id: 37
header: Conferences and buisness events
text: We offer meeting rooms from 20-80 people, with breakout rooms for work-group
discussions. High-speed internet, video projectors, break-out rooms, all you need
to organise your event. The cafe and surrounding nature make for ideal breaks.
image: conferences
options:
order: left
background: solid_blue
color: none
subheader: ''
text: ''
align: left
button_link: ''
button_text: ''
updated_at: *6
page_id: index
index: 7
- template: section_half_image
id: 38
header: Residency and Accommodation
text: We offer short to medium term accommodation for several target groups. The
rooms are generally of a corridor, either with or without own toilet and shower.
This can suit artists who either rent a studio or use co-working facilities. But
we also accept applications from people who are just between things.
image: residency_accomodation
options:
order: right
background: solid_blue
color: none
subheader: ''
text: ''
align: left
button_link: ''
button_text: ''
updated_at: *6
page_id: index
index: 8
- template: section_cards
id: 39
card_template: card_normal_square
cards:
- id: 39
header: Cafe
text: Our cafe serves vegan and vegetarian light food and great tea and coffee.
image: service_cafe
options:
background: light_gray
color: solid_blue
align: center
subheader: ''
updated_at: *6
section_id: 39
index: 1
- id: 40
header: Treatments
text: In our healery you can get professional help from osteopathy, shiatsu, acupuncture
and more.
image: service_treatments
options:
background: light_gray
color: solid_blue
align: center
subheader: ''
updated_at: *6
section_id: 39
index: 2
- id: 41
header: Boutique and Gallery
text: In our Boutique, you can find organic cosmetics, buy our great hub feenix
teas to take home and find inspirational art from our artists.
image: service_boutique
options:
background: light_gray
color: solid_blue
align: center
subheader: ''
updated_at: *6
section_id: 39
index: 3
header: Services
text: ''
options:
background: solid_blue
columns: '3'
color: none
updated_at: *6
page_id: index
index: 9
- template: form_section
id: 40
card_template: form_field
cards:
- id: 42
header: Name
text: ''
options:
compulsory: 'yes'
form_type: text
updated_at: *6
section_id: 40
index: 1
- id: 43
header: Email
text: ''
options:
compulsory: 'yes'
form_type: text
updated_at: *6
section_id: 40
index: 2
- id: 44
header: Phone
text: ''
options:
compulsory: 'no'
form_type: text
updated_at: *6
section_id: 40
index: 3
- id: 45
header: Subject
text: TEXT
options:
compulsory: 'yes'
form_type: text
updated_at: *6
section_id: 40
index: 4
- id: 46
header: Message
text: ''
options:
compulsory: 'yes'
form_type: message
updated_at: *6
section_id: 40
index: 5
header: Contact
text: "Högbenintie 30, 10350 Meltola, Raasepori\r\n\r\ninfo@hubfeenix.fi\r\n\r\n0505337881\r\n"
options:
background: white
color: solid_blue
ok_message: We'll get back to you
updated_at: *6
page_id: index
index: 10