Display an error message when the submission to work is neither contains files nor is the submission URL to work.
diff --git a/app/soc/modules/gci/views/task.py b/app/soc/modules/gci/views/task.py
index 26c213e..155ece0 100644
--- a/app/soc/modules/gci/views/task.py
+++ b/app/soc/modules/gci/views/task.py
@@ -408,6 +408,10 @@
         for f in self.data.request.file_uploads.itervalues():
           f.delete()
         return self.redirect.id().to('gci_view_task', extra=['file=0'])
+    else:
+      logging.warning('Neither the URL nor the files were provided for work '
+                      'submission.')
+      return self.redirect.id().to('gci_view_task', extra=['ws_error=1'])
 
 
     task = self.data.task
@@ -624,6 +628,9 @@
       if self.data.GET.get('file', None) == '0':
         context['work_file_form'].addFileRequiredError()
 
+      if self.data.GET.get('ws_error', None) == '1':
+        context['ws_error'] = True
+
       url = '%s?submit_work' %(
           self.data.redirect.id().urlOf('gci_view_task'))
       context['direct_post_url'] = url
diff --git a/app/soc/templates/v2/modules/gci/task/_work_submissions.html b/app/soc/templates/v2/modules/gci/task/_work_submissions.html
index 45200dd..f496b36 100644
--- a/app/soc/templates/v2/modules/gci/task/_work_submissions.html
+++ b/app/soc/templates/v2/modules/gci/task/_work_submissions.html
@@ -54,6 +54,13 @@
 
     {% if work_file_form %}
       <span class="block-task-uploaded-code-note">Upload your final work file or paste in its URL, then click Submit.</span>
+      {% if ws_error %}
+        <div class="form-row error">
+          <span class="form-row-error-msg">
+            Your work was not submitted due to an error, please retry.
+          </span>
+        </div>
+      {% endif %}
       <form method="post" enctype="multipart/form-data" id="file-form" class="form-upload-code clearfix">
         {{ work_file_form.render }}
         <div class="form-row form-row-buttons">