Improved tasks.
This commit is contained in:
parent
52e62f8ddb
commit
acdb331e36
29 changed files with 1186 additions and 198 deletions
|
|
@ -3,6 +3,8 @@
|
|||
//= require jquery_ujs
|
||||
//= require twitter/bootstrap
|
||||
//= require jquery.tokeninput
|
||||
//= require bootstrap-datepicker
|
||||
//= require bootstrap-datepicker.de
|
||||
//= require jquery.observe_field
|
||||
//= require jquery.fancybox-1.3.4.pack
|
||||
//= require rails.validations
|
||||
|
|
@ -91,6 +93,9 @@ $(function() {
|
|||
$('form[data-remote]').bind('ajax:beforeSend', function() {
|
||||
$(this).children('input[type="submit"]').attr('disabled', 'disabled');
|
||||
});
|
||||
|
||||
// Use bootstrap datepicker for dateinput
|
||||
$('.datepicker').datepicker({format: 'yyyy-mm-dd', weekStart: 1, language: 'de'});
|
||||
});
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
/*
|
||||
*= require bootstrap_and_overrides
|
||||
*= require foodsoft
|
||||
*= require token-input-bootstrappy
|
||||
*= require jquery.fancybox-1.3.4
|
||||
*/
|
||||
|
|
@ -30,3 +30,10 @@ body {
|
|||
//
|
||||
// Example:
|
||||
// @linkColor: #ff0000;
|
||||
|
||||
|
||||
// Bootstrap datepicker
|
||||
@import "datepicker";
|
||||
|
||||
// Custom styles
|
||||
@import "foodsoft";
|
||||
147
app/assets/stylesheets/datepicker.less
Normal file
147
app/assets/stylesheets/datepicker.less
Normal file
|
|
@ -0,0 +1,147 @@
|
|||
/*!
|
||||
* Datepicker for Bootstrap
|
||||
*
|
||||
* Copyright 2012 Stefan Petre
|
||||
* Improvements by Andrew Rowls
|
||||
* Licensed under the Apache License v2.0
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*/
|
||||
|
||||
.datepicker {
|
||||
top: 0;
|
||||
left: 0;
|
||||
padding: 4px;
|
||||
margin-top: 1px;
|
||||
.border-radius(4px);
|
||||
&:before {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
border-left: 7px solid transparent;
|
||||
border-right: 7px solid transparent;
|
||||
border-bottom: 7px solid #ccc;
|
||||
border-bottom-color: rgba(0,0,0,.2);
|
||||
position: absolute;
|
||||
top: -7px;
|
||||
left: 6px;
|
||||
}
|
||||
&:after {
|
||||
content: '';
|
||||
display: inline-block;
|
||||
border-left: 6px solid transparent;
|
||||
border-right: 6px solid transparent;
|
||||
border-bottom: 6px solid @white;
|
||||
position: absolute;
|
||||
top: -6px;
|
||||
left: 7px;
|
||||
}
|
||||
>div {
|
||||
display: none;
|
||||
}
|
||||
&.days div.datepicker-days {
|
||||
display: block;
|
||||
}
|
||||
&.months div.datepicker-months {
|
||||
display: block;
|
||||
}
|
||||
&.years div.datepicker-years {
|
||||
display: block;
|
||||
}
|
||||
table{
|
||||
margin: 0;
|
||||
}
|
||||
td,
|
||||
th{
|
||||
text-align: center;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
.border-radius(4px);
|
||||
}
|
||||
td {
|
||||
&.day:hover {
|
||||
background: @grayLighter;
|
||||
cursor: pointer;
|
||||
}
|
||||
&.old,
|
||||
&.new {
|
||||
color: @grayLight;
|
||||
}
|
||||
&.disabled,
|
||||
&.disabled:hover {
|
||||
background: none;
|
||||
color: @grayLight;
|
||||
cursor: default;
|
||||
}
|
||||
&.today,
|
||||
&.today:hover,
|
||||
&.today.disabled,
|
||||
&.today.disabled:hover {
|
||||
@todayBackground: lighten(@orange, 30%);
|
||||
.buttonBackground(@todayBackground, spin(@todayBackground, 20));
|
||||
}
|
||||
&.active,
|
||||
&.active:hover,
|
||||
&.active.disabled,
|
||||
&.active.disabled:hover {
|
||||
.buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));
|
||||
color: #fff;
|
||||
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
|
||||
}
|
||||
span {
|
||||
display: block;
|
||||
width: 23%;
|
||||
height: 54px;
|
||||
line-height: 54px;
|
||||
float: left;
|
||||
margin: 1%;
|
||||
cursor: pointer;
|
||||
.border-radius(4px);
|
||||
&:hover {
|
||||
background: @grayLighter;
|
||||
}
|
||||
&.disabled,
|
||||
&.disabled:hover {
|
||||
background:none;
|
||||
color: @grayLight;
|
||||
cursor: default;
|
||||
}
|
||||
&.active,
|
||||
&.active:hover,
|
||||
&.active.disabled,
|
||||
&.active.disabled:hover {
|
||||
.buttonBackground(@btnPrimaryBackground, spin(@btnPrimaryBackground, 20));
|
||||
color: #fff;
|
||||
text-shadow: 0 -1px 0 rgba(0,0,0,.25);
|
||||
}
|
||||
&.old {
|
||||
color: @grayLight;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
th.switch {
|
||||
width: 145px;
|
||||
}
|
||||
|
||||
thead tr:first-child th,
|
||||
tfoot tr:first-child th {
|
||||
cursor: pointer;
|
||||
&:hover{
|
||||
background: @grayLighter;
|
||||
}
|
||||
}
|
||||
/*.dow {
|
||||
border-top: 1px solid #ddd !important;
|
||||
}*/
|
||||
}
|
||||
.input-append,
|
||||
.input-prepend {
|
||||
&.date {
|
||||
.add-on i {
|
||||
display: block;
|
||||
cursor: pointer;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2,4 +2,12 @@ section {
|
|||
padding-bottom: 30px;
|
||||
margin-bottom: 30px;
|
||||
border-bottom: 1px solid #d3d3d3;
|
||||
}
|
||||
|
||||
.accepted {
|
||||
color: #468847;
|
||||
}
|
||||
|
||||
.unaccepted {
|
||||
color: #B94A48;
|
||||
}
|
||||
|
|
@ -72,14 +72,14 @@ class TasksController < ApplicationController
|
|||
redirect_to :action => "index"
|
||||
end
|
||||
|
||||
def update_status
|
||||
Task.find(params[:id]).update_attribute("done", params[:task][:done])
|
||||
def set_done
|
||||
Task.find(params[:id]).update_attribute :done, true
|
||||
redirect_to tasks_url, :notice => "Aufgabenstatus wurde aktualisiert"
|
||||
end
|
||||
|
||||
# Shows all tasks, which are already done
|
||||
def archive
|
||||
@tasks = Task.done.paginate :page => params[:page], :per_page => 30
|
||||
@tasks = Task.done.page(params[:page]).per(@per_page)
|
||||
end
|
||||
|
||||
# shows workgroup (normal group) to edit weekly_tasks_template
|
||||
|
|
|
|||
|
|
@ -10,7 +10,8 @@ module TasksHelper
|
|||
def highlighted_required_users(task)
|
||||
unless task.enough_users_assigned?
|
||||
still_required = task.required_users - task.assignments.select { |ass| ass.accepted }.size
|
||||
"<small style='color:red;font-weight:bold'>(#{still_required})</small>".html_safe
|
||||
content_tag :span, still_required, class: 'badge badge-important',
|
||||
title: "Es fehlen #{still_required} Mitstreiterinnen!"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
5
app/inputs/date_picker_input.rb
Normal file
5
app/inputs/date_picker_input.rb
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
class DatePickerInput < SimpleForm::Inputs::StringInput
|
||||
def input
|
||||
@builder.text_field(attribute_name, input_html_options.merge({class: 'datepicker'}))
|
||||
end
|
||||
end
|
||||
|
|
@ -37,8 +37,7 @@
|
|||
- unless Message.public.empty?
|
||||
%section
|
||||
%h2 Neuste Nachrichten
|
||||
= render :partial => 'messages/messages',
|
||||
:locals => {:messages => Message.public.order('created_at DESC').limit(5), :subject_length => 70}
|
||||
= render 'messages/messages', messages: Message.public.order('created_at DESC').limit(5), pagination: false
|
||||
%p= link_to "Alle Nachrichten einsehen", messages_path
|
||||
|
||||
- if current_user.ordergroup
|
||||
|
|
|
|||
|
|
@ -1,13 +1,14 @@
|
|||
- if Message.public.count > 20
|
||||
= items_per_page
|
||||
= pagination_links_remote messages
|
||||
- if pagination
|
||||
- if Message.public.count > 20
|
||||
= items_per_page
|
||||
= pagination_links_remote messages
|
||||
|
||||
- unless messages.empty?
|
||||
%table.table.table-striped
|
||||
%tbody
|
||||
- for message in messages
|
||||
%tr
|
||||
%td= format_subject(message, subject_length)
|
||||
%td= format_subject(message, 130)
|
||||
%td= h(message.sender_name)
|
||||
%td= format_time(message.created_at)
|
||||
%td= link_to 'Antworten', new_message_path(:message => {:reply_to => message.id}), class: 'btn'
|
||||
|
|
@ -2,4 +2,4 @@
|
|||
|
||||
= link_to 'Neue Nachricht', new_message_path, class: 'btn btn-primary'
|
||||
#messages
|
||||
= render :partial => 'messages', :locals => { :messages => @messages, :subject_length => 130 }
|
||||
= render 'messages', messages: @messages, pagination: true
|
||||
|
|
@ -1,6 +1,14 @@
|
|||
- for workgroup in Workgroup.all
|
||||
%h4= link_to workgroup.name, "#", 'data-toggle-this' => "#workgroup_#{workgroup.id}"
|
||||
%ul{:style => "display:none"}[workgroup]
|
||||
- for user in workgroup.users.order("nick")
|
||||
%li= "#{user.nick} (#{user.ordergroup.try(:name)})"
|
||||
|
||||
.well.well-small
|
||||
%h4 Mitglieder der Gruppen
|
||||
#groupMembers.accordion
|
||||
- Workgroup.all.each do |workgroup|
|
||||
.accordion-group
|
||||
.accoridon-heading
|
||||
= link_to workgroup.name, "#collapse#{workgroup.id}", data: {toggle: 'collapse', parent: '#groupMembers'}
|
||||
%div{id: "collapse#{workgroup.id}", class: 'accordion-body collapse'}
|
||||
.accordion-inner
|
||||
%ul.unstyled
|
||||
- workgroup.users.includes(:groups).order('nick').each do |user|
|
||||
%li
|
||||
= user.nick
|
||||
%small (#{user.ordergroup.try(:name)})
|
||||
19
app/views/tasks/_archive_tasks.html.haml
Normal file
19
app/views/tasks/_archive_tasks.html.haml
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
- if Task.done.count > 20
|
||||
= items_per_page
|
||||
= pagination_links_remote @tasks
|
||||
|
||||
%table.table.table-striped
|
||||
%thead
|
||||
%tr
|
||||
%th Fälligkeitsdatum
|
||||
%th Betreff
|
||||
%th Verantwortliche Menschen
|
||||
%th
|
||||
%tbody
|
||||
- @tasks.each do |task|
|
||||
%tr
|
||||
%td= task.due_date unless task.due_date.nil?
|
||||
%td= link_to "#{task.name} (#{task.duration}h)", :controller => "tasks", :action => "show", :id => task
|
||||
%td
|
||||
- unless task.users.empty?
|
||||
= task.users.map(&:nick).join(", ")
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
- content_for :head do
|
||||
- content_for :javascript do
|
||||
:javascript
|
||||
$(function() {
|
||||
$("#task_user_list").tokenInput("#{users_path(:format => :json)}", {
|
||||
|
|
@ -6,10 +6,14 @@
|
|||
prePopulate: $("#task_user_list").data("pre"),
|
||||
hintText: 'Nach Nutzerin suchen',
|
||||
noResultText: 'Keine Nutzerin gefunden',
|
||||
searchingText: 'Suche ...'
|
||||
searchingText: 'Suche ...',
|
||||
theme: 'facebook'
|
||||
});
|
||||
});
|
||||
|
||||
- content_for :sidebar do
|
||||
= render "shared/workgroup_members"
|
||||
|
||||
= simple_form_for @task do |f|
|
||||
= f.input :name
|
||||
= f.input :description, as: :text, input_html: {rows: 10}
|
||||
|
|
@ -17,5 +21,8 @@
|
|||
= f.input :user_list, :as => :string, :input_html => { 'data-pre' => @task.users.map { |u| u.token_attributes }.to_json }
|
||||
= f.input :required_users
|
||||
= f.association :workgroup
|
||||
= f.input :due_date, :include_blank => true
|
||||
= f.submit
|
||||
= f.input :due_date, as: :date_picker
|
||||
= f.input :done
|
||||
.form-actions
|
||||
= f.submit class: 'btn'
|
||||
= link_to 'oder abbrechen', :back
|
||||
|
|
|
|||
|
|
@ -1,25 +1,29 @@
|
|||
%table
|
||||
%tr
|
||||
%th Fälligkeit
|
||||
%th Betreff
|
||||
%th{:colspan => '2'}
|
||||
Wer machts?
|
||||
%small (Wie viele werden noch benötigt?)
|
||||
- for task in @tasks
|
||||
- done = task.done ? " done" : ""
|
||||
%tr{:class => cycle('even','odd', :name => "tasks") + done }
|
||||
%td= format_date(task.due_date) unless task.due_date.nil?
|
||||
%td= link_to "#{task.name} (#{task.duration}h)", task_path(task)
|
||||
%td
|
||||
= task_assignments task
|
||||
= highlighted_required_users task
|
||||
%td
|
||||
- unless task.is_accepted?(@current_user)
|
||||
%span{:style => "float:left"}= button_to "Aufgabe übernehmen", :controller => "tasks", :action => "accept", :id => task
|
||||
= button_to "Aufgabe ablehnen", :controller => "tasks", :action => "reject", :id => task if task.is_assigned?(@current_user)
|
||||
- else
|
||||
- form_for :task, :url => {:action => "update_status", :id => task} do |f|
|
||||
Erledigt?
|
||||
= f.check_box :done, {:onchange => "submit()", :title => "Die Aufgabe wandert in das Archiv"}
|
||||
= "Erledigt" if task.done
|
||||
- reset_cycle("tasks")
|
||||
%table.table.table-striped
|
||||
%thead
|
||||
%tr
|
||||
%th Fälligkeit
|
||||
%th Betreff
|
||||
%th{:colspan => '2'}
|
||||
Wer machts?
|
||||
%small (Wie viele werden noch benötigt?)
|
||||
%tbody
|
||||
- tasks.each do |task|
|
||||
- done = task.done ? " done" : ""
|
||||
%tr{:class => done }
|
||||
%td= format_date(task.due_date) unless task.due_date.nil?
|
||||
%td= link_to "#{task.name} (#{task.duration}h)", task_path(task)
|
||||
%td
|
||||
= task_assignments task
|
||||
= highlighted_required_users task
|
||||
%td
|
||||
- if !task.is_accepted?(current_user)
|
||||
= link_to "Aufgabe übernehmen", accept_task_path(task), method: :post, class: 'btn'
|
||||
= link_to "Aufgabe ablehnen", reject_task_path(task), method: :post, class: 'btn' if task.is_assigned?(current_user)
|
||||
- elsif !task.done
|
||||
= link_to set_done_task_path(task), method: :post, class: 'btn',
|
||||
title: 'Aufgabe als erledigt markieren' do
|
||||
%i.icon-ok
|
||||
Erledigt?
|
||||
- else
|
||||
%i.icon-ok
|
||||
Erledigt
|
||||
|
|
@ -1,19 +1,10 @@
|
|||
#start_nav{:style => "float:right"}
|
||||
%h2 Aufgabenmenü
|
||||
%ul
|
||||
%li
|
||||
Aktionen
|
||||
%ul
|
||||
%li= link_to "Neue Aufgabe erstellen", :action => "new"
|
||||
%li
|
||||
Seiten
|
||||
%ul
|
||||
%li= link_to "Meine Aufgaben", user_tasks_path
|
||||
%li= link_to "Alle Aufgaben", tasks_path
|
||||
%li= link_to "Erledigt Aufgaben (Archiv)", archive_tasks_path
|
||||
|
||||
%li
|
||||
Gruppenaufgaben
|
||||
%ul
|
||||
- for group in Workgroup.all
|
||||
%li= link_to group.name, workgroup_tasks_path(workgroup_id: group.id)
|
||||
%p= link_to "Neue Aufgabe erstellen", new_task_path, class: 'btn btn-primary'
|
||||
.well.well-small
|
||||
%ul.nav.nav-list
|
||||
%li.nav-header Seiten
|
||||
%li= link_to "Meine Aufgaben", user_tasks_path
|
||||
%li= link_to "Alle Aufgaben", tasks_path
|
||||
%li= link_to "Erledigte Aufgaben (Archiv)", archive_tasks_path
|
||||
%li.nav-header Gruppenaufgaben
|
||||
- for group in Workgroup.all
|
||||
%li= link_to group.name, workgroup_tasks_path(workgroup_id: group.id)
|
||||
|
|
@ -1,20 +1,5 @@
|
|||
- title "Aufgabenarchiv"
|
||||
= render :partial => "nav"
|
||||
- content_for :sidebar do
|
||||
= render 'nav'
|
||||
|
||||
= will_paginate @orders
|
||||
%br/
|
||||
%table{:style => "width: 76%"}
|
||||
%tr
|
||||
%th Fälligkeitsdatum
|
||||
%th Betreff
|
||||
%th Verantwortliche Menschen
|
||||
%th
|
||||
- for task in @tasks
|
||||
%tr{:class => cycle('even','odd')}
|
||||
%td= task.due_date unless task.due_date.nil?
|
||||
%td= link_to "#{task.name} (#{task.duration}h)", :controller => "tasks", :action => "show", :id => task
|
||||
%td
|
||||
- unless task.users.empty?
|
||||
= task.users.map(&:nick).join(", ")
|
||||
%p
|
||||
= link_to_top
|
||||
#tasks= render 'archive_tasks'
|
||||
|
|
|
|||
1
app/views/tasks/archive.js.erb
Normal file
1
app/views/tasks/archive.js.erb
Normal file
|
|
@ -0,0 +1 @@
|
|||
$('#tasks').html('<%= escape_javascript(render("archive_tasks")) %>');
|
||||
|
|
@ -1,8 +1,3 @@
|
|||
- title "Aufgabe bearbeiten"
|
||||
|
||||
#form{:style => "float:left; width:39em"}
|
||||
= render('form')
|
||||
#workgroup_members{:style => "padding-left:41em"}
|
||||
%h3 Mitglieder der Gruppe
|
||||
#list
|
||||
= render :partial => "shared/workgroup_members"
|
||||
= render 'form'
|
||||
|
|
@ -1,21 +1,19 @@
|
|||
- title "Aufgabenübersicht"
|
||||
= render :partial => "nav"
|
||||
- title "Aufgaben"
|
||||
- content_for :sidebar do
|
||||
= render 'nav'
|
||||
|
||||
- unless @non_group_tasks.empty?
|
||||
.left_column{:style => "width:75%"}
|
||||
- @tasks = @non_group_tasks
|
||||
.box_title
|
||||
%h2 Aufgaben für alle!
|
||||
.column_content
|
||||
= render :partial => "list"
|
||||
%section
|
||||
%h3 Aufgaben für alle!
|
||||
= render 'list', tasks: @non_group_tasks
|
||||
|
||||
|
||||
- for @group in @groups
|
||||
- @tasks = @group.open_tasks
|
||||
- unless @tasks.empty?
|
||||
.left_column{:style => "width:75%"}
|
||||
.box_title
|
||||
%h2= link_to @group.name, :action => 'workgroup', :id => @group
|
||||
.column_content
|
||||
= render :partial => "list"
|
||||
- for group in @groups
|
||||
- tasks = group.open_tasks
|
||||
- unless tasks.empty?
|
||||
%section
|
||||
%h3
|
||||
= group.name
|
||||
%small= link_to "Gruppenaufgaben anzeigen", workgroup_tasks_path(group)
|
||||
= render 'list', tasks: tasks
|
||||
= link_to_top
|
||||
|
|
@ -1,10 +1,3 @@
|
|||
- title "Neue Aufgabe erstellen"
|
||||
|
||||
#form{:style => "float:left; width:39em"}
|
||||
= render('form')
|
||||
|
||||
#workgroup_members{:style => "padding-left:41em"}
|
||||
%h3 Mitglieder der Arbeitsgruppen
|
||||
%i Klicke auf den Gruppennamen um die Mitglieder zu sehen
|
||||
#list
|
||||
= render :partial => "shared/workgroup_members"
|
||||
= render 'form'
|
||||
|
|
|
|||
|
|
@ -1,38 +1,27 @@
|
|||
- title "Aufgabe im Detail"
|
||||
= render :partial => "nav"
|
||||
- content_for :sidebar do
|
||||
= render 'nav'
|
||||
|
||||
%section
|
||||
%dl.dl-horizontal
|
||||
%dt Name
|
||||
%dd= @task.name
|
||||
%dt Beschreibung
|
||||
%dd= simple_format(@task.description)
|
||||
%dt Fälligkeitsdatum
|
||||
%dd= format_date(@task.due_date)
|
||||
%dt Dauer in Stunden
|
||||
%dd= @task.duration
|
||||
%dt Verantwortliche Menschen
|
||||
%dd= task_assignments(@task)
|
||||
%dt Arbeitsgruppe
|
||||
%dd
|
||||
- if @task.workgroup
|
||||
= link_to @task.workgroup.name, workgroup_tasks_path(workgroup_id: @task.workgroup_id)
|
||||
|
||||
#task{:style => 'width:70%'}
|
||||
%table
|
||||
%tr
|
||||
%td{:style => "width: 10em"} Name
|
||||
%td
|
||||
%b= @task.name
|
||||
%tr
|
||||
%td{:style => "vertical-align:top;"} Beschreibung
|
||||
%td= simple_format(@task.description)
|
||||
%tr
|
||||
%td Fälligkeitsdatum
|
||||
%td= format_date(@task.due_date)
|
||||
%tr
|
||||
%td Dauer in Stunden
|
||||
%td= @task.duration
|
||||
%tr
|
||||
%td Verantwortliche Menschen
|
||||
%td= task_assignments(@task)
|
||||
%tr
|
||||
%td Arbeitsgruppe
|
||||
%td
|
||||
- if @task.workgroup
|
||||
= link_to @task.workgroup.name, workgroup_tasks_path(workgroup_id: @task.workgroup_id)
|
||||
|
||||
%tr
|
||||
%td{:colspan => "2"}
|
||||
%div{:style => "float:left"} Als erledigt markieren
|
||||
- form_for :task, :url => {:action => "update_status", :id => @task} do |f|
|
||||
= f.check_box :done, {:onchange => "submit()", :title => "Die Aufgabe wandert in das Archiv"}
|
||||
|
||||
|
||||
%p
|
||||
= link_to "Bearbeiten", edit_task_path(@task)
|
||||
|
|
||||
= link_to "Löschen", task_path(@task), :method => :delete, :confirm => "Die Aufgabe wirklich löschen?"
|
||||
- unless @task.done?
|
||||
= link_to 'Als erledigt markieren', set_done_task_path(@task), method: :post, class: 'btn'
|
||||
= link_to "Bearbeiten", edit_task_path(@task), class: 'btn'
|
||||
= link_to "Löschen", task_path(@task), :method => :delete, :confirm => "Die Aufgabe wirklich löschen?",
|
||||
class: 'btn btn-danger'
|
||||
|
|
|
|||
|
|
@ -1,27 +1,20 @@
|
|||
- title "Meine Aufgaben"
|
||||
= render :partial => "nav"
|
||||
- content_for :sidebar do
|
||||
= render 'nav'
|
||||
|
||||
- unless @unaccepted_tasks.empty?
|
||||
%section
|
||||
%h3 Offene Aufgaben
|
||||
= render 'list', tasks: @unaccepted_tasks
|
||||
|
||||
%section
|
||||
%h3 Anstehende Aufgaben
|
||||
- unless @accepted_tasks.empty?
|
||||
= render 'list', tasks: @accepted_tasks
|
||||
- else
|
||||
Nichts zu tun?
|
||||
= link_to "Hier", tasks_path
|
||||
gibt es bestimmt Arbeit.
|
||||
%br/
|
||||
= link_to_top
|
||||
|
||||
- @tasks = @unaccepted_tasks
|
||||
- unless @tasks.empty?
|
||||
.left_column{:style => "width:75%"}
|
||||
.box_title
|
||||
%h2 Offene Aufgaben
|
||||
.column_content
|
||||
= render :partial => "list"
|
||||
|
||||
|
||||
.left_column{:style => "width:75%"}
|
||||
.box_title
|
||||
%h2 Anstehende Aufgaben
|
||||
.column_content
|
||||
- @tasks = @accepted_tasks
|
||||
- unless @tasks.empty?
|
||||
= render :partial => "list"
|
||||
- else
|
||||
Nichts zu tun?
|
||||
= link_to "Hier", :action => "index"
|
||||
gibt es bestimmt Arbeit.
|
||||
%br/
|
||||
= link_to_top
|
||||
|
||||
|
||||
|
|
@ -1,27 +1,22 @@
|
|||
%h1
|
||||
Aufgaben verwalten für
|
||||
= @group.name
|
||||
= render :partial => "nav"
|
||||
- title "Aufgaben für #{@group.name}"
|
||||
- content_for :sidebar do
|
||||
= render 'nav'
|
||||
|
||||
.left_column{:style => "width:45em"}
|
||||
.box_title
|
||||
%h2 Wöchentliche Aufgaben verwalten
|
||||
.column_content
|
||||
- if @group.weekly_task
|
||||
%p Jeden <b>#{weekday(@group.weekday)}</b> hat diese Arbeitsgruppe folgenden Job: <b>#{@group.task_name}</b>
|
||||
%p Die Wochenaufgaben werden von der Foodsoft automatisch erstellt. Eintragen müsst Ihr Euch aber selber.
|
||||
- else
|
||||
Noch keine Wochenaufgaben angelegt.
|
||||
- if @current_user.member_of?(@group) or @current_user.role_admin?
|
||||
= link_to "Wochenaufgaben bearbeiten", edit_foodcoop_workgroup_path(@group)
|
||||
%section.well
|
||||
%h3 Wöchentliche Aufgaben
|
||||
- if @group.weekly_task
|
||||
%p Jeden <b>#{weekday(@group.weekday)}</b> hat diese Arbeitsgruppe folgenden Job: <b>#{@group.task_name}</b>
|
||||
%p Die Wochenaufgaben werden von der Foodsoft automatisch erstellt. Eintragen müsst Ihr Euch aber selber.
|
||||
- else
|
||||
Noch keine Wochenaufgaben angelegt.
|
||||
|
||||
.left_column{:style => "width:75%"}
|
||||
.box_title
|
||||
%h2 Alle Aufgaben der Gruppe
|
||||
.column_content
|
||||
- @tasks = @group.open_tasks
|
||||
= render :partial => "list"
|
||||
%br/
|
||||
= link_to_top
|
||||
- if @current_user.member_of?(@group) or @current_user.role_admin?
|
||||
= link_to "Wöchentliche Aufgaben anpassen", edit_foodcoop_workgroup_path(@group), class: 'btn'
|
||||
|
||||
%section
|
||||
%h3 Alle Aufgaben der Gruppe
|
||||
= render 'list', tasks: @group.open_tasks
|
||||
%br/
|
||||
= link_to_top
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue