From 65cb4001267c14919de431b67e0c771b7d78ee03 Mon Sep 17 00:00:00 2001
From: Andreas Stephanides
Date: Thu, 20 Nov 2014 11:40:49 +0100
Subject: [PATCH 1/2] documents
---
app/controllers/documents_controller.rb | 71 +++++++++++++++++++
app/models/document.rb | 3 +
app/views/documents/_document.html.erb | 8 +++
app/views/documents/_nested_form.html.erb | 15 ++++
app/views/documents/destroy.js.erb | 1 +
app/views/documents/edit.js.erb | 6 ++
app/views/documents/new.js.erb | 3 +
app/views/documents/update.js.erb | 1 +
db/migrate/20141119200355_create_documents.rb | 13 ++++
spec/factories/documents.rb | 10 +++
spec/models/document_spec.rb | 5 ++
11 files changed, 136 insertions(+)
create mode 100644 app/controllers/documents_controller.rb
create mode 100644 app/models/document.rb
create mode 100644 app/views/documents/_document.html.erb
create mode 100644 app/views/documents/_nested_form.html.erb
create mode 100644 app/views/documents/destroy.js.erb
create mode 100644 app/views/documents/edit.js.erb
create mode 100644 app/views/documents/new.js.erb
create mode 100644 app/views/documents/update.js.erb
create mode 100644 db/migrate/20141119200355_create_documents.rb
create mode 100644 spec/factories/documents.rb
create mode 100644 spec/models/document_spec.rb
diff --git a/app/controllers/documents_controller.rb b/app/controllers/documents_controller.rb
new file mode 100644
index 0000000..bfff993
--- /dev/null
+++ b/app/controllers/documents_controller.rb
@@ -0,0 +1,71 @@
+class DocumentsController < ApplicationController
+
+ load_and_authorize_resource
+ def index
+ respond_to do |format|
+ format.html {redirect_to rubriken_path}
+ end
+ end
+ def new
+ @document=Document.new
+ @document.parent=params[:parent_typ].constantize.find(params[:parent_id])
+ @document.typ = 1
+ respond_to do |format|
+ format.js
+ end
+ end
+ def edit
+ @document = Document.find(params[:id])
+ respond_to do |format|
+ format.js
+ end
+
+ end
+
+ def create
+ @document = Document.new(params[:document])
+
+ respond_to do |format|
+ if @document.save
+ # format.html { redirect_to @document, notice: 'Document was successfully created.' }
+ #format.json { render json: @document, status: :created, location: @document }
+ format.js
+ else
+ # format.html { render action: "new" }
+ # format.json { render json: @document.errors, status: :unprocessable_entity }
+ format.js { render action: "new" }
+ end
+ end
+ end
+
+def update
+ @document = Document.find(params[:id])
+
+ respond_to do |format|
+ if @document.update_attributes(params[:document])
+ format.html { redirect_to @document, notice: 'Document was successfully updated.' }
+ format.json { head :no_content }
+ format.js
+ else
+ # format.html { render action: "edit" }
+ # format.json { render json: @document.errors, status: :unprocessable_entity }
+ format.js { render action: "edit"}
+ end
+ end
+ end
+ def destroy
+ logger.info("-------------delete------------------")
+ @document = Document.find(params[:id])
+ @document_id = params[:id]
+ @object=@document.object
+ @document.destroy
+
+ respond_to do |format|
+ #format.html { redirect_to @object}
+ #format.json { head :no_content }
+ format.js
+ end
+ end
+
+
+end
diff --git a/app/models/document.rb b/app/models/document.rb
new file mode 100644
index 0000000..e7fa2f7
--- /dev/null
+++ b/app/models/document.rb
@@ -0,0 +1,3 @@
+class Document < ActiveRecord::Base
+ attr_accessible :etherpadkey, :name, :parent, :text, :typ
+end
diff --git a/app/views/documents/_document.html.erb b/app/views/documents/_document.html.erb
new file mode 100644
index 0000000..d76b082
--- /dev/null
+++ b/app/views/documents/_document.html.erb
@@ -0,0 +1,8 @@
+
+ <% image_tag("/iconnavy/time.png") %>
+ <% fa_icon("calendar 2x") %>
+
+ <%= document.title %>
+ <%= link_to "edit", edit_document_path(document),:remote=>true if can? :edit, document %>
+ <%= link_to 'Delete', document, method: :delete, data: { confirm: 'Are you sure?' } , remote: true if can? :delete, document %>
+
diff --git a/app/views/documents/_nested_form.html.erb b/app/views/documents/_nested_form.html.erb
new file mode 100644
index 0000000..8421935
--- /dev/null
+++ b/app/views/documents/_nested_form.html.erb
@@ -0,0 +1,15 @@
+<%= fa_icon("calendar 2x") %>
+<%= notice %>
+
+<%= semantic_form_for @calentry, :remote=>true, :html=>{:class=>"inline"} do |f| %>
+
+ <%= f.input :start, :as => :datetimepicker %>
+ <%= f.input :dauer , :as => :string, :append=>"h" %>
+ <%= f.input :object_id , :as => :hidden %>
+ <%= f.input :object_type , :as => :hidden %>
+<%= f.input :typ , :as => :hidden %>
+
+
+ <%= f.action :submit, :as => :input_ %>
+
+<% end %>
diff --git a/app/views/documents/destroy.js.erb b/app/views/documents/destroy.js.erb
new file mode 100644
index 0000000..41b315b
--- /dev/null
+++ b/app/views/documents/destroy.js.erb
@@ -0,0 +1 @@
+$("#document_<%= @document_id %>").remove();
diff --git a/app/views/documents/edit.js.erb b/app/views/documents/edit.js.erb
new file mode 100644
index 0000000..a63cb2c
--- /dev/null
+++ b/app/views/documents/edit.js.erb
@@ -0,0 +1,6 @@
+
+$("#document_<%= @document.id %>").html("<%=escape_javascript( render :partial=>"nested_form" ,:object=>@document)%>");
+
+
+
+
\ No newline at end of file
diff --git a/app/views/documents/new.js.erb b/app/views/documents/new.js.erb
new file mode 100644
index 0000000..28248bb
--- /dev/null
+++ b/app/views/documents/new.js.erb
@@ -0,0 +1,3 @@
+$("#document_new").replaceWith("<%=escape_javascript( render :partial=>"nested_form" ,:object=>@document) %>
");
+
+
\ No newline at end of file
diff --git a/app/views/documents/update.js.erb b/app/views/documents/update.js.erb
new file mode 100644
index 0000000..f5986eb
--- /dev/null
+++ b/app/views/documents/update.js.erb
@@ -0,0 +1 @@
+$("#document_<%= @document.id %>").replaceWith("<%=escape_javascript( render :partial=>"document", :object=>@document)%>");
diff --git a/db/migrate/20141119200355_create_documents.rb b/db/migrate/20141119200355_create_documents.rb
new file mode 100644
index 0000000..fc4d30e
--- /dev/null
+++ b/db/migrate/20141119200355_create_documents.rb
@@ -0,0 +1,13 @@
+class CreateDocuments < ActiveRecord::Migration
+ def change
+ create_table :documents do |t|
+ t.integer :typ
+ t.string :name
+ t.text :text
+ t.string :etherpadkey
+ t.references{polymorphic} :parent
+
+ t.timestamps
+ end
+ end
+end
diff --git a/spec/factories/documents.rb b/spec/factories/documents.rb
new file mode 100644
index 0000000..e7d4a9c
--- /dev/null
+++ b/spec/factories/documents.rb
@@ -0,0 +1,10 @@
+FactoryGirl.define do
+ factory :document do
+ typ 1
+name "MyString"
+text "MyText"
+etherpadkey "MyString"
+parent ""
+ end
+
+end
diff --git a/spec/models/document_spec.rb b/spec/models/document_spec.rb
new file mode 100644
index 0000000..d39f418
--- /dev/null
+++ b/spec/models/document_spec.rb
@@ -0,0 +1,5 @@
+require 'rails_helper'
+
+RSpec.describe Document, :type => :model do
+ pending "add some examples to (or delete) #{__FILE__}"
+end
From 741a3abb6d2806f35f66368019a9d852ba0e4d69 Mon Sep 17 00:00:00 2001
From: Andreas Stephanides
Date: Wed, 26 Nov 2014 20:36:04 +0100
Subject: [PATCH 2/2] meetings added, documents added
---
app/assets/javascripts/meetings.js.coffee | 3 +
app/assets/javascripts/meetingtyps.js.coffee | 3 +
app/assets/stylesheets/meetings.css.scss | 3 +
app/assets/stylesheets/meetingtyps.css.scss | 3 +
app/controllers/documents_controller.rb | 2 +-
app/controllers/meetings_controller.rb | 92 +++++++++++++++++++
app/controllers/meetingtyps_controller.rb | 2 +
app/helpers/meetings_helper.rb | 2 +
app/helpers/meetingtyps_helper.rb | 2 +
app/models/ability.rb | 7 +-
app/models/document.rb | 6 ++
app/models/meeting.rb | 32 +++++++
app/models/meetingtyp.rb | 3 +
app/models/thema.rb | 2 +
app/views/attachments/_attachment.html.erb | 2 +-
app/views/documents/_document.html.erb | 4 +-
app/views/documents/_nested_form.html.erb | 12 +--
app/views/meetings/_meeting.html.erb | 8 ++
app/views/meetings/show.js.erb | 1 +
app/views/themen/_small.html.erb | 21 ++++-
config/routes.rb | 10 +-
db/migrate/20141119200355_create_documents.rb | 10 +-
.../20141126115125_create_meetingtyps.rb | 11 +++
db/migrate/20141126120610_create_meetings.rb | 15 +++
spec/controllers/meetings_controller_spec.rb | 5 +
.../meetingtyps_controller_spec.rb | 5 +
spec/factories/meetings.rb | 10 ++
spec/factories/meetingtyps.rb | 9 ++
spec/helpers/meetings_helper_spec.rb | 15 +++
spec/helpers/meetingtyps_helper_spec.rb | 15 +++
spec/models/meeting_spec.rb | 5 +
spec/models/meetingtyp_spec.rb | 5 +
32 files changed, 304 insertions(+), 21 deletions(-)
create mode 100644 app/assets/javascripts/meetings.js.coffee
create mode 100644 app/assets/javascripts/meetingtyps.js.coffee
create mode 100644 app/assets/stylesheets/meetings.css.scss
create mode 100644 app/assets/stylesheets/meetingtyps.css.scss
create mode 100644 app/controllers/meetings_controller.rb
create mode 100644 app/controllers/meetingtyps_controller.rb
create mode 100644 app/helpers/meetings_helper.rb
create mode 100644 app/helpers/meetingtyps_helper.rb
create mode 100644 app/models/meeting.rb
create mode 100644 app/models/meetingtyp.rb
create mode 100644 app/views/meetings/_meeting.html.erb
create mode 100644 app/views/meetings/show.js.erb
create mode 100644 db/migrate/20141126115125_create_meetingtyps.rb
create mode 100644 db/migrate/20141126120610_create_meetings.rb
create mode 100644 spec/controllers/meetings_controller_spec.rb
create mode 100644 spec/controllers/meetingtyps_controller_spec.rb
create mode 100644 spec/factories/meetings.rb
create mode 100644 spec/factories/meetingtyps.rb
create mode 100644 spec/helpers/meetings_helper_spec.rb
create mode 100644 spec/helpers/meetingtyps_helper_spec.rb
create mode 100644 spec/models/meeting_spec.rb
create mode 100644 spec/models/meetingtyp_spec.rb
diff --git a/app/assets/javascripts/meetings.js.coffee b/app/assets/javascripts/meetings.js.coffee
new file mode 100644
index 0000000..7615679
--- /dev/null
+++ b/app/assets/javascripts/meetings.js.coffee
@@ -0,0 +1,3 @@
+# Place all the behaviors and hooks related to the matching controller here.
+# All this logic will automatically be available in application.js.
+# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
diff --git a/app/assets/javascripts/meetingtyps.js.coffee b/app/assets/javascripts/meetingtyps.js.coffee
new file mode 100644
index 0000000..7615679
--- /dev/null
+++ b/app/assets/javascripts/meetingtyps.js.coffee
@@ -0,0 +1,3 @@
+# Place all the behaviors and hooks related to the matching controller here.
+# All this logic will automatically be available in application.js.
+# You can use CoffeeScript in this file: http://jashkenas.github.com/coffee-script/
diff --git a/app/assets/stylesheets/meetings.css.scss b/app/assets/stylesheets/meetings.css.scss
new file mode 100644
index 0000000..6b149af
--- /dev/null
+++ b/app/assets/stylesheets/meetings.css.scss
@@ -0,0 +1,3 @@
+// Place all the styles related to the meetings controller here.
+// They will automatically be included in application.css.
+// You can use Sass (SCSS) here: http://sass-lang.com/
diff --git a/app/assets/stylesheets/meetingtyps.css.scss b/app/assets/stylesheets/meetingtyps.css.scss
new file mode 100644
index 0000000..94c9425
--- /dev/null
+++ b/app/assets/stylesheets/meetingtyps.css.scss
@@ -0,0 +1,3 @@
+// Place all the styles related to the meetingtyps controller here.
+// They will automatically be included in application.css.
+// You can use Sass (SCSS) here: http://sass-lang.com/
diff --git a/app/controllers/documents_controller.rb b/app/controllers/documents_controller.rb
index bfff993..07b59cf 100644
--- a/app/controllers/documents_controller.rb
+++ b/app/controllers/documents_controller.rb
@@ -57,7 +57,7 @@ def update
logger.info("-------------delete------------------")
@document = Document.find(params[:id])
@document_id = params[:id]
- @object=@document.object
+
@document.destroy
respond_to do |format|
diff --git a/app/controllers/meetings_controller.rb b/app/controllers/meetings_controller.rb
new file mode 100644
index 0000000..1592388
--- /dev/null
+++ b/app/controllers/meetings_controller.rb
@@ -0,0 +1,92 @@
+class MeetingsController < ApplicationController
+
+
+
+ load_and_authorize_resource
+ def index
+ respond_to do |format|
+ format.html {redirect_to rubriken_path}
+ end
+ end
+ def new
+ @meeting=Meeting.new
+ @meeting.parent=params[:parent_typ].constantize.find(params[:parent_id])
+ @meeting.typ = 1
+ respond_to do |format|
+ format.js
+ end
+ end
+ def create_protocol
+ @meeting = Meeting.find(params[:id])
+ @meeting.create_protocol
+ @meeting.save
+ respond_to do |format|
+ format.js {render action: :show}
+ end
+ end
+ def create_agenda
+ @meeting = Meeting.find(params[:id])
+ @meeting.create_agenda
+
+
+ respond_to do |format|
+ format.js {render action: :show}
+ end
+ end
+ def edit
+ @meeting = Meeting.find(params[:id])
+ respond_to do |format|
+ format.js
+ end
+
+ end
+
+ def create
+ @meeting = Meeting.new(params[:meeting])
+
+ respond_to do |format|
+ if @meeting.save
+ # format.html { redirect_to @meeting, notice: 'Meeting was successfully created.' }
+ #format.json { render json: @meeting, status: :created, location: @meeting }
+ format.js
+ else
+ # format.html { render action: "new" }
+ # format.json { render json: @meeting.errors, status: :unprocessable_entity }
+ format.js { render action: "new" }
+ end
+ end
+ end
+
+def update
+ @meeting = Meeting.find(params[:id])
+
+ respond_to do |format|
+ if @meeting.update_attributes(params[:meeting])
+ format.html { redirect_to @meeting, notice: 'Meeting was successfully updated.' }
+ format.json { head :no_content }
+ format.js
+ else
+ # format.html { render action: "edit" }
+ # format.json { render json: @meeting.errors, status: :unprocessable_entity }
+ format.js { render action: "edit"}
+ end
+ end
+ end
+ def destroy
+ logger.info("-------------delete------------------")
+ @meeting = Meeting.find(params[:id])
+ @meeting_id = params[:id]
+ @object=@meeting.object
+ @meeting.destroy
+
+ respond_to do |format|
+ #format.html { redirect_to @object}
+ #format.json { head :no_content }
+ format.js
+ end
+ end
+
+
+
+
+end
diff --git a/app/controllers/meetingtyps_controller.rb b/app/controllers/meetingtyps_controller.rb
new file mode 100644
index 0000000..b8884a1
--- /dev/null
+++ b/app/controllers/meetingtyps_controller.rb
@@ -0,0 +1,2 @@
+class MeetingtypsController < ApplicationController
+end
diff --git a/app/helpers/meetings_helper.rb b/app/helpers/meetings_helper.rb
new file mode 100644
index 0000000..bdf5280
--- /dev/null
+++ b/app/helpers/meetings_helper.rb
@@ -0,0 +1,2 @@
+module MeetingsHelper
+end
diff --git a/app/helpers/meetingtyps_helper.rb b/app/helpers/meetingtyps_helper.rb
new file mode 100644
index 0000000..544f299
--- /dev/null
+++ b/app/helpers/meetingtyps_helper.rb
@@ -0,0 +1,2 @@
+module MeetingtypsHelper
+end
diff --git a/app/models/ability.rb b/app/models/ability.rb
index 1cc4986..ef57a19 100755
--- a/app/models/ability.rb
+++ b/app/models/ability.rb
@@ -116,7 +116,12 @@ class Ability
cannot :delete, Neuigkeit
end
-
+ # Calendar
+ if( user.has_role?("fetuser") || user.has_role?("fetadmin"))
+ can :manage, Document
+ can :manage, Meeting
+ can :manage, Meetingtyp
+ end
# Rechteverwaltung Kalender
diff --git a/app/models/document.rb b/app/models/document.rb
index e7fa2f7..f0fa762 100644
--- a/app/models/document.rb
+++ b/app/models/document.rb
@@ -1,3 +1,9 @@
class Document < ActiveRecord::Base
attr_accessible :etherpadkey, :name, :parent, :text, :typ
+ belongs_to :parent, :polymorphic => true
+ validate :name, :length=>{minimum:3}
+ validate :text, :presence=>true
+ validate :typ, :presence=>true
+ validate :parent, :presence=>true
+
end
diff --git a/app/models/meeting.rb b/app/models/meeting.rb
new file mode 100644
index 0000000..ccab3c0
--- /dev/null
+++ b/app/models/meeting.rb
@@ -0,0 +1,32 @@
+class Meeting < ActiveRecord::Base
+ belongs_to :parent, :polymorphic=>true
+ belongs_to :meetingtyp
+ attr_accessible :desc, :intern, :name
+ has_one :protocol, :class_name=>'Document', :conditions=>{:typ=>10}, :as=>:parent
+ has_one :agenda , :as=>:parent,:conditions=>{:typ=>11}, :class_name=>'Document'
+ validate :agenda, :presence=>true
+ validate :protocol, :presence=>true
+ has_one :calentry, :as=>:object
+ def public?
+ ! (self.intern)
+ end
+ def create_protocol
+ if self.protocol.nil?
+ d=Document.new
+ d.typ=10
+ d.name="Protokoll"
+ d.save
+ self.protocol=d
+ end
+
+ end
+ def create_agenda
+ if self.agenda.nil?
+ d=Document.new
+ d.typ=11
+ d.name="Agenda"
+ d.save
+ self.agenda=d
+ end
+ end
+end
diff --git a/app/models/meetingtyp.rb b/app/models/meetingtyp.rb
new file mode 100644
index 0000000..f610170
--- /dev/null
+++ b/app/models/meetingtyp.rb
@@ -0,0 +1,3 @@
+class Meetingtyp < ActiveRecord::Base
+ attr_accessible :agendaintern, :desc, :name, :protocolintern
+end
diff --git a/app/models/thema.rb b/app/models/thema.rb
index 997b88c..ade616e 100644
--- a/app/models/thema.rb
+++ b/app/models/thema.rb
@@ -21,6 +21,8 @@ include Rails.application.routes.url_helpers
validates :themengruppe, :presence => true
validates :title, :presence => true
validates :text, :presence => true
+ has_many :meetings, :as=>:parent
+ has_many :documents, :as=>:parent
scope :public, where(:isdraft=>false).includes(:themengruppe).where("themengruppen.public"=>true)
default_scope order("themen.priority").reverse_order
scope :search, ->(query) {where("themen.text like ? or themen.title like ?", "%#{query}%", "%#{query}%")}
diff --git a/app/views/attachments/_attachment.html.erb b/app/views/attachments/_attachment.html.erb
index 0045f70..2b45971 100644
--- a/app/views/attachments/_attachment.html.erb
+++ b/app/views/attachments/_attachment.html.erb
@@ -1,4 +1,4 @@
- <% data_ext = attachment.datei.file.extension.downcase %>
+ <% data_ext = attachment.datei.file.try(:extension).try(:downcase) %>
<% if (!["jpg","png","jpeg"].find_index(data_ext).nil?) %>
diff --git a/app/views/documents/_document.html.erb b/app/views/documents/_document.html.erb
index d76b082..c92c245 100644
--- a/app/views/documents/_document.html.erb
+++ b/app/views/documents/_document.html.erb
@@ -1,8 +1,8 @@
<% image_tag("/iconnavy/time.png") %>
- <% fa_icon("calendar 2x") %>
+ <%= fa_icon("file-text 2x") %>
- <%= document.title %>
+ <%= document.name %>
<%= link_to "edit", edit_document_path(document),:remote=>true if can? :edit, document %>
<%= link_to 'Delete', document, method: :delete, data: { confirm: 'Are you sure?' } , remote: true if can? :delete, document %>
diff --git a/app/views/documents/_nested_form.html.erb b/app/views/documents/_nested_form.html.erb
index 8421935..6e045f3 100644
--- a/app/views/documents/_nested_form.html.erb
+++ b/app/views/documents/_nested_form.html.erb
@@ -1,15 +1,9 @@
<%= fa_icon("calendar 2x") %>
<%= notice %>
-<%= semantic_form_for @calentry, :remote=>true, :html=>{:class=>"inline"} do |f| %>
+<%= semantic_form_for @document, :remote=>true, :html=>{:class=>""} do |f| %>
- <%= f.input :start, :as => :datetimepicker %>
- <%= f.input :dauer , :as => :string, :append=>"h" %>
- <%= f.input :object_id , :as => :hidden %>
- <%= f.input :object_type , :as => :hidden %>
-<%= f.input :typ , :as => :hidden %>
-
-
- <%= f.action :submit, :as => :input_ %>
+ <%= f.input :name %>
+ <%= f.action :submit, :as => :input_ %>
<% end %>
diff --git a/app/views/meetings/_meeting.html.erb b/app/views/meetings/_meeting.html.erb
new file mode 100644
index 0000000..93d6943
--- /dev/null
+++ b/app/views/meetings/_meeting.html.erb
@@ -0,0 +1,8 @@
+
+
Meeting: <%= meeting.name %>
+<%= render meeting.calentry %>
+<%= link_to "Agenda" , create_agenda_meeting_path(meeting), :remote=>true %>
+<%= link_to "Protokoll" , create_protocol_meeting_path(meeting),:remote=>true %>
+<%= render meeting.agenda unless meeting.agenda.nil? %>
+<%= render meeting.protocol unless meeting.protocol.nil? %>
+
diff --git a/app/views/meetings/show.js.erb b/app/views/meetings/show.js.erb
new file mode 100644
index 0000000..24d02dc
--- /dev/null
+++ b/app/views/meetings/show.js.erb
@@ -0,0 +1 @@
+$("#meeting_<%= @meeting.id %>").replaceWith("<%=escape_javascript( render :partial=>"meeting", :object=>@meeting)%>");
diff --git a/app/views/themen/_small.html.erb b/app/views/themen/_small.html.erb
index cc9ad4a..ef43568 100644
--- a/app/views/themen/_small.html.erb
+++ b/app/views/themen/_small.html.erb
@@ -8,8 +8,8 @@
<% if small.isdraft %>
<%= I18n.t("thema.isdraft") %>
-<% end %>
-<%= raw(small.text) %>
+<% end %>
+<%= raw(small.text) %>
<%= raw("FAQs:") unless small.fragen.empty? %>
@@ -20,6 +20,23 @@
<%= raw(frage.text) %>
<% end %>
+<% unless small.meetings.empty? %>
+Treffen/Sitzungen
+<% small.meetings.each do |m| %>
+<%= render m %>
+
+<% end%>
+<% end%>
+
+
+<% unless small.documents.empty? %>
+Dokumente
+<% small.documents.each do |d| %>
+<%= render d %>
+
+<% end%>
+<% end%>
+
<% unless small.hideattachment %>
<%= render partial: "themen/attachment_list", object: small.attachments, locals:{editor: false} unless small.attachments.empty? %>
<% end %>
diff --git a/config/routes.rb b/config/routes.rb
index a7c5835..e5263fc 100755
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -159,10 +159,18 @@ Fetsite::Application.routes.draw do
end
resources :attachments
end
-
+
resources :calendars
get 'verwalten/calendars', :controller=>:calendars, :action=>:verwalten, :as=>'calendars_verwalten'
resources :calentries
+ resources :documents
+ resources :meetings do
+ member do
+ get :create_protocol
+ get :create_agenda
+ end
+ end
+ resources :meetingtyps
end
end
root :to => 'home#index'
diff --git a/db/migrate/20141119200355_create_documents.rb b/db/migrate/20141119200355_create_documents.rb
index fc4d30e..027c7e9 100644
--- a/db/migrate/20141119200355_create_documents.rb
+++ b/db/migrate/20141119200355_create_documents.rb
@@ -1,13 +1,15 @@
class CreateDocuments < ActiveRecord::Migration
def change
create_table :documents do |t|
- t.integer :typ
+ t.integer :typ, :default=>0
t.string :name
t.text :text
- t.string :etherpadkey
- t.references{polymorphic} :parent
-
+ t.string :etherpadkey, :default=>""
+ t.references :parent,:polymorphic=>{:default=>'Thema'}
t.timestamps
end
+ add_index :documents, :parent_id
+ add_index :documents, :parent_type
+
end
end
diff --git a/db/migrate/20141126115125_create_meetingtyps.rb b/db/migrate/20141126115125_create_meetingtyps.rb
new file mode 100644
index 0000000..02f1111
--- /dev/null
+++ b/db/migrate/20141126115125_create_meetingtyps.rb
@@ -0,0 +1,11 @@
+class CreateMeetingtyps < ActiveRecord::Migration
+ def change
+ create_table :meetingtyps do |t|
+ t.string :name
+ t.text :desc
+ t.boolean :agendaintern, :default=>false
+ t.boolean :protocolintern, :default=>true
+ t.timestamps
+ end
+ end
+end
diff --git a/db/migrate/20141126120610_create_meetings.rb b/db/migrate/20141126120610_create_meetings.rb
new file mode 100644
index 0000000..8c23b80
--- /dev/null
+++ b/db/migrate/20141126120610_create_meetings.rb
@@ -0,0 +1,15 @@
+class CreateMeetings < ActiveRecord::Migration
+ def change
+ create_table :meetings do |t|
+ t.string :name
+ t.text :desc
+ t.boolean :intern, :default=>true
+ t.references :parent, :polymorphic=>{:default=>'Thema'}
+ t.references :meetingtyp
+ t.timestamps
+ end
+ add_index :meetings, :parent_id
+ add_index :meetings, :parent_type
+ add_index :meetings, :meetingtyp_id
+ end
+end
diff --git a/spec/controllers/meetings_controller_spec.rb b/spec/controllers/meetings_controller_spec.rb
new file mode 100644
index 0000000..7a4bfca
--- /dev/null
+++ b/spec/controllers/meetings_controller_spec.rb
@@ -0,0 +1,5 @@
+require 'rails_helper'
+
+RSpec.describe MeetingsController, :type => :controller do
+
+end
diff --git a/spec/controllers/meetingtyps_controller_spec.rb b/spec/controllers/meetingtyps_controller_spec.rb
new file mode 100644
index 0000000..4c5b03c
--- /dev/null
+++ b/spec/controllers/meetingtyps_controller_spec.rb
@@ -0,0 +1,5 @@
+require 'rails_helper'
+
+RSpec.describe MeetingtypsController, :type => :controller do
+
+end
diff --git a/spec/factories/meetings.rb b/spec/factories/meetings.rb
new file mode 100644
index 0000000..8e0726f
--- /dev/null
+++ b/spec/factories/meetings.rb
@@ -0,0 +1,10 @@
+FactoryGirl.define do
+ factory :meeting do
+ name "MyString"
+desc "MyText"
+parent nil
+intern false
+meetingtyp nil
+ end
+
+end
diff --git a/spec/factories/meetingtyps.rb b/spec/factories/meetingtyps.rb
new file mode 100644
index 0000000..6538467
--- /dev/null
+++ b/spec/factories/meetingtyps.rb
@@ -0,0 +1,9 @@
+FactoryGirl.define do
+ factory :meetingtyp do
+ name "MyString"
+desc "MyText"
+agendaintern false
+protocolintern false
+ end
+
+end
diff --git a/spec/helpers/meetings_helper_spec.rb b/spec/helpers/meetings_helper_spec.rb
new file mode 100644
index 0000000..3276f26
--- /dev/null
+++ b/spec/helpers/meetings_helper_spec.rb
@@ -0,0 +1,15 @@
+require 'rails_helper'
+
+# Specs in this file have access to a helper object that includes
+# the MeetingsHelper. For example:
+#
+# describe MeetingsHelper do
+# describe "string concat" do
+# it "concats two strings with spaces" do
+# expect(helper.concat_strings("this","that")).to eq("this that")
+# end
+# end
+# end
+RSpec.describe MeetingsHelper, :type => :helper do
+ pending "add some examples to (or delete) #{__FILE__}"
+end
diff --git a/spec/helpers/meetingtyps_helper_spec.rb b/spec/helpers/meetingtyps_helper_spec.rb
new file mode 100644
index 0000000..34541e2
--- /dev/null
+++ b/spec/helpers/meetingtyps_helper_spec.rb
@@ -0,0 +1,15 @@
+require 'rails_helper'
+
+# Specs in this file have access to a helper object that includes
+# the MeetingtypsHelper. For example:
+#
+# describe MeetingtypsHelper do
+# describe "string concat" do
+# it "concats two strings with spaces" do
+# expect(helper.concat_strings("this","that")).to eq("this that")
+# end
+# end
+# end
+RSpec.describe MeetingtypsHelper, :type => :helper do
+ pending "add some examples to (or delete) #{__FILE__}"
+end
diff --git a/spec/models/meeting_spec.rb b/spec/models/meeting_spec.rb
new file mode 100644
index 0000000..93d55f7
--- /dev/null
+++ b/spec/models/meeting_spec.rb
@@ -0,0 +1,5 @@
+require 'rails_helper'
+
+RSpec.describe Meeting, :type => :model do
+ pending "add some examples to (or delete) #{__FILE__}"
+end
diff --git a/spec/models/meetingtyp_spec.rb b/spec/models/meetingtyp_spec.rb
new file mode 100644
index 0000000..c55d7c0
--- /dev/null
+++ b/spec/models/meetingtyp_spec.rb
@@ -0,0 +1,5 @@
+require 'rails_helper'
+
+RSpec.describe Meetingtyp, :type => :model do
+ pending "add some examples to (or delete) #{__FILE__}"
+end