コード例 #1
0
ファイル: matter_export.py プロジェクト: rosscdh/toolkit
    def process(self):
        self.ensure_files_exist_locally()

        # zip everything in self.needed_files
        zip_filename = self.get_zip_filename(self.token_data)
        zip_file_path = self.create_zip(zip_filename)

        # upload to AWS as zip_filename
        s3boto_storage = _managed_S3BotoStorage()
        with default_storage.open(zip_file_path) as myfile:
            result = s3boto_storage.save(zip_filename, myfile)

        # send token-link via email
        self.send_email(self.token)
        self.conclude()
コード例 #2
0
ファイル: views.py プロジェクト: rosscdh/toolkit
    def dispatch(self, request, *args, **kwargs):
        #
        # take the passed in token and decode it, use the decoded parameters
        # to try to find and serve the exported zip file from s3
        #
        self.storage = _managed_S3BotoStorage()
        self.export_service = None

        token_data = signing.loads(kwargs.get('token'), salt=settings.URL_ENCODE_SECRET_KEY)

        kwargs.update(token_data)
        kwargs.update({'slug': token_data.get('matter_slug')})
        self.kwargs = kwargs

        return super(MatterDownloadExportView, self).dispatch(request, *args, **kwargs)
コード例 #3
0
ファイル: forms.py プロジェクト: rosscdh/toolkit
    def save(self):
        """
        Update the user profile data
        """
        profile = self.user.profile
        data = profile.data

        firm_logo = self.cleaned_data.pop('firm_logo', None)
        if firm_logo is not None:
            if hasattr(firm_logo, 'name'):
                image_storage = _managed_S3BotoStorage()
                # slugify a unique name
                name, ext = os.path.splitext(firm_logo.name)
                filename = slugify('%s-%s-%s' % (data.get('firm_name', self.user.username), self.user.pk, name))
                image_name = '%s%s' % (filename, ext)
                # save to s3
                result = image_storage.save('firms/%s' % image_name, firm_logo)
                # save to cleaned_data
                self.cleaned_data['firm_logo'] = image_storage.url(name=result)

        data.update(**self.cleaned_data)
        profile.data = data

        profile.save(update_fields=['data'])