blob: 4970c0398329debae611f3843a2c71942d174f7e [file] [log] [blame]
{% extends "modules/gci/base.html" %}
{% comment %}
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
{% endcomment %}
{% block stylesheets %}
{{ block.super }}
<link rel="stylesheet" type="text/css" media="screen"
href="/soc/content/{{ app_version }}/css/gci/forms.css" />
<link rel="stylesheet" type="text/css" media="screen"
href="/soc/content/{{ app_version }}/css/gci/thirdparty/uniform.default.css" />
{% endblock stylesheets %}
{% block page_content %}
<form action="" method="post" id="form" class="form-bulk">
<h2 id="form-bulk-title">{{ page_name}}</h2>
{{ form.render }}
<div id="form-register-fieldset-button-row" class="button-row">
<input id="form-bulk-submit" type="submit" value="Submit" class="submit" />
</div>
<div class="block gold-block">
<div class="block-title">Instructions</div>
<div class="block-content">
For bulk uploading tasks, please use your favorite spreadsheet editor
that can export data in CSV format.
Your columns can be in any order, with the first row specifying the type:
<ul>
<li><b>Sync Key</b>: a unique local identifier for each task
<i>(defaults to "")</i></li>
<li><b>Title</b>: task title <i>(required)</i></li>
<li><b>Description</b>: task details in HTML5 markup
<i>(required)</i></li>
<li><b>Time to Complete</b>: task in hours, as integer
<i>(defaults to 72)</i></li>
<li><b>Mentors</b>: comma separated usernames of mentors for this task
<i>(required)</i></li>
<li><b>Types</b>: one or more of the allowed types
<i>({{ types }})</i>, comma separated <i>(required)</i></li>
<li><b>Tags</b>: any custom tags you want to add, comma separated
<i>(defaults to "")</i><br/>
If the list contains a special
<strong>{{ beginner_task_tag }}</strong> tag,
the newly created task will be a beginner task.
</li>
</ul>
The field separator is the comma character. <br/>
If your field contains commas, use double quotes (&quot;field with a ,
comma&quot;) to quote the field content. <br/>
If your field contains double quotes, escape as two double quotes
(&quot;field with &quot;&quot; double quotes&quot;). <br/>
<br/>
The unlabeled, ordered column format used in GCI 2013 (Title,
Description, Time to Complete, Mentors, Types, Tags) will still work but
is deprecated and will be removed in the future. The bulk uploader will
assume you are using this older format if you omit the required field
labels (Title, Description, Mentors, Types) from the first row.<br/>
<br/>
If the optional <b>Sync Key</b> is provided, you can also use this tool
to bulk update tasks after editing your local copy. Using this feature,
you may resubmit your entire spreadsheet each time; unmodified tasks will
be skipped, modified tasks will be updated, and new tasks will be added
in a single pass. Any task missing a sync key will be added as a new task
and may not be later updated with the bulk upload tool.<br/>
<br/>
New tasks uploaded by this tool will be initially set as
<b>Unpublished</b>, you will need to publish them before they'll be
visible to students. Tasks modified by bulk updates will not change
state. The title, description, time to complete, and
{{ beginner_task_tag }} tag may not be modified on tasks which students
are working on or are completed.<br/>
<br/>
</div>
</div>
<div class="block green-block">
<div class="block-title">Example</div>
<div class="block-content">
<b>Initial upload:</b>
<pre class="example-box">
Sync Key,Title,Description,Mentors,Types,Tags
"Intro 1","Welcome to Code","Follow the ""Getting Started"" guide","amy","Code","@beginner"
"Intro 2","Welcome to Code","Follow the ""Getting Started"" guide","amy","Code","@beginner"
"Intro 3","Welcome to Code","Follow the ""Getting Started"" guide","amy","Code","@beginner"
"Hangout 1","Weekly Hangout","Host our weekly hangout on &lt;b&gt;December 7 @ 20:00 UTC&lt;/b&gt;","amy","Documentation/Training","hangouts"</pre>
<br/>
<b>Update to add a new mentor, types, tags, and additional tasks:</b>
<pre class="example-box">
Sync Key,Title,Description,Mentors,Types,Tags
"Intro 1","Welcome to Code","Follow the ""Getting Started"" guide","amy<b><b>,bob</b></b>",Code,"@beginner<b>,c</b>"
"Intro 2","Welcome to Code","Follow the ""Getting Started"" guide","amy<b>,bob</b>",Code,"@beginner<b>,c</b>"
"Intro 3","Welcome to Code","Follow the ""Getting Started"" guide","amy<b>,bob</b>",Code,"@beginner<b>,c</b>"
<b>"Intro 4","Welcome to Code","Follow the ""Getting Started"" guide","amy,bob",Code,"@beginner,c"</b>
<b>"Intro 5","Welcome to Code","Follow the ""Getting Started"" guide","amy,bob",Code,"@beginner,c"</b>
"Hangout 1","Weekly Hangout","Host our weekly hangout on &lt;b&gt;December 7 @ 20:00 UTC&lt;/b&gt;","amy<b>,bob</b>","Documentation/Training<b>,Outreach/Research</b>","hangouts"
<b>"Hangout 2","Weekly Hangout","Host our weekly hangout on &lt;b&gt;December 14 @ 20:00 UTC&lt;/b&gt;","amy,bob","Documentation/Training,Outreach/Research","hangouts"</b></pre>
</div>
</div>
</form>
{% endblock page_content %}