def dehydrate_quiz_secs(self, bundle):
     start_date = datetime.datetime.now() - datetime.timedelta(days=14)
     end_date = datetime.datetime.now()
     return Tracker.activity_secs(user=bundle.obj,
                                  type='quiz',
                                  start_date=start_date,
                                  end_date=end_date)
 def dehydrate_page_views(self, bundle):
     start_date = datetime.datetime.now() - datetime.timedelta(days=14)
     end_date = datetime.datetime.now()
     return Tracker.activity_views(user=bundle.obj,
                                   type='page',
                                   start_date=start_date,
                                   end_date=end_date)
    def download_detail(self, request, **kwargs):
        self.is_authenticated(request)
        self.throttle_check(request)

        pk = kwargs.pop('pk', None)
        module = self._meta.queryset.get(pk=pk)

        file_to_download = module.getAbsPath()
        schedule = module.get_default_schedule()
        has_completed_trackers = Tracker.has_completed_trackers(
            module, request.user)
        cohort = Cohort.member_now(module, request.user)
        if cohort:
            if cohort.schedule:
                schedule = cohort.schedule

        # add scheduling XML file
        if schedule or has_completed_trackers:
            file_to_download = settings.MODULE_UPLOAD_DIR + "temp/" + str(
                request.user.id) + "-" + module.filename
            shutil.copy2(module.getAbsPath(), file_to_download)
            zip = zipfile.ZipFile(file_to_download, 'a')
            if schedule:
                zip.writestr(module.shortname + "/schedule.xml",
                             schedule.to_xml_string())
            if has_completed_trackers:
                zip.writestr(module.shortname + "/tracker.xml",
                             Tracker.to_xml_string(module, request.user))
            zip.close()

        wrapper = FileWrapper(file(file_to_download))
        response = HttpResponse(wrapper, content_type='application/zip')
        response['Content-Length'] = os.path.getsize(file_to_download)
        response['Content-Disposition'] = 'attachment; filename="%s"' % (
            module.filename)

        md = ModuleDownload()
        md.user = request.user
        md.module = module
        md.module_version = module.version
        md.save()

        module_downloaded.send(sender=self, module=module, user=request.user)

        return response
    def download_detail(self, request, **kwargs):
        self.is_authenticated(request)
        self.throttle_check(request)
        
        pk = kwargs.pop('pk', None)
        module = self._meta.queryset.get(pk = pk)
        
        file_to_download = module.getAbsPath();
        schedule = module.get_default_schedule()
        has_completed_trackers = Tracker.has_completed_trackers(module,request.user)
        cohort = Cohort.member_now(module,request.user)
        if cohort:
            if cohort.schedule:
                schedule = cohort.schedule
        
        # add scheduling XML file     
        if schedule or has_completed_trackers:
            file_to_download = settings.MODULE_UPLOAD_DIR +"temp/"+ str(request.user.id) + "-" + module.filename
            shutil.copy2(module.getAbsPath(), file_to_download)
            zip = zipfile.ZipFile(file_to_download,'a')
            if schedule:
                zip.writestr(module.shortname +"/schedule.xml",schedule.to_xml_string())
            if has_completed_trackers:
                zip.writestr(module.shortname +"/tracker.xml",Tracker.to_xml_string(module,request.user))
            zip.close()

        wrapper = FileWrapper(file(file_to_download))
        response = HttpResponse(wrapper, content_type='application/zip')
        response['Content-Length'] = os.path.getsize(file_to_download)
        response['Content-Disposition'] = 'attachment; filename="%s"' %(module.filename)
        
        md = ModuleDownload()
        md.user = request.user
        md.module = module
        md.module_version = module.version
        md.save()
        
        module_downloaded.send(sender=self, module=module, user=request.user)
        
        return response
 def dehydrate_quiz_secs(self,bundle):
     start_date = datetime.datetime.now() - datetime.timedelta(days=14)
     end_date = datetime.datetime.now()
     return Tracker.activity_secs(user=bundle.obj,type='quiz',start_date=start_date,end_date=end_date)
 def dehydrate_page_views(self,bundle):
     start_date = datetime.datetime.now() - datetime.timedelta(days=14)
     end_date = datetime.datetime.now()
     return Tracker.activity_views(user=bundle.obj,type='page',start_date=start_date,end_date=end_date)