wording

wording

git-svn-id: e70f47238a868777ecefe75ba01929cffb2d8127@628 d8b24053-1f83-4035-b5c3-ce8b92cd91ad

Ubuntu-Derivate

Communtu setzt auf einer Ubuntu-Basisinstallation auf.
Es gibt nun eine ganze Reihe von <%= link_to 'Ubuntu-Derivaten', 'http://wiki.ubuntuusers.de/Was_ist_Linux?#Was-sind-Derivate-einer-Distribution', :target => '_blank'  %>, und viele Ubuntu-Nutzer fragen sich,
ob sie statt Ubuntu lieber ein Derivat benutzen sollten.
Die Antwort ist: meistens fährt man mit dem Standard-Ubuntu ganz gut, denn
Communtu erlaubt, die Derivate auf einfache Weise nachzuinstallieren.
Allerdings ist das nicht bei allen Derivaten gleich sinnvoll.

Alle Derivate können unter der <%= link_to 'Installations-Feinauswahl', user_path(current_user) + "/user_profile/refine" %>
unter der Kategorie "Derivate" zur Installation ausgewählt werden.
Ebenso kannst du dort nachgucken, aus welchen Paketen ein Derivat besteht.

Über Communtu sinnvoll nachinstallierbare Derivate:

<%= link_to 'Ubuntu Studio', 'http://wiki.ubuntuusers.de/Ubuntu_Studio', :target => '_blank' %> - Ubuntu Multimedie-Edition.
Sie wird bei Communtu mitinstalliert, wenn du bei Audio, Film und/oder Grafik/Design "erweitert" anwählst.

<%= link_to 'Medibuntu', 'http://medibuntu.org', :target => '_blank' %> stellt Multimedia-Paketquellen bereit, die aus rechtlichen Gründen nicht von Ubuntu selbst angeboten wird. Medibuntu wird bei Communtu mit berücksichtigt (z.B. bei Audio und Film).

<%= link_to 'Mythbuntu', 'http://www.mythbuntu.org/', :target => '_blank' %> - der PC wird zum Videorekorder. Bei Film "Freak" auswählen, und es wird mitinstalliert. Empfohlen: CPU mit 2 GHz, 1024 MByte RAM, 10 GByte Festplattenplatz für das Frontend, 80+ GByte für das Backend, eine Grafikkarte mit 128 MByte RAM mit TV-Ausgang und eine unterstützte TV-Karte.

<%= link_to 'Edubuntu', 'http://www.edubuntu.org/', :target => '_blank' %> - Lernsoftware. Bei "Bildung und Wissenschaft" den Level "erweitert" auswählen, und es wird mitinstalliert.

<%= link_to 'Kubuntu', 'http://wiki.ubuntuusers.de/KDE', :target => '_blank' %> ist Ubuntu mit dem KDE-Desktop.

<%= link_to 'Linux Mint', 'http://de.wikipedia.org/wiki/Linux_Mint', :target => '_blank' %> ist eine Ubuntu-Abspaltung mit eigener User-Community, die sich vor allem Benutzerfreundlichkeit auf die Fahnen schreibt.
Linux Mint ähnelt Ubuntu sehr, hat aber viele Codes, z.B. für DVDs und MP3s, schon vorinstalliert. Diese Codecs gibt es allerdings auch bei Communtu, unter Unterhaltungsmedien. Achtung! bei Communtu erst in Kürze verfügbar.

	Automatix war eine Installationshilfe, die sich großer Beliebtheit erfreute (sie wurde sogar von der New York Times empfohlen), die aber nicht ganz den Ubuntu-Programmierstandards entsprach und inzwischen nicht mehr weiterentwickelt wird.

Über Communtu nachinstallierbare Derivate, sinnvollerweise auf einer Xfce-basierten Installation (z.B. Xubuntu) aufzusetzen:

 <%= link_to 'ZevenOS', 'http://www.zevenos.com/', :target => '_blank' %> - orient an BeOS, setzt auf Schnelligkeit, Kompatibilität mit alten Rechnern und einfache Bedienung. CPU mit mindestens 200 MHZ
128 MB RAM (zum Betrieb, zur Installation werden 192 MB RAM benötigt);
2 GB freier Festplattenplatz (Empfohlen: 4 GB oder mehr);
16 MB Grafikkarte (Empfohlen: Intel GMA 9xx). Achtung! bei Communtu erst in Kürze verfügbar.

Derivate, die mit der Derivats-eigenen Installations-CD installiert werden sollten:

<%= link_to 'Xubuntu', 'http://wiki.ubuntuusers.de/Xfce', :target => '_blank' %> - mit dem schlanken Xfce als grafischer Oberfläche - besonders für ältere Rechner geeignet: 128 MByte Arbeitsspeicher und 1,5 GB auf der Festplatte reichen aus. Sollte von CD installiert werden, um wirklich eine schlanke Installation zu haben. Nachinstallationen mit Communtu möglich.

<%= link_to 'Linux MCE', 'http://de.wikipedia.org/wiki/LinuxMCE', :target => '_blank' %> - damit wird Ubuntu zum <%=link_to 'Fernsehcomputer', 'http://de.wikipedia.org/wiki/Home_Theater_Personal_Computer' %>. Aufgrund der notwendigen Treiberinstallation sollte Linux MCE direkt installiert werden, Communtu kann dann aber für die Installation weiterer Software genutzt werden.

<%= link_to 'Gobuntu', 'http://www.ubuntu.com/products/whatisubuntu/gobuntu', :target => '_blank' %> ist ein Ubuntu-Derivat komplett aus freier Software. Nur für erfahrene Nutzer geeignet. Sollte mit der Gobuntu-CD installiert werden, damit es auch wirklich nur freie Software ist. Nachinstallationen mit Communtu möglich, sinnvollerweise sollten dann im Nutzerprofil "freie Software" angewählt werden.

 <%= link_to 'Nexenta OS', 'http://de.wikipedia.org/wiki/GNU-Varianten#Nexenta_OS', :target => '_blank' %> - ersetzt den Linux-Kern durch OpenSolaris. Stellt nur eine minimale Basis an Anwendungen bereit. Die Installation weiterer Pakete bleibt dem Benutzer überlassen; hierfür kann Communtu genutzt werden.

Es gibt noch weitere Derivate zu denen wir bisher noch keine Installationsempfehlung abgeben können:

 <%= link_to 'Impi Linux', 'http://www.impi.org.za/', :target => '_blank' %> - eine afrikanische Ubuntu-Variante, die allerdings offenbar nicht übers Internet erhältlich ist.

 <%= link_to 'linex', 'http://de.wikipedia.org/wiki/LinEx', :target => '_blank' %> - öffentliche Distribution der spanischen Region Extremadura.

 <%= link_to 'U-lite', 'http://u-lite.org/', :target => '_blank' %> für ältere PCs. Sie baut auf einer LXDE Oberfläche auf.

 <%= link_to 'Ubuntu mobile', 'http://www.ubuntu.com/products/mobile', :target => '_blank' %> - für mobile Internetgeräte.

 <%= link_to 'Ubuntu ultimate', 'http://ultimateedition.info/', :target => '_blank' %> - Ubuntu mit vielen Desktop-Desgins und Programmen.

 <%= link_to 'gOS', 'http://www.thinkgos.com/', :target => '_blank' %> - spezialisiert auf Webdienste.

 <%= link_to 'OpenGEU', 'http://opengeu.intilinux.com', :target => '_blank' %> - basiert auf E17. 2D-Effekte auch ohne schnelle Grafikkarte.

 <%= link_to 'Fluxbuntu', 'http://wiki.fluxbuntu.org', :target => '_blank' %> - minimalistische schnelle Ubuntu-Version für ältere PCs.

 <%= link_to 'Ubuntu Server', 'http://wiki.ubuntuusers.de/Server_Installation', :target => '_blank' %> - Server-Version von Ubuntu, ohne grafische Oberfläche.

 <%= link_to 'Ubuntu JeOS', 'http://wiki.ubuntuusers.de/JeOS', :target => '_blank' %> - minimale Server-Version, vor allem für Virtualisierung geeignet..

 <%= link_to 'Elbuntu', 'http://e17blog.tuxfamily.org/', :target => '_blank' %> - Ubuntu mit Enlightenment als Desktopumgebung.

 <%= link_to 'nUbuntu', 'http://www.nubuntu.org/', :target => '_blank' %> - mit Fluxbox und verschiedenen Netzwerk-Sicherheitswerkzeugen .

 <%= link_to 'getDeb', 'http://www.getdeb.net', :target => '_blank' %> - Installation von Programmen und Versionen, die nicht über die offiziellen Repositories erhältlich sind.

 <%= link_to 'Ultamatix', 'http://ultamatix.com/', :target => '_blank' %> - eine Automatix für die Ultimate Edition.

Ubuntu-Derivate

Communtu setzt auf einer Ubuntu-Basisinstallation auf.
Es gibt nun eine ganze Reihe von <%= link_to 'Ubuntu-Derivaten', 'http://wiki.ubuntuusers.de/Was_ist_Linux?#Was-sind-Derivate-einer-Distribution', :target => '_blank'  %>, und viele Ubuntu-Nutzer fragen sich,
ob sie statt Ubuntu lieber ein Derivat benutzen sollten.
Die Antwort ist: meistens fährt man mit dem Standard-Ubuntu ganz gut, denn
Communtu erlaubt, die Derivate auf einfache Weise nachzuinstallieren.
Allerdings ist das nicht bei allen Derivaten gleich sinnvoll.

Alle Derivate können unter der <%= link_to 'Installations-Feinauswahl', user_path(current_user) + "/user_profile/refine" %>
unter der Kategorie "Derivate" zur Installation ausgewählt werden.
Ebenso kannst du dort nachgucken, aus welchen Paketen ein Derivat besteht.

Über Communtu sinnvoll nachinstallierbare Derivate:

<%= link_to 'Ubuntu Studio', 'http://wiki.ubuntuusers.de/Ubuntu_Studio', :target => '_blank' %> - Ubuntu Multimedie-Edition.
Sie wird bei Communtu mitinstalliert, wenn du bei Audio, Film und/oder Grafik/Design "erweitert" anwählst.

<%= link_to 'Medibuntu', 'http://medibuntu.org', :target => '_blank' %> stellt Multimedia-Paketquellen bereit, die aus rechtlichen Gründen nicht von Ubuntu selbst angeboten wird. Medibuntu wird bei Communtu mit berücksichtigt (z.B. bei Audio und Film).

<%= link_to 'Mythbuntu', 'http://www.mythbuntu.org/', :target => '_blank' %> - der PC wird zum Videorekorder. Bei Film "Freak" auswählen, und es wird mitinstalliert. Empfohlen: CPU mit 2 GHz, 1024 MByte RAM, 10 GByte Festplattenplatz für das Frontend, 80+ GByte für das Backend, eine Grafikkarte mit 128 MByte RAM mit TV-Ausgang und eine unterstützte TV-Karte.

<%= link_to 'Edubuntu', 'http://www.edubuntu.org/', :target => '_blank' %> - Lernsoftware. Bei "Bildung und Wissenschaft" den Level "erweitert" auswählen, und es wird mitinstalliert.

<%= link_to 'Kubuntu', 'http://wiki.ubuntuusers.de/KDE', :target => '_blank' %> Kubuntu ist Ubuntu mit dem KDE-Desktop.

<%= link_to 'Linux Mint', 'http://de.wikipedia.org/wiki/Linux_Mint', :target => '_blank' %> ist eine Ubuntu-Abspaltung mit eigener User-Community, die sich vor allem Benutzerfreundlichkeit auf die Fahnen schreibt.
Linux Mint ähnelt Ubuntu sehr, hat aber viele Codes, z.B. für DVDs und MP3s, schon vorinstalliert. Diese Codecs gibt es allerdings auch bei Communtu, unter Unterhaltungsmedien. Achtung! bei Communtu erst in Kürze verfügbar.

	Automatix war eine Installationshilfe, die sich großer Beliebtheit erfreute (sie wurde sogar von der New York Times empfohlen), die aber nicht ganz den Ubuntu-Programmierstandards entsprach und inzwischen nicht mehr weiterentwickelt wird.

Über Communtu nachinstallierbare Derivate, sinnvollerweise auf einer Xfce-basierten Installation (z.B. Xubuntu) aufzusetzen:

 <%= link_to 'ZevenOS', 'http://www.zevenos.com/', :target => '_blank' %> - orient an BeOS, setzt auf Schnelligkeit, Kompatibilität mit alten Rechnern und einfache Bedienung. CPU mit mindestens 200 MHZ
128 MB RAM (zum Betrieb, zur Installation werden 192 MB RAM benötigt);
2 GB freier Festplattenplatz (Empfohlen: 4 GB oder mehr);
16 MB Grafikkarte (Empfohlen: Intel GMA 9xx). Achtung! bei Communtu erst in Kürze verfügbar.

Derivate, die mit der Derivats-eigenen Installations-CD installiert werden sollten:

<%= link_to 'Xubuntu', 'http://wiki.ubuntuusers.de/Xfce', :target => '_blank' %> - mit dem schlanken Xfce als grafischer Oberfläche - besonders für ältere Rechner geeignet: 128 MByte Arbeitsspeicher und 1,5 GB auf der Festplatte reichen aus. Sollte von CD installiert werden, um wirklich eine schlanke Installation zu haben. Nachinstallationen mit Communtu möglich.

<%= link_to 'Linux MCE', 'http://de.wikipedia.org/wiki/LinuxMCE', :target => '_blank' %> - damit wird Ubuntu zum <%=link_to 'Fernsehcomputer', 'http://de.wikipedia.org/wiki/Home_Theater_Personal_Computer' %>. Aufgrund der notwendigen Treiberinstallation sollte Linux MCE direkt installiert werden, Communtu kann dann aber für die Installation weiterer Software genutzt werden.

<%= link_to 'Gobuntu', 'http://www.ubuntu.com/products/whatisubuntu/gobuntu', :target => '_blank' %> ist ein Ubuntu-Derivat komplett aus freier Software. Nur für erfahrene Nutzer geeignet. Sollte mit der Gobuntu-CD installiert werden, damit es auch wirklich nur freie Software ist. Nachinstallationen mit Communtu möglich, sinnvollerweise sollten dann im Nutzerprofil "freie Software" angewählt werden.

 <%= link_to 'Nexenta OS', 'http://de.wikipedia.org/wiki/GNU-Varianten#Nexenta_OS', :target => '_blank' %> - ersetzt den Linux-Kern durch OpenSolaris. Stellt nur eine minimale Basis an Anwendungen bereit. Die Installation weiterer Pakete bleibt dem Benutzer überlassen; hierfür kann Communtu genutzt werden.

Es gibt noch weitere Derivate zu denen wir bisher noch keine Installationsempfehlung abgeben können:

 <%= link_to 'Impi Linux', 'http://www.impi.org.za/', :target => '_blank' %> - eine afrikanische Ubuntu-Variante, die allerdings offenbar nicht übers Internet erhältlich ist.

 <%= link_to 'linex', 'http://de.wikipedia.org/wiki/LinEx', :target => '_blank' %> - öffentliche Distribution der spanischen Region Extremadura.

 <%= link_to 'U-lite', 'http://u-lite.org/', :target => '_blank' %> für ältere PCs. Sie baut auf einer LXDE Oberfläche auf.

 <%= link_to 'Ubuntu mobile', 'http://www.ubuntu.com/products/mobile', :target => '_blank' %> - für mobile Internetgeräte.

 <%= link_to 'Ubuntu ultimate', 'http://ultimateedition.info/', :target => '_blank' %> - Ubuntu mit vielen Desktop-Desgins und Programmen.

 <%= link_to 'gOS', 'http://www.thinkgos.com/', :target => '_blank' %> - spezialisiert auf Webdienste.

 <%= link_to 'OpenGEU', 'http://opengeu.intilinux.com', :target => '_blank' %> - basiert auf E17. 2D-Effekte auch ohne schnelle Grafikkarte.

 <%= link_to 'Fluxbuntu', 'http://wiki.fluxbuntu.org', :target => '_blank' %> - minimalistische schnelle Ubuntu-Version für ältere PCs.

 <%= link_to 'Ubuntu Server', 'http://wiki.ubuntuusers.de/Server_Installation', :target => '_blank' %> - Server-Version von Ubuntu, ohne grafische Oberfläche.

 <%= link_to 'Ubuntu JeOS', 'http://wiki.ubuntuusers.de/JeOS', :target => '_blank' %> - minimale Server-Version, vor allem für Virtualisierung geeignet..

 <%= link_to 'Elbuntu', 'http://e17blog.tuxfamily.org/', :target => '_blank' %> - Ubuntu mit Enlightenment als Desktopumgebung.

 <%= link_to 'nUbuntu', 'http://www.nubuntu.org/', :target => '_blank' %> - mit Fluxbox und verschiedenen Netzwerk-Sicherheitswerkzeugen .

 <%= link_to 'getDeb', 'http://www.getdeb.net', :target => '_blank' %> - Installation von Programmen und Versionen, die nicht über die offiziellen Repositories erhältlich sind.

 <%= link_to 'Ultamatix', 'http://ultamatix.com/', :target => '_blank' %> - eine Automatix für die Ultimate Edition.


Remove erronous end statement from quickadd form

<%= error_messages_for 'task' %>
<%
  perms = {}
  ['comment', 'edit', 'reassign', 'prioritize', 'close', 'milestone'].each do |p|
    if @task.project_id.to_i == 0 || current_user.can?( @task.project, p )
      perms[p] = {}
    else
      perms[p] = { :disabled => 'disabled' }
    end
  end

%>

<% form_remote_tag :url => { :action => 'create_ajax' } ,
       :loading => "Element.show('loading');",
       :complete => "Element.hide('loading');",
       :html => { :id => 'quick-add-form' } do
%>

      <%=_ 'Summary' %>
<%= text_field 'task', 'name', { :size => 17, :maxlength => 200 }.merge( perms['edit'] )  %>

      <% if @task.project_id > 0
            selected_project = @task.project_id
         elsif session[:last_project_id].to_i > 0
            selected_project = session[:last_project_id].to_i
         elsif session[:filter_project].to_i > 0
            selected_project = session[:filter_project].to_i
         else
            selected_project = current_user.projects.find(:first, :order => 'name').id
         end

         @project = current_user.projects.find(selected_project) rescue current_user.projects.find(:first,:order => 'name').id
	 selected_project = @project.id

      %>
      <%=_ 'Project' %>

      <select name="task[project_id]" id="task_project_id" <%= "disabled=\"disabled\"" unless perms['reassign'].empty? %>>
      <% @clients = Customer.find(:all, :conditions => ["company_id = ?", current_user.company_id], :order => "name") %>
      <% @clients.each do |c| %>
        <% @client_projects = current_user.projects.find(:all, :conditions => ["customer_id = #{c.id} AND completed_at IS NULL"], :order => "name" ) %>
        <% if @client_projects.size > 0 %>
          <option value="" disabled="disabled" class="select_heading"><%= c.name %></option>
          <% @client_projects.each do |p| %>
            <option value="<%=p.id%>" class="select_item"<%= " selected" if p.id == selected_project%>><%= p.name %></option>
          <% end %>
        <% end %>
      <% end %>
     </select>

      <%=_ 'Milestone' %>

      <% unless @task.id.nil? %>
          <%= select 'task', 'milestone_id', [[_("[None]"), "0"]] + Milestone.find(:all, :order => 'name', :conditions => ['company_id = ? AND project_id = ? AND completed_at IS NULL', current_user.company.id, selected_project] ).collect {|c| [ c.name, c.id ] }, {}, perms['milestone'] %>

      <% else %>
          <%= select'task', 'milestone_id', [[_("[None]"), "0"]] + Milestone.find(:all, :order => 'name', :conditions => ['company_id = ? AND project_id = ? AND completed_at IS NULL', current_user.company.id, selected_project] ).collect {|c| [ c.name, c.id ] }, {:selected => session[:filter_milestone] ? session[:filter_milestone].to_i : 0}, perms['milestone'] %>

      <% end %>

<%

users = Project.find(selected_project).users.find(:all, :order => 'name' )
num = 0

resource_string = "<select id=\"task_users\" name=\"users[]\" #{"disabled=\"disabled\"" if @task.project && !current_user.can?( @task.project, 'reassign' )}><option value=\"\">[#{_('Unassigned')}]</option>" + users.collect{|us| "<option value=\"#{us.id}\">#{us.name}</option>"}.join('') + "</select>"
resource_string = resource_string.split(/\n/).join('').gsub(/'/, "\\\\\'")

owner_string = ''
owner_string = "<select name=\"users[]\" id=\"task_users\" #{"disabled=\"disabled\"" if @task.project && !current_user.can?( @task.project, 'reassign' )}><option value=\"\">[#{_('No one')}]</option>" + users.collect{|us| "<option value=\"#{us.id}\" #{"selected" if (us.id == current_user.id && @task.created_at.nil?) }>#{us.name}</option>"}.join('') + "</select>" #, perms['reassign']
  owner_string = owner_string.split(/\n/).join('').gsub(/'/, "\\\\\'")

if perms['reassign'].keys.size == 0
  owner_string = "
#{_('Assigned To')}
#{owner_string}"
  owner_string << "
"
end

%>

      <%= owner_string %>

    <%=_ 'Tags' %>
 <%= text_field 'task', 'set_tags', { :size => 17, :value => @task.tags.collect{|t| t.name}.join(', '), :autocomplete => "off" }.merge( perms['edit'] ) %>

      <%=_ 'Type' %>

        <%= select 'task', 'type_id', [[_('Task'),0],[_('New Feature'),1],[_('Defect'),2],[_('Improvement'),3]], {:selected => @task.type_id}, perms['prioritize']  %>

        <%=_ 'Priority' %>

        <%= select 'task', 'priority', [[_('Critical'),3],[_('Urgent'),2],[_('High'),1],[_('Normal'),0],[_('Low'),-1],[_('Lowest'),-2]], {:selected => @task.priority}, perms['prioritize']  %>

        <%=_ 'Severity' %>

        <%= select 'task', 'severity_id', [[_('Blocker'),3],[_('Critical'),2],[_('Major'),1],[_('Normal'),0],[_('Minor'),-1],[_('Trivial'),-2]], {:selected => @task.severity_id}, perms['prioritize']  %>

    <%=_ 'Description' %>
<%= text_area 'task', 'description', { :rows => 2, :cols => 17 }.merge( perms['edit'] )  %>

    <%=_ 'Depends on'%> #

    <% if perms['prioritize'].empty? %>
      <input name="dependencies[]" size="12" type="text" id="dependencies_input" title="<%=_("Enter task numbers, separated by commas. Type text to search.")%>" class="tooltip" >

      <%= auto_complete_field 'dependencies_input', { :url => { :action => 'dependency_targets' }, :min_chars => 1, :frequency => 0.5, :indicator => 'loading', :select => 'complete_value', :tokens => ',' } %>
    <% else %>
      <input name="dependencies[]" size="12" type="text" disabled="disabled">
    <% end %>

<% if current_user.option_tracktime.to_i == 1%>
       <%=_ 'Estimate' %>

       <%= text_field 'task', 'duration', {:size => 3, :value => (@task.duration.to_i > 0 ? worked_nice(@task.duration) : ""), :class => 'tooltip', :title => '2w 3d 1h'}.merge(perms['prioritize']) %>

<% else %>
       <%= hidden_field_tag "task[duration]", "1h" %>
<% end %>

    <%=_ 'Due Date' %>

    <% if perms['prioritize'].empty? %>
       <% if( (current_user.locale || 'en_US') == 'en_US' )
            date_tooltip = _("Enter task due date, or click calendar button.
For recurring tasks, try:
every day
every thursday
every last friday
every 14 days
every 3rd monday (of a month)")
          else
            date_tooltip = _("Enter task due date, or click calendar button.")
          end %>
       <% if @task.repeat && @task.repeat.length > 0 %>
          <%= calendar_field 'task', 'due_at', { :class => 'date tooltip', :field_title => date_tooltip, :button_title => _('Show Calendar'), :value => @task.repeat_summary },
          { :ifFormat => current_user.date_format, :firstDay => 1, :range => [2006, 2010], :step => 1, :showOthers => true } %>
       <% else %>
          <%= calendar_field 'task', 'due_at', { :class => 'date tooltip', :field_title => date_tooltip, :button_title => _('Show Calendar') },
          { :ifFormat => current_user.date_format, :firstDay => 1, :range => [2006, 2010], :step => 1, :showOthers => true } %>
       <% end %>
     <% else %>
        <% if @task.repeat && @task.repeat.length > 0 %>
          <%= text_field 'task', 'due_at', {:size => 12, :value => @task.repeat_summary}.merge(perms['prioritize']) %>

        <% else %>
          <%= text_field 'task', 'due_at', {:size => 12}.merge(perms['prioritize']) %>

        <% end %>
      <% end %>

<% unless @tags.nil? %>

<% end %>

<%= submit_tag _("Create"), :class => "nolabel" %> <%= _'or'%> <%= _'Cancel' %>
<%= check_box_tag 'notify', '1', (current_user.send_notifications > 0) %><%=_ 'Send notification emails'%>

<% end %>

<%= error_messages_for 'task' %>
<%
  perms = {}
  ['comment', 'edit', 'reassign', 'prioritize', 'close', 'milestone'].each do |p|
    if @task.project_id.to_i == 0 || current_user.can?( @task.project, p )
      perms[p] = {}
    else
      perms[p] = { :disabled => 'disabled' }
    end
  end

%>

<% form_remote_tag :url => { :action => 'create_ajax' } ,
       :loading => "Element.show('loading');",
       :complete => "Element.hide('loading');",
       :html => { :id => 'quick-add-form' } do
%>

      <%=_ 'Summary' %>
<%= text_field 'task', 'name', { :size => 17, :maxlength => 200 }.merge( perms['edit'] )  %>

      <% if @task.project_id > 0
            selected_project = @task.project_id
         elsif session[:last_project_id].to_i > 0
            selected_project = session[:last_project_id].to_i
         elsif session[:filter_project].to_i > 0
            selected_project = session[:filter_project].to_i
         else
            selected_project = current_user.projects.find(:first, :order => 'name').id
         end

         @project = current_user.projects.find(selected_project) rescue current_user.projects.find(:first,:order => 'name').id end
	 selected_project = @project.id

      %>
      <%=_ 'Project' %>

      <select name="task[project_id]" id="task_project_id" <%= "disabled=\"disabled\"" unless perms['reassign'].empty? %>>
      <% @clients = Customer.find(:all, :conditions => ["company_id = ?", current_user.company_id], :order => "name") %>
      <% @clients.each do |c| %>
        <% @client_projects = current_user.projects.find(:all, :conditions => ["customer_id = #{c.id} AND completed_at IS NULL"], :order => "name" ) %>
        <% if @client_projects.size > 0 %>
          <option value="" disabled="disabled" class="select_heading"><%= c.name %></option>
          <% @client_projects.each do |p| %>
            <option value="<%=p.id%>" class="select_item"<%= " selected" if p.id == selected_project%>><%= p.name %></option>
          <% end %>
        <% end %>
      <% end %>
     </select>

      <%=_ 'Milestone' %>

      <% unless @task.id.nil? %>
          <%= select 'task', 'milestone_id', [[_("[None]"), "0"]] + Milestone.find(:all, :order => 'name', :conditions => ['company_id = ? AND project_id = ? AND completed_at IS NULL', current_user.company.id, selected_project] ).collect {|c| [ c.name, c.id ] }, {}, perms['milestone'] %>

      <% else %>
          <%= select'task', 'milestone_id', [[_("[None]"), "0"]] + Milestone.find(:all, :order => 'name', :conditions => ['company_id = ? AND project_id = ? AND completed_at IS NULL', current_user.company.id, selected_project] ).collect {|c| [ c.name, c.id ] }, {:selected => session[:filter_milestone] ? session[:filter_milestone].to_i : 0}, perms['milestone'] %>

      <% end %>

<%

users = Project.find(selected_project).users.find(:all, :order => 'name' )
num = 0

resource_string = "<select id=\"task_users\" name=\"users[]\" #{"disabled=\"disabled\"" if @task.project && !current_user.can?( @task.project, 'reassign' )}><option value=\"\">[#{_('Unassigned')}]</option>" + users.collect{|us| "<option value=\"#{us.id}\">#{us.name}</option>"}.join('') + "</select>"
resource_string = resource_string.split(/\n/).join('').gsub(/'/, "\\\\\'")

owner_string = ''
owner_string = "<select name=\"users[]\" id=\"task_users\" #{"disabled=\"disabled\"" if @task.project && !current_user.can?( @task.project, 'reassign' )}><option value=\"\">[#{_('No one')}]</option>" + users.collect{|us| "<option value=\"#{us.id}\" #{"selected" if (us.id == current_user.id && @task.created_at.nil?) }>#{us.name}</option>"}.join('') + "</select>" #, perms['reassign']
  owner_string = owner_string.split(/\n/).join('').gsub(/'/, "\\\\\'")

if perms['reassign'].keys.size == 0
  owner_string = "
#{_('Assigned To')}
#{owner_string}"
  owner_string << "
"
end

%>

      <%= owner_string %>

    <%=_ 'Tags' %>
 <%= text_field 'task', 'set_tags', { :size => 17, :value => @task.tags.collect{|t| t.name}.join(', '), :autocomplete => "off" }.merge( perms['edit'] ) %>

      <%=_ 'Type' %>

        <%= select 'task', 'type_id', [[_('Task'),0],[_('New Feature'),1],[_('Defect'),2],[_('Improvement'),3]], {:selected => @task.type_id}, perms['prioritize']  %>

        <%=_ 'Priority' %>

        <%= select 'task', 'priority', [[_('Critical'),3],[_('Urgent'),2],[_('High'),1],[_('Normal'),0],[_('Low'),-1],[_('Lowest'),-2]], {:selected => @task.priority}, perms['prioritize']  %>

        <%=_ 'Severity' %>

        <%= select 'task', 'severity_id', [[_('Blocker'),3],[_('Critical'),2],[_('Major'),1],[_('Normal'),0],[_('Minor'),-1],[_('Trivial'),-2]], {:selected => @task.severity_id}, perms['prioritize']  %>

    <%=_ 'Description' %>
<%= text_area 'task', 'description', { :rows => 2, :cols => 17 }.merge( perms['edit'] )  %>

    <%=_ 'Depends on'%> #

    <% if perms['prioritize'].empty? %>
      <input name="dependencies[]" size="12" type="text" id="dependencies_input" title="<%=_("Enter task numbers, separated by commas. Type text to search.")%>" class="tooltip" >

      <%= auto_complete_field 'dependencies_input', { :url => { :action => 'dependency_targets' }, :min_chars => 1, :frequency => 0.5, :indicator => 'loading', :select => 'complete_value', :tokens => ',' } %>
    <% else %>
      <input name="dependencies[]" size="12" type="text" disabled="disabled">
    <% end %>

<% if current_user.option_tracktime.to_i == 1%>
       <%=_ 'Estimate' %>

       <%= text_field 'task', 'duration', {:size => 3, :value => (@task.duration.to_i > 0 ? worked_nice(@task.duration) : ""), :class => 'tooltip', :title => '2w 3d 1h'}.merge(perms['prioritize']) %>

<% else %>
       <%= hidden_field_tag "task[duration]", "1h" %>
<% end %>

    <%=_ 'Due Date' %>

    <% if perms['prioritize'].empty? %>
       <% if( (current_user.locale || 'en_US') == 'en_US' )
            date_tooltip = _("Enter task due date, or click calendar button.
For recurring tasks, try:
every day
every thursday
every last friday
every 14 days
every 3rd monday (of a month)")
          else
            date_tooltip = _("Enter task due date, or click calendar button.")
          end %>
       <% if @task.repeat && @task.repeat.length > 0 %>
          <%= calendar_field 'task', 'due_at', { :class => 'date tooltip', :field_title => date_tooltip, :button_title => _('Show Calendar'), :value => @task.repeat_summary },
          { :ifFormat => current_user.date_format, :firstDay => 1, :range => [2006, 2010], :step => 1, :showOthers => true } %>
       <% else %>
          <%= calendar_field 'task', 'due_at', { :class => 'date tooltip', :field_title => date_tooltip, :button_title => _('Show Calendar') },
          { :ifFormat => current_user.date_format, :firstDay => 1, :range => [2006, 2010], :step => 1, :showOthers => true } %>
       <% end %>
     <% else %>
        <% if @task.repeat && @task.repeat.length > 0 %>
          <%= text_field 'task', 'due_at', {:size => 12, :value => @task.repeat_summary}.merge(perms['prioritize']) %>

        <% else %>
          <%= text_field 'task', 'due_at', {:size => 12}.merge(perms['prioritize']) %>

        <% end %>
      <% end %>

<% unless @tags.nil? %>

<% end %>

<%= submit_tag _("Create"), :class => "nolabel" %> <%= _'or'%> <%= _'Cancel' %>
<%= check_box_tag 'notify', '1', (current_user.send_notifications > 0) %><%=_ 'Send notification emails'%>

<% end %>


fixed bug which prevented uploading of new asset versions

<div id='preview-area' class='<%= preview_area_class(@asset) %>'><%= asset_link_with_preview(@asset) %>

<%= download_link %>    <%= upload_link %>

      <% form_tag page_url(@page, :action => 'update'), :multipart => true do -%>
        <%= file_field_tag 'asset[uploaded_data]' %>
        <%= submit_tag 'upload' %>
      <% end %>

Information

      <%= 'Created by' %>:

      <%= link_to_user(@page.created_by, :avatar => 'xsmall') if @page.created_by %>

      <%= 'Created on' %>:

      <%= friendly_date(@page.created_at) %>

History

    <%= render :partial => 'version_history' %>

<div id='preview-area' class='<%= preview_area_class(@asset) %>'><%= asset_link_with_preview(@asset) %>

<%= download_link %>    <%= upload_link %>

      <% form_tag page_url(@page, :action => 'update'), :multipart => true do -%>
        <%= file_field_tag 'asset' %>
        <%= submit_tag 'upload' %>
      <% end %>

Information

      <%= 'Created by' %>:

      <%= link_to_user(@page.created_by, :avatar => 'xsmall') if @page.created_by %>

      <%= 'Created on' %>:

      <%= friendly_date(@page.created_at) %>

History

    <%= render :partial => 'version_history' %>


South East Water is not subject to EIR

South East Water is not subject to EIR

Change the example on the help page, because the ICO has ruled
water companies are not subject to EIR.

In the case of Milford Haven Port Authority, the ICO issued a
ruling confirming they are subject to EIR:
  http://www.ico.gov.uk/upload/documents/decisionnotices/2007/fer_0072936.pdf

Closes #36.

<% @title = "Making requests" %>

<%= render :partial => 'sidebar' %>

<%= @title %> #

I'm not sure which authority to make my request to, how can I find out? #

It can be hard to untangle government's complicated structured, and work out
who knows the information that you want. Here are a few tips:

Browse or search WhatDoTheyKnow looking for similar requests to yours.

When you've found an authority you think might have the information, use
the "home page" link on the right hand side of their page to check what they do
on their website.

Contact the authority by phone or email to ask if they hold the kind of
information you're after.

Don't worry excessively about getting the right authority. If you get it
wrong, they ought to advise you who to make the request to instead.

If you've got a thorny case, please contact us for help.

You're missing the public authority that I want to request from! #

Please contact us with the name of the public authority and,
if you can find it, their contact email address for Freedom of Information requests.

If you'd like to help add a whole category of public authority to the site, we'd love
to hear from you too.

Why do you include some authorities that aren't formally subject to FOI?#

WhatDoTheyKnow lets you make requests for information to a range of
organisations:

 Those formally subject to the FOI Act

 Those formally subject to the Environmental Regulations (a less well
  defined group)

 Those which voluntarily comply with the FOI Act

 Those which aren't subject to the Act but we think should be, on grounds
  such as them having significant public responsibilities.

In the last case, we're using the site to lobby for expansion of the
scope of the FOI Act. Even if an organisation is not legally obliged to respond
to an FOI request, they can still do so voluntarily.

Why must I keep my request focused?#

Please put in your request only what is needed so that someone can
easily identify what information you are asking for. Please do
not include any of the following:

arguments about your cause

statements that could defame or insult others

If you do, we may have to remove your request to avoid problems with
libel law, which is a pain for both you and us. Short, succinct messages
make it easier for authorities to be clear what information you are
requesting, which means you will get a reply more quickly.

If you want information to support an argument or campaign, Freedom of
Information is a powerful tool. Although you may not use this site to
run your campaign, we encourage you to use it to get the information you
need. We also encourage to run your campaign elsewhere - one effective
and very easy way is to <%= link_to 'start your own blog',
"http://wordpress.com/"%>. You are welcome to link to your campaign
from this site in an annotation to your request (you can make
annotations after submitting the request).

Does it cost me anything to make a request?#

Making an FOI request is nearly always free.

Authorities often include unnecessary, scary, boilerplate in
acknowledgement messages saying they "may" charge a fee. Ignore such notices.
They hardly ever will actually charge a fee.  If they do, they can only charge you if
you have specifically agreed in advance to pay.  More
    details from the Information Commissioner.

Sometimes an authority will refuse your request, saying that the cost
of handling it exceeds £600 (for central government) or £450 (for all other
public authorities). At this point you can refine your
request. e.g. it would be much cheaper for an authority to tell you the amount
spent on marshmallows in the past year than in the past ten years.

How quickly will I get a response? #

By law, public authorities must respond promptly to
requests.

Even if they are not prompt, in nearly all cases they must respond within
20 working days. If you had to clarify your request, or they are a school,
or one or two other cases, then they may have more time
(full details).

WhatDoTheyKnow will email you if you don't get a timely response.  You can
then send the public authority a message to remind them, and tell them if they
are breaking the law.

What if I never get a response?#

There are several things you can do if you never get a response.

Sometimes there has been a genuine problem and the authority never
    received the request. It is worth telephoning the authority and politely
    checking that they received the request. It was sent to them by email.

If they have not received it, the problem is most likely due to
    "spam filters". Refer the authority to the measures in the answer
    'I can see a request on WhatDoTheyKnow, but we never got it by email!'
    in the FOI officers section of this help.

If you're still having no luck, then you can ask for an internal review,
    and then complain to the Information Commissioner about the authority.
    Read our page 'Unhappy about the response you got?'.

What if I'm not satisfied with the response? #

If you didn't get the information you asked for, or you didn't get it in time,
then read our page 'Unhappy about the response you got?'.

It says I can't re-use the information I got!#

Authorities often add legal boilerplate about the
"Re-Use of Public Sector
Information Regulations 2005", which at first glance implies you may not
be able do anything with the information.

You can, of course, write articles about the information or summarise it, or
quote parts of it. We also think you should feel free to republish the
information in full, just as we do, even though in theory you might not be
allowed to do so.  See our policy on copyright.

Can you tell me more of the nitty gritty about the process of making requests? #

Have a look at the
access to official information
pages on the Information Commissioner's website.

If you're requesting information from a Scottish public authority,
the process is very similar. There are differences around time
limits for compliance.
See the Scottish
Information Commissioner's guidance for details.

Can I request information about myself? #

No. Requests made using WhatDoTheyKnow are public, made under the Freedom of
Information Act, and cannot help you find information about a private
individual.

If you would like to know what information a public
authority holds about yourself, you should make a "Subject Access Request" in
private using Data Protection law.  The leaflet "How to access your information" (on the Information Commissioner's
website) explains how to do this.

If you see that somebody has included personal information, perhaps
unwittingly, in a request, please contact us
immediately so we can remove it.

I'd like to keep my request secret! (At least until I publish my story) #

WhatDoTheyKnow is currently only designed for public requests. All
responses that we receive are automatically published on the website for anyone
to read.

You should contact the public authority directly if you would like to
make a request in private.  If you're interested in buying a system which helps
you manage FOI requests in secret, then contact us.

Why can I only request information about the environment from some authorities? #

Some public authorities, such as Milford Haven Port Authority,
don’t come under the Freedom of Information Act, but do come under another law called
the Environmental Information Regulations (EIR).

It's a very similar law, so you make a request
to them using WhatDoTheyKnow in just the same way as an FOI request. The only
difference is that on the page where your write you request, it reminds you
that you can only request "environmental information" and tells you what that
means. It is quite broad.

You can, of course, request environmental information from other
authorities. Just make a Freedom of Information (FOI) request as normal. The
authority has a duty to work out if the Environmental Information Regulations
(EIR) is the more appropriate legislation to reply under.

Can I make the same to request to lots of authorities, e.g. all councils? #

We ask you to first send a test version of your request to a few
authorities. Their responses will help you improve the wording of your request,
so that you get the best information when you send the request to all of
the authorities. There is currently no automated system for sending the request
to the other authorities, you must copy and paste it by hand.

I made a request off the site, how do I upload it to the archive?#

WhatDoTheyKnow is an archive of requests made through the site,
and does not try to be an archive of all FOI requests. We'll never support uploading
other requests. For one thing, we wouldn't be able to verify that other
responses actually came from the authority. If this really matters to you,
you can always make the same request again via WhatDoTheyKnow.

How do you moderate request annotations? #

Annotations on WhatDoTheyKnow are to help
people get the information they want, or to give them pointers to places they
can go to help them act on it. We reserve the right to remove anything else.

Endless, political discussions are not allowed.
Post a link to a suitable forum or campaign site elsewhere.

Next, read about your privacy -->

<% @title = "Making requests" %>

<%= render :partial => 'sidebar' %>

<%= @title %> #

I'm not sure which authority to make my request to, how can I find out? #

It can be hard to untangle government's complicated structured, and work out
who knows the information that you want. Here are a few tips:

Browse or search WhatDoTheyKnow looking for similar requests to yours.

When you've found an authority you think might have the information, use
the "home page" link on the right hand side of their page to check what they do
on their website.

Contact the authority by phone or email to ask if they hold the kind of
information you're after.

Don't worry excessively about getting the right authority. If you get it
wrong, they ought to advise you who to make the request to instead.

If you've got a thorny case, please contact us for help.

You're missing the public authority that I want to request from! #

Please contact us with the name of the public authority and,
if you can find it, their contact email address for Freedom of Information requests.

If you'd like to help add a whole category of public authority to the site, we'd love
to hear from you too.

Why do you include some authorities that aren't formally subject to FOI?#

WhatDoTheyKnow lets you make requests for information to a range of
organisations:

 Those formally subject to the FOI Act

 Those formally subject to the Environmental Regulations (a less well
  defined group)

 Those which voluntarily comply with the FOI Act

 Those which aren't subject to the Act but we think should be, on grounds
  such as them having significant public responsibilities.

In the last case, we're using the site to lobby for expansion of the
scope of the FOI Act. Even if an organisation is not legally obliged to respond
to an FOI request, they can still do so voluntarily.

Why must I keep my request focused?#

Please put in your request only what is needed so that someone can
easily identify what information you are asking for. Please do
not include any of the following:

arguments about your cause

statements that could defame or insult others

If you do, we may have to remove your request to avoid problems with
libel law, which is a pain for both you and us. Short, succinct messages
make it easier for authorities to be clear what information you are
requesting, which means you will get a reply more quickly.

If you want information to support an argument or campaign, Freedom of
Information is a powerful tool. Although you may not use this site to
run your campaign, we encourage you to use it to get the information you
need. We also encourage to run your campaign elsewhere - one effective
and very easy way is to <%= link_to 'start your own blog',
"http://wordpress.com/"%>. You are welcome to link to your campaign
from this site in an annotation to your request (you can make
annotations after submitting the request).

Does it cost me anything to make a request?#

Making an FOI request is nearly always free.

Authorities often include unnecessary, scary, boilerplate in
acknowledgement messages saying they "may" charge a fee. Ignore such notices.
They hardly ever will actually charge a fee.  If they do, they can only charge you if
you have specifically agreed in advance to pay.  More
    details from the Information Commissioner.

Sometimes an authority will refuse your request, saying that the cost
of handling it exceeds £600 (for central government) or £450 (for all other
public authorities). At this point you can refine your
request. e.g. it would be much cheaper for an authority to tell you the amount
spent on marshmallows in the past year than in the past ten years.

How quickly will I get a response? #

By law, public authorities must respond promptly to
requests.

Even if they are not prompt, in nearly all cases they must respond within
20 working days. If you had to clarify your request, or they are a school,
or one or two other cases, then they may have more time
(full details).

WhatDoTheyKnow will email you if you don't get a timely response.  You can
then send the public authority a message to remind them, and tell them if they
are breaking the law.

What if I never get a response?#

There are several things you can do if you never get a response.

Sometimes there has been a genuine problem and the authority never
    received the request. It is worth telephoning the authority and politely
    checking that they received the request. It was sent to them by email.

If they have not received it, the problem is most likely due to
    "spam filters". Refer the authority to the measures in the answer
    'I can see a request on WhatDoTheyKnow, but we never got it by email!'
    in the FOI officers section of this help.

If you're still having no luck, then you can ask for an internal review,
    and then complain to the Information Commissioner about the authority.
    Read our page 'Unhappy about the response you got?'.

What if I'm not satisfied with the response? #

If you didn't get the information you asked for, or you didn't get it in time,
then read our page 'Unhappy about the response you got?'.

It says I can't re-use the information I got!#

Authorities often add legal boilerplate about the
"Re-Use of Public Sector
Information Regulations 2005", which at first glance implies you may not
be able do anything with the information.

You can, of course, write articles about the information or summarise it, or
quote parts of it. We also think you should feel free to republish the
information in full, just as we do, even though in theory you might not be
allowed to do so.  See our policy on copyright.

Can you tell me more of the nitty gritty about the process of making requests? #

Have a look at the
access to official information
pages on the Information Commissioner's website.

If you're requesting information from a Scottish public authority,
the process is very similar. There are differences around time
limits for compliance.
See the Scottish
Information Commissioner's guidance for details.

Can I request information about myself? #

No. Requests made using WhatDoTheyKnow are public, made under the Freedom of
Information Act, and cannot help you find information about a private
individual.

If you would like to know what information a public
authority holds about yourself, you should make a "Subject Access Request" in
private using Data Protection law.  The leaflet "How to access your information" (on the Information Commissioner's
website) explains how to do this.

If you see that somebody has included personal information, perhaps
unwittingly, in a request, please contact us
immediately so we can remove it.

I'd like to keep my request secret! (At least until I publish my story) #

WhatDoTheyKnow is currently only designed for public requests. All
responses that we receive are automatically published on the website for anyone
to read.

You should contact the public authority directly if you would like to
make a request in private.  If you're interested in buying a system which helps
you manage FOI requests in secret, then contact us.

Why can I only request information about the environment from some authorities? #

Some public authorities, such as South East Water,
don't come under the Freedom of Information Act, but do come under another law called
the Environmental Information Regulations (EIR).

It's a very similar law, so you make a request
to them using WhatDoTheyKnow in just the same way as an FOI request. The only
difference is that on the page where your write you request, it reminds you
that you can only request "environmental information" and tells you what that
means. It is quite broad.

You can, of course, request environmental information from other
authorities. Just make a Freedom of Information (FOI) request as normal. The
authority has a duty to work out if the Environmental Information Regulations
(EIR) is the more appropriate legislation to reply under.

Can I make the same to request to lots of authorities, e.g. all councils? #

We ask you to first send a test version of your request to a few
authorities. Their responses will help you improve the wording of your request,
so that you get the best information when you send the request to all of
the authorities. There is currently no automated system for sending the request
to the other authorities, you must copy and paste it by hand.

I made a request off the site, how do I upload it to the archive?#

WhatDoTheyKnow is an archive of requests made through the site,
and does not try to be an archive of all FOI requests. We'll never support uploading
other requests. For one thing, we wouldn't be able to verify that other
responses actually came from the authority. If this really matters to you,
you can always make the same request again via WhatDoTheyKnow.

How do you moderate request annotations? #

Annotations on WhatDoTheyKnow are to help
people get the information they want, or to give them pointers to places they
can go to help them act on it. We reserve the right to remove anything else.

Endless, political discussions are not allowed.
Post a link to a suitable forum or campaign site elsewhere.

Next, read about your privacy -->


tuderechoasaber.es has launched

tuderechoasaber.es has launched

<% @title = "About" %>

<%= render :partial => 'sidebar' %>

About

Welcome to AsktheEU.org!

How Does It Work?

Who can use AsktheEU.org?

Who built AsktheEU.org?

Who is funding AsktheEU.org?

AsktheEU.org Supporters

Intellectual Property

Welcome to AsktheEU.org!

This website has been built by civil society organizations to help members of the public like you get the information you want about the European Union – by asking for it.

This website will also make life easier for EU public officials because they will be less likely to have to answer repeated requests about the same subject: once a question has been answered everyone will be able to find the information stored on this website.

How does it work?

It’s very simple: you file a request with the EU via this website. We send an email to the correct EU body. They have the obligation to answer within 15 working days (about three weeks).

When we get an answer, we send it to you and we publish it on this website. You get to say whether or not you are happy with the answer, to follow up for more information, or to file an appeal.

Everyone else gets to see your answer and that way they don’t need to ask the same question again.

Who can use AsktheEU.org?

Every one of the 500 million people living in the European Union (both citizens and residents) has the legally guaranteed right to ask for information from EU bodies.

People living outside the EU can also ask for information (you just don’t have the same right of appeal to the European Courts if they refuse). You could, however, make a complaint to the European Ombudsman, who will accept both EU and non-EU complainants.

NGOs and Businesses (known as “legal persons”) can also submit requests for documents. If you are registered in an EU country you also have the right of appeal to the European Courts.

You might be especially interested in using this website if you work for an NGO, are a journalist, are involved with a local citizens group, are a student or an academic, are a lawyer or a businessperson ... or if you are just curious to know more about the EU and how it works. Don’t delay: ask a question today!

Who built AsktheEU.org?

AsktheEU.org is a project of the international human rights organisation Access Info Europe, based in Madrid, and was developed with software by the organisation mySociety, based in London.

Access Info Europe is a not-for-profit human rights organisation registered in Spain with the Ministry of Interior (reference 587828) and with the EU’s Transparency Register (reference 49931835063-67).

The AsktheEU.org project is supported by <%= link_to 'a coalition of European and international organisations', help_credits_path %>.

AsktheEU.org is based on mySociety’s successful UK website WhatDoTheyKnow.com. Another similar website is FragdenStaat.de in Germany.

In Spain Access Info Europe has launched TuDerechoaSaber.es together with some other civil society organisations and technology for transparency groups in Spain.

Who is funding AsktheEU.org?

AsktheEU.org was funded by the Open Society Foundation in the first phase of development. We still need more funds and volunteers to keep it running. Support Access Info Europe.

AsktheEU.org Supporters

The following organisations form part of the AsktheEU Advisory Group:
        <%= render :partial => 'help/supporters' %>

Intellectual Property

This website is part of the Alaveteli Project – an open source software development being run by mySociety in collaboration with Access Info Europe and other civil society organisations. The other original content of this website was developed by Access Info Europe and is made public under a Creative Commons Attribution, Share Alike licence.

<% @title = "About" %>

<%= render :partial => 'sidebar' %>

About

Welcome to AsktheEU.org!

How Does It Work?

Who can use AsktheEU.org?

Who built AsktheEU.org?

Who is funding AsktheEU.org?

AsktheEU.org Supporters

Intellectual Property

Welcome to AsktheEU.org!

This website has been built by civil society organizations to help members of the public like you get the information you want about the European Union – by asking for it.

This website will also make life easier for EU public officials because they will be less likely to have to answer repeated requests about the same subject: once a question has been answered everyone will be able to find the information stored on this website.

How does it work?

It’s very simple: you file a request with the EU via this website. We send an email to the correct EU body. They have the obligation to answer within 15 working days (about three weeks).

When we get an answer, we send it to you and we publish it on this website. You get to say whether or not you are happy with the answer, to follow up for more information, or to file an appeal.

Everyone else gets to see your answer and that way they don’t need to ask the same question again.

Who can use AsktheEU.org?

Every one of the 500 million people living in the European Union (both citizens and residents) has the legally guaranteed right to ask for information from EU bodies.

People living outside the EU can also ask for information (you just don’t have the same right of appeal to the European Courts if they refuse). You could, however, make a complaint to the European Ombudsman, who will accept both EU and non-EU complainants.

NGOs and Businesses (known as “legal persons”) can also submit requests for documents. If you are registered in an EU country you also have the right of appeal to the European Courts.

You might be especially interested in using this website if you work for an NGO, are a journalist, are involved with a local citizens group, are a student or an academic, are a lawyer or a businessperson ... or if you are just curious to know more about the EU and how it works. Don’t delay: ask a question today!

Who built AsktheEU.org?

AsktheEU.org is a project of the international human rights organisation Access Info Europe, based in Madrid, and was developed with software by the organisation mySociety, based in London.

Access Info Europe is a not-for-profit human rights organisation registered in Spain with the Ministry of Interior (reference 587828) and with the EU’s Transparency Register (reference 49931835063-67).

The AsktheEU.org project is supported by <%= link_to 'a coalition of European and international organisations', help_credits_path %>.

AsktheEU.org is based on mySociety’s successful UK website WhatDoTheyKnow.com. Another similar website is FragdenStaat.de in Germany.

In Spain Access Info Europe is planning to launch TuDerechoaSaber.es together with some other civil society organisations and technology for transparency groups in Spain.

Who is funding AsktheEU.org?

AsktheEU.org was funded by the Open Society Foundation in the first phase of development. We still need more funds and volunteers to keep it running. Support Access Info Europe.

AsktheEU.org Supporters

The following organisations form part of the AsktheEU Advisory Group:
        <%= render :partial => 'help/supporters' %>

Intellectual Property

This website is part of the Alaveteli Project – an open source software development being run by mySociety in collaboration with Access Info Europe and other civil society organisations. The other original content of this website was developed by Access Info Europe and is made public under a Creative Commons Attribution, Share Alike licence.


Added unopened to class

Added unopened to class

<% if flash[:message_sent] %>

 Your message has been sent

<% end -%>

    New Message

    Sent Messages

  <% end_user_table_for tbl,
     :style => 'width:100%', :container_id => 'mailbox_details',
     :empty => 'You have no messages',
     :actions => [['Delete Messages','delete','Are you sure you want to delete the selected messages?']] do |t| -%>
  <tr <%= "class='unopened'" unless t.opened? -%> <%= tbl.highlight_row t %>>
    <%= tbl.entry_checkbox t %>

        <%= "*" unless t.opened? %>
    <a href='javascript:void(0);' onclick='MessageViewer.viewMessage(<%= t.id %>);'><%= h(t.subject) %>
        <%= "" unless t.opened? %>

    <%= t.from_user ? h(t.from_user.name) : '-' %>
    <%= t.created_at.strftime(DEFAULT_DATETIME_FORMAT.t) %>

  <% end -%>

<% if flash[:message_sent] %>

 Your message has been sent

<% end -%>

    New Message

    Sent Messages

  <% end_user_table_for tbl,
     :style => 'width:100%', :container_id => 'mailbox_details',
     :empty => 'You have no messages',
     :actions => [['Delete Messages','delete','Are you sure you want to delete the selected messages?']] do |t| -%>
  <tr <%= tbl.highlight_row t %>>
    <%= tbl.entry_checkbox t %>

        <%= "" unless t.opened? %>
    <a href='javascript:void(0);' onclick='MessageViewer.viewMessage(<%= t.id %>);'><%= h(t.subject) %>
        <%= "" unless t.opened? %>

    <%= t.from_user ? h(t.from_user.name) : '-' %>
    <%= t.created_at.strftime(DEFAULT_DATETIME_FORMAT.t) %>

  <% end -%>


removed spaces before arg call

removed spaces before arg call

<% # much of this paging code adopted from will_paginate plugin for view

  total_pages = (@hits / @batch_size)
  total_pages += 1 unless (@hits % @batch_size == 0)

  if total_pages > 1

    # Arguments for paging actions, just add 'page'
    args= params.clone
    # Need to take out that annoying legacy journal key, sorry.
    args.delete('journal')

    inner_window ||= 2 #how many links are shown on each side of current page
    outer_window ||= 2 #how many links are around the first and the last page

    min = @page - inner_window
    max = @page + inner_window

    # adjust lower or upper limit if other is out of bounds
    if max > total_pages
      min -= max - total_pages
    elsif min < 1
      max += 1 - min
    end

    current   = min..max
    beginning = 1..(1 + outer_window)
    tail      = (total_pages - outer_window)..total_pages
    visible   = [beginning, current, tail].map(&:to_a).flatten.sort.uniq
    links, prev = [], 0

    visible.each do |n|
      next if n < 1
      break if n > total_pages

      unless n - prev > 1
        prev = n
        if ( n != @page )
           links << ( link_to n, args.merge({'page' => n }) )
        else
           links << ( content_tag :span, n )
        end
      else
        # ellipsis represents the gap between windows
        prev = n - 1
        links << '...'
        redo
      end
    end

    # Next and previous buttons
    links.unshift(link_to('Previous', args.merge({'page' => @page -1 }))) if @page > 1
    links.push(link_to('Next', args.merge({'page' => @page + 1}))) if @page < total_pages
%>
<%= content_tag :div, links.join(' ') %>
<%
  end
%>

<% # much of this paging code adopted from will_paginate plugin for view

  total_pages = (@hits / @batch_size)
  total_pages += 1 unless (@hits % @batch_size == 0)

  if total_pages > 1

    # Arguments for paging actions, just add 'page'
    args= params.clone
    # Need to take out that annoying legacy journal key, sorry.
    args.delete('journal')

    inner_window ||= 2 #how many links are shown on each side of current page
    outer_window ||= 2 #how many links are around the first and the last page

    min = @page - inner_window
    max = @page + inner_window

    # adjust lower or upper limit if other is out of bounds
    if max > total_pages
      min -= max - total_pages
    elsif min < 1
      max += 1 - min
    end

    current   = min..max
    beginning = 1..(1 + outer_window)
    tail      = (total_pages - outer_window)..total_pages
    visible   = [beginning, current, tail].map(&:to_a).flatten.sort.uniq
    links, prev = [], 0

    visible.each do |n|
      next if n < 1
      break if n > total_pages

      unless n - prev > 1
        prev = n
        if ( n != @page )
           links << ( link_to n, args.merge({'page' => n }) )
        else
           links << ( content_tag :span, n )
        end
      else
        # ellipsis represents the gap between windows
        prev = n - 1
        links << '...'
        redo
      end
    end

    # Next and previous buttons
    links.unshift (link_to('Previous', args.merge({'page' => @page -1 }))) if @page > 1
    links.push (link_to('Next', args.merge({'page' => @page + 1}))) if @page < total_pages
%>
<%= content_tag :div, links.join(' ') %>
<%
  end
%>


Say it is a followup

Say it is a followup

<% if @highlight_words.nil?
      @highlight_words = []
end %>

        <% if not event.incoming_message.nil? %>
            <%= link_to highlight_words(info_request.title, @highlight_words), incoming_message_url(event.incoming_message) %>
        <% elsif not event.outgoing_message.nil? and event.event_type == 'followup_sent' %>
            <%= link_to highlight_words(info_request.title, @highlight_words), outgoing_message_url(event.outgoing_message) %>
        <% else %>
            <%= link_to highlight_words(info_request.title, @highlight_words), request_url(info_request) %>
        <% end %>

        <%= highlight_and_excerpt(event.search_text_main, @highlight_words, 150) %>

    <span class="bottomline icon_<%= info_request.calculate_status %>">

        <%= info_request.display_status %>

        <% if event.event_type == 'sent' %>
            Request sent to <%= public_body_link(info_request.public_body) %>
            by <%= user_link(info_request.user) %>
        <% elsif event.event_type == 'followup_sent' %>
            Follow up sent to <%= public_body_link(info_request.public_body) %>
            by <%= user_link(info_request.user) %>
        <% elsif event.event_type == 'response' %>
            <% if event.calculated_state.nil? %>
                Response
            <% else %>
                <%=event.display_status %>
            <% end %>
            by <%= public_body_link(info_request.public_body) %>
            to <%= user_link(info_request.user) %>
        <% else %>
            <% raise "unknown event type indexed " + event.event_type %>
        <% end %>
        on <%= simple_date(event.created_at) %>.

<% if @highlight_words.nil?
      @highlight_words = []
end %>

        <% if not event.incoming_message.nil? %>
            <%= link_to highlight_words(info_request.title, @highlight_words), incoming_message_url(event.incoming_message) %>
        <% elsif not event.outgoing_message.nil? and event.event_type == 'followup_sent' %>
            <%= link_to highlight_words(info_request.title, @highlight_words), outgoing_message_url(event.outgoing_message) %>
        <% else %>
            <%= link_to highlight_words(info_request.title, @highlight_words), request_url(info_request) %>
        <% end %>

        <%= highlight_and_excerpt(event.search_text_main, @highlight_words, 150) %>

    <span class="bottomline icon_<%= info_request.calculate_status %>">

        <%= info_request.display_status %>

        <% if event.event_type == 'sent' %>
            Request sent to <%= public_body_link(info_request.public_body) %>
            by <%= user_link(info_request.user) %>
        <% elsif event.event_type == 'followup_sent' %>
            Sent to <%= public_body_link(info_request.public_body) %>
            by <%= user_link(info_request.user) %>
        <% elsif event.event_type == 'response' %>
            <% if event.calculated_state.nil? %>
                Response
            <% else %>
                <%=event.display_status %>
            <% end %>
            by <%= public_body_link(info_request.public_body) %>
            to <%= user_link(info_request.user) %>
        <% else %>
            <% raise "unknown event type indexed " + event.event_type %>
        <% end %>
        on <%= simple_date(event.created_at) %>.


git-svn-id: svn://beonebody.org/onebody/trunk@84 88fc0095-4724-0410-ab6c-c99dba55acc4

<%= SITE_INTRO_FOR_EMAIL %>

<%= @msg.introduction -%>
- - - - - - - - - - - - - - - - - - - - - - - -
<% if @msg.subject -%>
Subject: <%= @msg.subject %>
<% end -%>
<%= (@msg.group or @msg.wall) ? 'Posted' : 'Sent' %>: <%= @msg.created_at.strftime '%m/%d/%Y %I:%M %p' %>

<%= @msg.body %>
- - - - - - - - - - - - - - - - - - - - - - - -
<%= @msg.reply_instructions(@to) -%>

<% if @msg.group -%>
<% if @to.new_record? -%>
If you no longer wish to receive email from this group, click here: -link to turn off email-
<% else -%>
If you no longer wish to receive email from this group, click here: <%= SITE_URL %>groups/toggle_email/<%= @msg.group.id %>?person_id=<%= @to.id %>&code=<%= @msg.group.get_options_for(@to, true).code %><% if @msg.group.subscription and @msg.group.name == 'Publications' %>&return_to=/publications<% end %>
<% end -%>
<% end -%>


Updated news

Updated news

git-svn-id: 3ebd8a4fd9006ff03462623fffc479a1d4750d42@379 7a65b82a-1d14-0410-b525-e2835e71a0b4


Add piwik

Add piwik

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

        <%= javascript_include_tag :defaults %>

        <title>
        <% if @title %>
            <%=@title%> - WhatDoTheyKnow
        <% else %>
            WhatDoTheyKnow - file and explore Freedom of Information (FOI) requests
        <% end %>
        </title>
        <%
            # Angie, just change this to true / false :)
            yucky = false
        %>
        <%= stylesheet_link_tag 'yucky-green', :title => "Yucky Green", :rel => yucky ? "stylesheet" : "alternate stylesheet" %>
        <%= stylesheet_link_tag 'main', :title => "Main", :rel => yucky ? "alternate stylesheet" : "stylesheet"  %>

        <% if @feed_autodetect %>
            <% for feed in @feed_autodetect %>
                <link rel="alternate" type="application/atom+xml" title="<%=h feed[:title] %>" href="<%=h feed[:url]%>">
            <% end %>
        <% end %>

            WhatDoTheyKnow?

            Make and explore Freedom of Information requests

		a site by mysociety.org

        <% form_tag({:controller => "general", :action => "search_redirect"}, {:id => "navigation_search_form"}) do %>

               <%= text_field_tag 'query', params[:query], { :size => 25, :id => "navigation_search_query" } %>
               <%= submit_tag "Search" %>

        <% end %>

Make request

<%= link_to "View requests", request_list_url(:view => nil) %>

<%= link_to "View authorities", list_public_bodies_url(:tag => 'other') %>

			<% if @user %>

<%=link_to "My requests", user_url(@user) %>

			<% end %>

<%= link_to "About", about_url %>

		<% if not (controller.action_name == 'signin' or controller.action_name == 'signup') %>

			<% if @user %>
				Hello, <%=h(@user.name)%>!
				(<%= link_to "Sign out", signout_url(:r => request.request_uri) %>)
			<% else %>
				Hello! (<%= link_to "Sign in or sign up", signin_url(:r => request.request_uri) %>)
			<% end %>

		<% end %>

            <% if flash[:notice] %>

<%= flash[:notice] %>

            <% end %>
            <% if flash[:error] %>

<%= flash[:error] %>

            <% end %>

            <div id="<%= controller.controller_name + "_" + controller.action_name %>">
            <%= yield :layout %>

        Built by mySociety ... and you.
        Get the source code (is on Rails).
        Dedicated to Chris Lightfoot.

<% if MySociety::Config.get("DOMAIN", '127.0.0.1:3000') == 'www.whatdotheyknow.com'  %>

<% end %>


moved checkbox to better location

moved checkbox to better location

'<%= @assignment.title %>' turn-ins for '<%= @student.display_name %>'

Course: <%= @course.title %> (<%= @course.term.semester%>)

<%= link_to 'Back to all students', :controller => '/instructor/turnins', :course => @course, :assignment => @assignment %>

<% if @assignment.team_project %>

Project Team Details

<%= image_tag 'group.png' %>This is a group project, turn-ins are shared.

  <% if @team.nil? %>
    This student is NOT assigned to a project group.
  <% else %>
    This student is a member of <%= @team.name %> (<%= @team.team_id %>), all members:

		         <% for tm in @team.team_members %>

<%= tm.user.display_name %> - <%= tm.user.email %>

		         <% end %>

  <% end %>

<% end %>

Turn-in Set

<% if @display_turnin %>

<% if @display_turnin.id == @current_turnin.id %>

This is the student's most recent turn-in set.

<% else %>

This is NOT the student's final turn-in set.  You most likely do not want to grade these files.

<% end %>

Turn-in set

Originally Submitted: <%= @display_turnin.created_at.to_formatted_s(:friendly_date) %>

Last Updated: <%= @display_turnin.updated_at.to_formatted_s(:friendly_date) %>

Download entire turn-in set: <%= link_to 'as tar file', :action => 'download_set', :id => @display_turnin.id %>

<% if @display_turnin.id == @current_turnin.id && @current_turnin.user_turnin_files.size == 1 && @turnins.size > 1 %>

This student's current turn-in set does not have any files in it, and there are previous turn-in sets.  You may <%= link_to 'rollback to the previous turn-in set', :action => 'rollback', :id => @student %>

<% end %>

<% parent_spaces = Hash.new
   parent_spaces[0.to_s] = 0
   any_java = @display_turnin.any_java_files?
%>

    File
	Date
	<% if @assignment.programming %>
	  Main?
	  <% if any_java %>
	    Clean Java?
	    Instructor
 Override?
	  <% end %>
	<% end %>
	Download
	Review / Comment
	<% if @team %>
	  Submitter
	<% end %>

<% count = 0 %>
<% previous_tif = nil %>
<% for @tif in @display_turnin.user_turnin_files %>
  <% count = count.next
     odd = "odd"
     odd = "even" if count.even?
   %>
  <tr class="<%=odd%> hover" id="user_turnin_file_<%=@tif.id%>">

    <%

       if @tif.directory_entry
	     parent_spaces[@tif.id.to_s] = parent_spaces[@tif.directory_parent.to_s] + 1
       end %>

    <% spaces = ''
       if @tif.directory_entry
         upper = parent_spaces[@tif.id.to_s] - 1
       else
	     upper = parent_spaces[@tif.directory_parent.to_s]
       end
       1.upto(upper*3) { |i| spaces = " #{spaces}" }
     %>

      <%= spaces %>
      <%= image_tag "#{@tif.icon}", :align => 'absmiddle' %>
      <%=h @tif.filename %>

     <%= @tif.created_at.to_formatted_s(:short) %>
    <% if @assignment.programming %>

      	<% if @tif.main %>
	      <%= image_tag 'accept.png' %> Current
	    <% elsif @tif.main_candidate && ! (@display_turnin.sealed || @display_turnin.finalized) %>
	      <%= image_tag 'add.png' %> Candidate
	         </acronym>
	    <% end %>

	   <% if any_java %>

		  <% if @tif.extension.eql?('java') ## will need to expand later w/ other languages %>
		    <% if @tif.gradable %>
		      <%= image_tag 'accept.png' %>
		    <% else %>
		      <%= image_tag 'cross.png' %> <%= link_to_function "Details", visual_effect(:toggle_appear, "dirty_details_#{@tif.id}" ) %>
		    <% end %>
		  <% end %>

		  <% if @tif.extension.eql?('java') ## will need to expand later w/ other languages %>
		    <% if ! @tif.gradable %>
		      <% if @tif.gradable_override %>
		        <%= image_tag 'accept.png' %> Yes
		      <% else %>
		        <%= image_tag 'cross.png' %> No
		      <% end %>
		    <% end %>
		  <% end %>

	  <% end %>

    <% end %>

     <% if @tif.directory_entry %>
       <s>Download</s>
     <% else %>
       <%= link_to 'Download', :action => 'download_file', :id => @tif.id %>
     <% end %>

      <% if @tif.directory_entry %>

      <% else %>
        <% if @tif.is_text_file? %>
          <%= link_to 'View/Comment', :action => 'view_file', :course => @course, :assignment => @assignment, :student => @student, :id => @tif %>
        <% else %>
          <%= link_to 'Download', :action => 'download_file', :course => @course, :assignment => @assignment, :student => @student, :id => @tif %>
        <% end %>
      <% end %>

    <% if @team %>

      <%= @tif.user.display_name %>

    <% end %>

  <% if any_java && @tif.extension.eql?('java') && !@tif.gradable %>
    <tr style="display: none;" id="dirty_details_<%=@tif.id%>">

Can not AutoGrade your assignment because '<%= @tif.filename %>' it contains the following disallowed strings.

<% unless @tif.gradable_message.nil? %><%= @tif.gradable_message.to_html %><% end %>

  <% end %>

  <% previous_tif = @tif %>
<% end %>

<% else %>

No files submitted

<% end %>

<% if !@assignment.auto_grade_setting.nil? && @assignment.auto_grade_setting.io_check? ## Only kind of autograde supported %>

AutoGrade Results

<%= link_to "View I/O Check results for #{@student.display_name}.", :course => @course, :assignment => @assignment, :student => @student, :action => 'view_io_tests' %> From this screen you can also re-run the automatic tests.

<% elsif @assignment.auto_grade && !@assignment.auto_grade_setting.nil? && @assignment.auto_grade_setting.check_style? %>

PMD Control

<%= image_tag 'flag_green.png' %><%= link_to 'Re-run PMD checks for the current turn-in set.', :course => @course, :assignment => @assignment, :student => @student, :action => 'io_retest' %>

<% end %>

Grade

<% unless @grade_item %>

Warning - this assignment is not connected with an entry in the GradeBook.

<% else %>

  <%= start_form_tag :action => 'submit_grade', :id => @student, :course => @course, :assignment => @assignment %>
    <%= error_messages_for 'grade_entry' %>

You can enter general assignment comments here.   You also have the ability to comment on individual files below as well as to make annotations tied to specific line numbers for text files.   If you enter a negative point value, the student's grade for this assignment will be deleted (including the comments entered below). Leaving the points value blank, results in a score of zero.

Points:
	  <%= text_field 'grade_entry', 'points', :size => 10  %> / <%= sprintf("%0.1f", @grade_item.points ) %>
          <% if @assignment.team_project && !@team.nil? %>

<%= check_box_tag( 'apply_to_team', true, @apply_to_team )%> Apply grade and comments to all team members.
          <% end %>

General comments:

      <%= text_area 'grade_entry', 'comment', "cols" => 90, "rows" => 12, :class=>'short'  %>

      <%= link_to_function "More room to type", "Form.Element.toggleHeight(this, 'grade_entry_comment'); return false;", :class => 'bottab more' %>

<%= submit_tag "Submit Grade and Comments" %>

  <%= end_form_tag %>

<% end %>

Assignment Journals

<% if !@assignment.team_project || @team.nil? %>

	<% if @journals.size == 0 %>

This student has not submitted any journal entries.

	<% else %>

Reported Time: <%= pluralize(@days,'day') %>, <%= pluralize(@hours,'hour') %>, <%= pluralize(@minutes,'minute') %>.

    <%= render :partial => 'journalheader' %>

   <% count = 0 %>
   <% for journal in @journals %>
	<% count = count.next
	     odd = "odd"
	     odd = "even" if count.even?
	   %>
 	 <%= render :partial => "journal", :locals => { :odd => odd, :journal => journal } %>
   <% end %>

  <% end %>

<% else %>

Displaying Journal entries for all team members

  <% for tm in @team.team_members %>

Journals for <%= tm.user.display_name %>

	<% if @team_journals[tm.user.id].nil? || @team_journals[tm.user.id].size == 0 %>

     This student has not submitted any journal entries.

	<% else %>

      <%= render :partial => 'journalheader' %>

      <% count = 0 %>
      <% for journal in @team_journals[tm.user.id] %>
        <% count = count.next
	     odd = "odd"
	     odd = "even" if count.even?
	     %>
 	     <%= render :partial => "journal", :locals => { :odd => odd, :journal => journal } %>
      <% end %>

	<% end %>

  <% end %>

<% end %>

Previous Turn-in sets (read-only)

Previous turn-in sets for <%= @student.display_name %>.   By selecting these previous turn-in sets you can view the files and AutoGrade reports to see how students progressed during development.  Any comments entered on previous turn-in sets are ultimately available to students as they browse their own turn-in history.

<% if @assignment.auto_grade %>
 <% unless @assignment.auto_grade_setting.nil? %>
  <% if @assignment.auto_grade_setting.student_style || @assignment.auto_grade_setting.student_io_check || @assignment.auto_grade_setting.student_autograde %>

<%= image_tag 'information.png' %> This assignment has automatic grading enabled and is limited to <%= @app['turnin_limit'] %> submissions per day.

<%= @student.display_name %> has finalized <%= @today_count %> turn-in sets today, and may finalize <%= @remaining_count %>  more turn-in sets today.   If the student requires additional turn-in sets, you may reopen the most recent turn-in set, allowing them to submit additional turn-in sets in a single day.

	<% end %>
 <% end %>
<% end %>

    #
    Previous Set
    <% if @team %>Creator	<% end %>
    View
    Archived
    Finalized
    Controls

<% count = @turnins.size + 1 %>
<% for ut in @turnins %>
  <% count = count - 1
     odd = "odd"
     odd = "even" if count.even?
   %>
  <tr class="<%=odd%> hover" id="user_turnin_<%=ut.id%>">
    <%= count %>
    <%=h ut.updated_at.to_formatted_s(:long) %>
      <% if ut.id == @current_turnin.id %>current <%end%>

    <% if @team %><%= ut.user.display_name %>	<% end %>
    <%= link_to 'View', :action => 'view_student', :course => @course, :assignment => @assignment, :id => @student, :ut => ut.id %>
    <% if ut.sealed %> <%= image_tag 'accept.png' %> <% else %> <%= image_tag 'cross.png' %> <% end %>
    <% if ut.finalized %> <%= image_tag 'accept.png' %> <% else %> <%= image_tag 'cross.png' %> <% end %>
    <td id="reopen_<%= ut.id %>">
	  <% if @current_turnin.id == ut.id && ut.finalized %>
	    <%= link_to  'Reopen (unfinalized)', :controller => '/instructor/turnins', :action => 'unfinalize', :course => @course.id, :assignment => @assignment, :id => @student %>
	  <% elsif @current_turnin.id == ut.id %>
	    Most recent turn-in - but not finalized.
	  <% else %>
	    --
	  <% end %>

<% end %>

'<%= @assignment.title %>' turn-ins for '<%= @student.display_name %>'

Course: <%= @course.title %> (<%= @course.term.semester%>)

<%= link_to 'Back to all students', :controller => '/instructor/turnins', :course => @course, :assignment => @assignment %>

<% if @assignment.team_project %>

Project Team Details

<%= image_tag 'group.png' %>This is a group project, turn-ins are shared.

  <% if @team.nil? %>
    This student is NOT assigned to a project group.
  <% else %>
    This student is a member of <%= @team.name %> (<%= @team.team_id %>), all members:

		         <% for tm in @team.team_members %>

<%= tm.user.display_name %> - <%= tm.user.email %>

		         <% end %>

  <% end %>

<% end %>

Turn-in Set

<% if @display_turnin %>

<% if @display_turnin.id == @current_turnin.id %>

This is the student's most recent turn-in set.

<% else %>

This is NOT the student's final turn-in set.  You most likely do not want to grade these files.

<% end %>

Turn-in set

Originally Submitted: <%= @display_turnin.created_at.to_formatted_s(:friendly_date) %>

Last Updated: <%= @display_turnin.updated_at.to_formatted_s(:friendly_date) %>

Download entire turn-in set: <%= link_to 'as tar file', :action => 'download_set', :id => @display_turnin.id %>

<% if @display_turnin.id == @current_turnin.id && @current_turnin.user_turnin_files.size == 1 && @turnins.size > 1 %>

This student's current turn-in set does not have any files in it, and there are previous turn-in sets.  You may <%= link_to 'rollback to the previous turn-in set', :action => 'rollback', :id => @student %>

<% end %>

<% parent_spaces = Hash.new
   parent_spaces[0.to_s] = 0
   any_java = @display_turnin.any_java_files?
%>

    File
	Date
	<% if @assignment.programming %>
	  Main?
	  <% if any_java %>
	    Clean Java?
	    Instructor
 Override?
	  <% end %>
	<% end %>
	Download
	Review / Comment
	<% if @team %>
	  Submitter
	<% end %>

<% count = 0 %>
<% previous_tif = nil %>
<% for @tif in @display_turnin.user_turnin_files %>
  <% count = count.next
     odd = "odd"
     odd = "even" if count.even?
   %>
  <tr class="<%=odd%> hover" id="user_turnin_file_<%=@tif.id%>">

    <%

       if @tif.directory_entry
	     parent_spaces[@tif.id.to_s] = parent_spaces[@tif.directory_parent.to_s] + 1
       end %>

    <% spaces = ''
       if @tif.directory_entry
         upper = parent_spaces[@tif.id.to_s] - 1
       else
	     upper = parent_spaces[@tif.directory_parent.to_s]
       end
       1.upto(upper*3) { |i| spaces = " #{spaces}" }
     %>

      <%= spaces %>
      <%= image_tag "#{@tif.icon}", :align => 'absmiddle' %>
      <%=h @tif.filename %>

     <%= @tif.created_at.to_formatted_s(:short) %>
    <% if @assignment.programming %>

      	<% if @tif.main %>
	      <%= image_tag 'accept.png' %> Current
	    <% elsif @tif.main_candidate && ! (@display_turnin.sealed || @display_turnin.finalized) %>
	      <%= image_tag 'add.png' %> Candidate
	         </acronym>
	    <% end %>

	   <% if any_java %>

		  <% if @tif.extension.eql?('java') ## will need to expand later w/ other languages %>
		    <% if @tif.gradable %>
		      <%= image_tag 'accept.png' %>
		    <% else %>
		      <%= image_tag 'cross.png' %> <%= link_to_function "Details", visual_effect(:toggle_appear, "dirty_details_#{@tif.id}" ) %>
		    <% end %>
		  <% end %>

		  <% if @tif.extension.eql?('java') ## will need to expand later w/ other languages %>
		    <% if ! @tif.gradable %>
		      <% if @tif.gradable_override %>
		        <%= image_tag 'accept.png' %> Yes
		      <% else %>
		        <%= image_tag 'cross.png' %> No
		      <% end %>
		    <% end %>
		  <% end %>

	  <% end %>

    <% end %>

     <% if @tif.directory_entry %>
       <s>Download</s>
     <% else %>
       <%= link_to 'Download', :action => 'download_file', :id => @tif.id %>
     <% end %>

      <% if @tif.directory_entry %>

      <% else %>
        <% if @tif.is_text_file? %>
          <%= link_to 'View/Comment', :action => 'view_file', :course => @course, :assignment => @assignment, :student => @student, :id => @tif %>
        <% else %>
          <%= link_to 'Download', :action => 'download_file', :course => @course, :assignment => @assignment, :student => @student, :id => @tif %>
        <% end %>
      <% end %>

    <% if @team %>

      <%= @tif.user.display_name %>

    <% end %>

  <% if any_java && @tif.extension.eql?('java') && !@tif.gradable %>
    <tr style="display: none;" id="dirty_details_<%=@tif.id%>">

Can not AutoGrade your assignment because '<%= @tif.filename %>' it contains the following disallowed strings.

<% unless @tif.gradable_message.nil? %><%= @tif.gradable_message.to_html %><% end %>

  <% end %>

  <% previous_tif = @tif %>
<% end %>

<% else %>

No files submitted

<% end %>

<% if !@assignment.auto_grade_setting.nil? && @assignment.auto_grade_setting.io_check? ## Only kind of autograde supported %>

AutoGrade Results

<%= link_to "View I/O Check results for #{@student.display_name}.", :course => @course, :assignment => @assignment, :student => @student, :action => 'view_io_tests' %> From this screen you can also re-run the automatic tests.

<% elsif @assignment.auto_grade && !@assignment.auto_grade_setting.nil? && @assignment.auto_grade_setting.check_style? %>

PMD Control

<%= image_tag 'flag_green.png' %><%= link_to 'Re-run PMD checks for the current turn-in set.', :course => @course, :assignment => @assignment, :student => @student, :action => 'io_retest' %>

<% end %>

Grade

<% unless @grade_item %>

Warning - this assignment is not connected with an entry in the GradeBook.

<% else %>

  <%= start_form_tag :action => 'submit_grade', :id => @student, :course => @course, :assignment => @assignment %>
    <%= error_messages_for 'grade_entry' %>

You can enter general assignment comments here.   You also have the ability to comment on individual files below as well as to make annotations tied to specific line numbers for text files.   If you enter a negative point value, the student's grade for this assignment will be deleted (including the comments entered below). Leaving the points value blank, results in a score of zero.

Points:
	  <%= text_field 'grade_entry', 'points', :size => 10  %> / <%= sprintf("%0.1f", @grade_item.points ) %>

General comments:

                <% if @assignment.team_project && !@team.nil? %>
                        <%= check_box_tag( 'apply_to_team', true, @apply_to_team )%> Apply grade and comments to all team members.

                <% end %>

      <%= text_area 'grade_entry', 'comment', "cols" => 90, "rows" => 12, :class=>'short'  %>

      <%= link_to_function "More room to type", "Form.Element.toggleHeight(this, 'grade_entry_comment'); return false;", :class => 'bottab more' %>

<%= submit_tag "Submit Grade and Comments" %>

  <%= end_form_tag %>

<% end %>

Assignment Journals

<% if !@assignment.team_project || @team.nil? %>

	<% if @journals.size == 0 %>

This student has not submitted any journal entries.

	<% else %>

Reported Time: <%= pluralize(@days,'day') %>, <%= pluralize(@hours,'hour') %>, <%= pluralize(@minutes,'minute') %>.

    <%= render :partial => 'journalheader' %>

   <% count = 0 %>
   <% for journal in @journals %>
	<% count = count.next
	     odd = "odd"
	     odd = "even" if count.even?
	   %>
 	 <%= render :partial => "journal", :locals => { :odd => odd, :journal => journal } %>
   <% end %>

  <% end %>

<% else %>

Displaying Journal entries for all team members

  <% for tm in @team.team_members %>

Journals for <%= tm.user.display_name %>

	<% if @team_journals[tm.user.id].nil? || @team_journals[tm.user.id].size == 0 %>

     This student has not submitted any journal entries.

	<% else %>

      <%= render :partial => 'journalheader' %>

      <% count = 0 %>
      <% for journal in @team_journals[tm.user.id] %>
        <% count = count.next
	     odd = "odd"
	     odd = "even" if count.even?
	     %>
 	     <%= render :partial => "journal", :locals => { :odd => odd, :journal => journal } %>
      <% end %>

	<% end %>

  <% end %>

<% end %>

Previous Turn-in sets (read-only)

Previous turn-in sets for <%= @student.display_name %>.   By selecting these previous turn-in sets you can view the files and AutoGrade reports to see how students progressed during development.  Any comments entered on previous turn-in sets are ultimately available to students as they browse their own turn-in history.

<% if @assignment.auto_grade %>
 <% unless @assignment.auto_grade_setting.nil? %>
  <% if @assignment.auto_grade_setting.student_style || @assignment.auto_grade_setting.student_io_check || @assignment.auto_grade_setting.student_autograde %>

<%= image_tag 'information.png' %> This assignment has automatic grading enabled and is limited to <%= @app['turnin_limit'] %> submissions per day.

<%= @student.display_name %> has finalized <%= @today_count %> turn-in sets today, and may finalize <%= @remaining_count %>  more turn-in sets today.   If the student requires additional turn-in sets, you may reopen the most recent turn-in set, allowing them to submit additional turn-in sets in a single day.

	<% end %>
 <% end %>
<% end %>

    #
    Previous Set
    <% if @team %>Creator	<% end %>
    View
    Archived
    Finalized
    Controls

<% count = @turnins.size + 1 %>
<% for ut in @turnins %>
  <% count = count - 1
     odd = "odd"
     odd = "even" if count.even?
   %>
  <tr class="<%=odd%> hover" id="user_turnin_<%=ut.id%>">
    <%= count %>
    <%=h ut.updated_at.to_formatted_s(:long) %>
      <% if ut.id == @current_turnin.id %>current <%end%>

    <% if @team %><%= ut.user.display_name %>	<% end %>
    <%= link_to 'View', :action => 'view_student', :course => @course, :assignment => @assignment, :id => @student, :ut => ut.id %>
    <% if ut.sealed %> <%= image_tag 'accept.png' %> <% else %> <%= image_tag 'cross.png' %> <% end %>
    <% if ut.finalized %> <%= image_tag 'accept.png' %> <% else %> <%= image_tag 'cross.png' %> <% end %>
    <td id="reopen_<%= ut.id %>">
	  <% if @current_turnin.id == ut.id && ut.finalized %>
	    <%= link_to  'Reopen (unfinalized)', :controller => '/instructor/turnins', :action => 'unfinalize', :course => @course.id, :assignment => @assignment, :id => @student %>
	  <% elsif @current_turnin.id == ut.id %>
	    Most recent turn-in - but not finalized.
	  <% else %>
	    --
	  <% end %>

<% end %>


Grammar.

Grammar.

<% @title = "Make an annotation on '" + h(@info_request.title) + "'" %>

<% if @existing_comment %>

    <%= user_or_you_capital(@existing_comment.user) %> already
    made this annotation on <%=simple_date(@existing_comment.created_at)%>.

<% end %>

<%= foi_error_messages_for :comment %>

Add an annotation to '<%=request_link(@info_request)%>'

Annotations are so anyone, including you, can help the requester with their request. For example:

<% if [ 'waiting_clarification' ].include?(@info_request.described_state) %>

 Advise on how to best clarify the request.

<% end %>

<% if @info_request.awaiting_description %>
<% end %>

<% if not [ 'successful', 'partially_successful' ].include?(@info_request.described_state) %>

 Link to the information requested, if it is already available on the Internet.

 Suggest where else the requester might find the information.

 Offer better ways of wording the request to get the information.

<% end %>

<% if [ 'successful', 'partially_successful' ].include?(@info_request.described_state) %>

 Summarise the content of any information returned.

 Say how you've used the information, with links if possible.

 Thank the public authority or <%=h @info_request.user.name %>.

<% end %>
<% if [ 'partially_successful' ].include?(@info_request.described_state) %>

 Suggest how the requester can find the rest of the information.

<% end %>
<% if [ 'successful', 'partially_successful' ].include?(@info_request.described_state) %>

 Point to related information, campaigns or forums which may be useful.

<% end %>

<% if [ 'not_held' ].include?(@info_request.described_state) %>

 Ideas on what other documents to request which the authority may hold.

<% end %>
<% if [ 'rejected' ].include?(@info_request.described_state) %>

 Advise on whether the rejection is legal, and how to complain about it if not.

<% end %>

<% if [ 'error_message' ].include?(@info_request.described_state) %>

 You know what caused the error, and can suggest a solution, such as a working email address.

<% end %>
<% if [ 'requires_admin' ].include?(@info_request.described_state) %>

 Your thoughts on what the WhatDoTheyKnow administrators should do about the request.

<% end %>

    <big>Annotations will be posted publicly here, and are
    not sent to the authority.</big>

<%= render :partial => 'comment/comment_form', :locals => { :track_thing => @track_thing } %>

<% @title = "Make an annotation on '" + h(@info_request.title) + "'" %>

<% if @existing_comment %>

    <%= user_or_you_capital(@existing_comment.user) %> already
    made this annotation on <%=simple_date(@existing_comment.created_at)%>.

<% end %>

<%= foi_error_messages_for :comment %>

Add an annotation to '<%=request_link(@info_request)%>'

Annotations are so anyone, including you, can help the requester with their request. For example:

<% if [ 'waiting_clarification' ].include?(@info_request.described_state) %>

 Advise on how to best clarify the request.

<% end %>

<% if @info_request.awaiting_description %>
<% end %>

<% if not [ 'successful', 'partially_successful' ].include?(@info_request.described_state) %>

 Link to the information requested, if it is already available on the Internet.

 Suggest where else the requester might find the information.

 Offer better ways of wording the request to get the information.

<% end %>

<% if [ 'successful', 'partially_successful' ].include?(@info_request.described_state) %>

 Summarise the content of any information returned.

 Say how you've used the information, with links if possible.

 Thank the public authority or <%=h @info_request.user.name %>.

<% end %>
<% if [ 'partially_successful' ].include?(@info_request.described_state) %>

 Suggest how the requester can find the rest of the information.

<% end %>
<% if [ 'successful', 'partially_successful' ].include?(@info_request.described_state) %>

 Point to related information, campaigns or forums which may be useful.

<% end %>

<% if [ 'not_held' ].include?(@info_request.described_state) %>

 Ideas on what other documents to request which the authority may hold.

<% end %>
<% if [ 'rejected' ].include?(@info_request.described_state) %>

 Advise on whether the rejection is legal, and how to complain about if not.

<% end %>

<% if [ 'error_message' ].include?(@info_request.described_state) %>

 You know what caused the error, and can suggest a solution, such as a working email address.

<% end %>
<% if [ 'requires_admin' ].include?(@info_request.described_state) %>

 Your thoughts on what the WhatDoTheyKnow administrators should do about the request.

<% end %>

    <big>Annotations will be posted publicly here, and are
    not sent to the authority.</big>

<%= render :partial => 'comment/comment_form', :locals => { :track_thing => @track_thing } %>


git-svn-id: http://svn.castleproject.org:8080/svn/castle/trunk@77 73e77b4c-caa6-f847-a29a-24ab75ae54b6

<% @page_title = "Home" %>
<% @main_title = "Welcome" %>
<%= render "/home/deflinks" %>

Castle is a small collection of tools and a simple inversion of control
container intended to work together to make development of
applications (enterprise and server like) easier.

While we don't pursue a paradigm shift, we do aim to
provide a reference to create application with a nice
design and yet adhere to values of pragmatic programmers
like orthogonality and reversibility.

To achieve good design, Castle promotes

Component oriented programming

Aspect oriented programming

Separation of concerns

Our sub projects help us delivering this capabilities to
the CLI. They are totally independent and can be used alone
as well.

Castle container

Castle Container is a very simple inversion of control
container which can combine facilities to grow orthogonally.
For example, you can add a NHibernate facility - thus allowing your
data access components can have references to NHibernate sessions -
 and use our AOP facility which will allow your components to use mixins
and interceptors.

These facilities work side-by-side, without interfering
or depending on each other, to provide you a set of features.

News

11-22-04: Containers documentation

   Documentation for MicroKernel and Windsor are
   now available.
   Click here to access them.

11-22-04: Alpha-1 Released

   First release of all pieces that
   constitues the project is now available.
   Click here to download

11-19-04: New site is up and running

   The http://www.castleproject.org is released.

Mailing list

If you want to discuss features, ask question or anything related, please subscribe to
castle-devel mailing list.

<% @page_title = "Home" %>
<% @main_title = "Welcome" %>
<%= render "/home/deflinks" %>

Castle is a small collection of tools and a simple inversion of control
container intended to work together to make development of
applications (enterprise and server like) easier.

While we don't pursue a paradigm shift, we do aim to
provide a reference to create application with a nice
design and yet adhere to values of pragmatic programmers
like orthogonality and reversibility.

To achieve good design, Castle promotes

Component oriented programming

Aspect oriented programming

Separation of concerns

Our sub projects help us delivering this capabilities to
the CLI. They are totally independent and can be used alone
as well.

Castle container

Castle Container is a very simple inversion of control
container which can combine facilities to grow orthogonally.
For example, you can add a NHibernate facility - thus allowing your
data access components can have references to NHibernate sessions -
 and use our AOP facility which will allow your components to use mixins
and interceptors.

These facilities work side-by-side, without interfering
or depending on each other, to provide you a set of features.

Castle container

11-22-04: Alpha-1 Release

   First release of all pieces that
   constitues the project is now available.
   Click here to download

11-19-04: New site is up and running

   The http://www.castleproject.org is released.

Mailing list

If you want to discuss features, ask question or anything related, please subscribe to
castle-devel mailing list.