import datetime
from django.http import HttpResponse
-from django.views.generic import CreateView
-from django.views.generic.edit import ProcessFormView
-from django.views.generic.edit import ModelFormMixin
-
-from karmaworld.apps.document_upload.models import RawDocument
from karmaworld.apps.document_upload.forms import RawDocumentForm
+from karmaworld.apps.users.models import KarmaUser
+
def save_fp_upload(request):
""" ajax endpoint for saving a FilePicker uploaded file form
delta = time_b - time_a
raw_document.ip = request.META['REMOTE_ADDR']
raw_document.uploaded_at = datetime.datetime.utcnow()
+ if request.POST['email'] != '':
+ raw_document.user = KarmaUser.objects.get_or_create(email=request.POST['email'])[0]
time_c = datetime.datetime.now()
# note that .save() has the side-effect of kicking of a celery processing task
raw_document.save()
from taggit.managers import TaggableManager
from karmaworld.apps.courses.models import Course
+from karmaworld.apps.users.models import KarmaUser
try:
from secrets.drive import GOOGLE_USER
slug = models.SlugField(max_length=255, null=True)
# metadata relevant to the Upload process
- ip = models.IPAddressField(blank=True, null=True,
- help_text=u"IP address of the uploader")
+ user = models.ForeignKey('users.KarmaUser', null=True)
+ ip = models.IPAddressField(blank=True, null=True,
+ help_text=u"IP address of the uploader")
uploaded_at = models.DateTimeField(null=True, default=datetime.datetime.utcnow)
fp_file = django_filepicker.models.FPFileField(
upload_to=_choose_upload_to,
- storage=fs, \
+ storage=fs,
null=True, blank=True,
help_text=u"An uploaded file reference from Filepicker.io")
mimetype = models.CharField(max_length=255, blank=True, null=True)
<div class="small-10 small-offset-1 columns">
<div id="forms_container">
</div>
- <div id="success" style="display: none;">
- <p>Thank you for sharing:</p>
- <ul id="uploaded_files">
- </ul>
- <p>Your files are being processed and should be viewable within a few minutes.</p>
- <p>If you'd like to share again, please <a href="">click here</a>.</p>
+ <div id="success" class="hide">
+ <p>Thank you for sharing:</p>
+ <ul id="uploaded_files">
+ </ul>
+ <p>Your files are being processed and should be viewable within a few minutes.</p>
+ <p>If you'd like to share again, please <a href="">click here</a>.</p>
</div>
</div>
</form>
</div>
</div>
- <div class="small-8 small-offset-3 columns large-2">
- <div id="save-btn" style="display:none">
- <i class=icon-save></i> Save
+ <div id="save-btn-wrapper" class="hide row">
+ <div class="small-10 small-offset-1 columns">
+ <div class="row" style="display: inline;">
+ <form class="inline-form" method="POST" action="{% url 'upload_post' %}">
+ <div class="small-11 large-6 columns">
+ <legend>Your Email Address (Optional)</legend>
+ <input type="text" class="intext" id="id_email" name="email"
+ placeholder="">
+ </div>
+ </form>
+ </div>
+ <div class="row">
+ <div class="small-8 large-6 columns">
+ <div id="save-btn" class="action-btn">
+ <i class=icon-save></i> Save
+ </div>
+ </div>
+ </div>
</div>
</div>
console.log($(this).parent().parent());
$(this).parent().parent().remove();
});
-
- document.getElementById('save-btn').style.display = 'inline';
+
+ $('#save-btn-wrapper').show();
}
$('#save-btn').on('click', function(e){
tags = $(el).find('.taggit-tags').val();
course = $(el).find('.course_id').val();
csrf = $(el).find('.csrf').val();
+ email = $('#id_email').val();
mimetype = $(el).find('.mimetype').val();
$.post('{% url 'upload_post' %}', {
'tags': tags,
'course': course,
'csrfmiddlewaretoken': csrf,
- 'mimetype': mimetype
+ 'mimetype': mimetype,
+ 'email': email
}, function(data){
if (data === 'success') {
// For multiple uploads, we may end up clearing and re-
$('#uploaded_files').append($('<li>', {text: uploaded_files[i]}));
}
$('#success').show();
- document.getElementById('save-btn').style.display = 'none';
+ $('#save-btn-wrapper').show();
$('#forms_container .inline-form').remove();
_gat._getTracker()._trackEvent('upload', 'upload form submitted');
setTimeout(function(){