Пример #1
0
def attach_as_file(handle_id, name, content, user, overwrite=False):
    """
        Attach a file to a handle_id.
        - handle_id the id of the node to attach a file to.
        - name the name of the file
        - content the content of the file (e.g. a string)
        - user the user doing the attach
        - overwrite should the file be overwritten if it exists. (Default: False)

        All files are stored in {root}/niweb/media/attachments, and the metadata is attached in the django db.
    """
    nh = NodeHandle.objects.get(pk=handle_id)
    _file = SimpleUploadedFile(name,
                               content.encode('utf-8'),
                               content_type="text/plain")
    if overwrite:
        attachment = Attachment.objects.filter(
            object_id=handle_id, attachment_file__endswith=name).first()
        if attachment:
            attachment.attachment_file.delete()
    if not attachment:
        attachment = Attachment()
    attachment.content_type = ContentType.objects.get_for_model(nh)
    attachment.object_id = handle_id
    attachment.creator = user
    attachment.attachment_file = _file
    return attachment.save()
Пример #2
0
    def test_evidence_attachments(self):
        task = Task.objects.create(name='Test task',
                                   creator=self.user)
        self.assertEquals(Task.objects.filter(name='Test task').count(), 1)

        evidence = Evidence.objects.create(task=task)
        self.assertEquals(Evidence.objects.filter(task=task).count(), 1)

        att = Attachment()
        att.creator = self.user

        file_mock = mock.MagicMock(spec=File, name='FileMock')
        file_mock.name = 'test1.jpg'
        storage_mock = mock.MagicMock(spec=Storage, name='StorageMock')
        storage_mock.url = mock.MagicMock(name='url')
        storage_mock.url.return_value = '/tmp/test1.jpg'

        ct = ContentType.objects.get(app_label=evidence._meta.app_label,
                                     model=evidence._meta.model_name)
        att.content_type = ct
        att.object_id = evidence.id
        att.attachment_file = file_mock
        
        with mock.patch('django.core.files.storage.default_storage._wrapped', storage_mock):
            att.save()
        self.assertEquals(Attachment.objects.count(), 1)
        self.assertEquals(att, evidence.attachments.first())
Пример #3
0
def resume(request):
    registration = get_object_or_none(ConferenceRegistration, user=request.user, submitted=True, cancelled=False)

    if not registration:
        request.user.message_set.create("You aren't registered for conference...")
        return HttpResponseRedirect(reverse('confreg'))
    
    if request.method == 'POST':
        form = ConferenceResumeForm(request.POST, request.FILES)
        if form.is_valid():
            resume = Attachment()
            resume.creator = request.user
            resume.content_type = ContentType.objects.get_for_model(registration)
            resume.object_id = registration.id
            resume.attachment_file = form.cleaned_data['resume']
            resume.save()
            
            request.user.message_set.create(message="Thank you!")
            return HttpResponseRedirect(reverse('confreg'))
    else:
        form = ConferenceResumeForm()
                
    return render_to_response('conference/resume.html',
                              {'registration': registration,
                               'form': form,
                               'user': request.user,
                              },
                              context_instance=RequestContext(request)
                             )
Пример #4
0
def registration_preview(request):
    username = request.user.username
    
    f = ConferenceRegistrationForm(request.POST, request.FILES)
    f.user = request.user
    if f.is_valid():
        if f.cleaned_data.get('resume', None):
            resume = Attachment()
            resume.creator = request.user
            resume.content_type = ContentType.objects.get_for_model(request.user)
            resume.object_id = request.user.id
            resume.attachment_file = f.cleaned_data['resume']
            resume.save()
            
    return ConferenceRegistrationFormPreview(ConferenceRegistrationForm)(request, username=username)
Пример #5
0
def registration_preview(request):
    #def pay_membership_preview(request, username):
    username = request.user.username

    f = ConferenceRegistrationForm(request.POST, request.FILES)
    f.user = request.user
    if f.is_valid():
        if f.cleaned_data.get('resume', None):
            resume = Attachment()
            resume.creator = request.user
            resume.content_type = ContentType.objects.get_for_model(
                request.user)
            resume.object_id = request.user.id
            resume.attachment_file = f.cleaned_data['resume']
            resume.save()

    return ConferenceRegistrationFormPreview(ConferenceRegistrationForm)(
        request, username=username)