def printschedules(self, request, tl, one, two, module, extra, prog):
        " A link to print a schedule. "
        if not request.GET.has_key('sure') and not request.GET.has_key(
                'gen_img'):
            printers = Printer.objects.all().values_list('name', flat=True)

            return render_to_response(self.baseDir() + 'instructions.html',
                                      request, {'printers': printers})

        if request.GET.has_key('sure'):
            return render_to_response(
                self.baseDir() + 'studentschedulesrenderer.html', request, {})

        requests = PrintRequest.objects.filter(time_executed__isnull=True)
        if extra and Printer.objects.filter(name=extra).exists():
            requests = requests.filter(printer__name=extra)

        if requests.exists():
            req = requests[0]
            req.time_executed = datetime.now()
            req.save()
            response = ProgramPrintables.get_student_schedules(request,
                                                               [req.user],
                                                               prog,
                                                               onsite=True)
            return response
        else:
            # No response if no users
            return HttpResponse('')
Exemple #2
0
    def studentschedule(self, request, *args, **kwargs):
        if 'user' in request.GET:
            user = ESPUser.objects.get(id=request.GET['user'])
        else:
            user = request.user

        #  onsite=False since we probably want a PDF
        return ProgramPrintables.get_student_schedules(request, [user], self.program, onsite=False)
Exemple #3
0
    def studentschedule(self, request, *args, **kwargs):
        request.GET = {'extra': str(285), 'op':'usersearch',
                       'userid': str(request.user.id) }

        module = [module for module in self.program.getModules('manage')
                  if type(module) == ProgramPrintables        ][0]

        module.user = request.user
        module.program = self.program
#        return module.studentschedules(request, *args, **kwargs)
        return ProgramPrintables.get_student_schedules(request, [request.user], self.program, onsite=True)
Exemple #4
0
    def studentschedule(self, request, *args, **kwargs):
        #   tl, one, two, module, extra, prog
        format = 'pdf'
        if 'format' in request.GET:
            format = request.GET['format'].lower()
        request.GET = {'op':'usersearch',
                       'userid': str(request.user.id) }

        module = [module for module in self.program.getModules('manage')
                  if type(module) == ProgramPrintables        ][0]

        module.user = request.user
        module.program = self.program
        
        #  onsite=False since we probably want a PDF
        return ProgramPrintables.get_student_schedules(request, [request.user], self.program, onsite=False)
    def printschedules(self, request, tl, one, two, module, extra, prog):
        " A link to print a schedule. "
        if not request.GET.has_key('sure') and not request.GET.has_key(
                'gen_img'):
            printers = [x.name for x in GetNode('V/Publish/Print').children()]

            return render_to_response(self.baseDir() + 'instructions.html',
                                      request, (prog, tl),
                                      {'printers': printers})

        if request.GET.has_key('sure'):
            return render_to_response(
                self.baseDir() + 'studentschedulesrenderer.html', request,
                (prog, tl), {})

        verb_path = 'V/Publish/Print'
        if extra and extra != '':
            verb_path = "%s/%s" % (verb_path, extra)

        verb = GetNode(verb_path)
        qsc = self.program_anchor_cached().tree_create(['Schedule'])

        Q_qsc = Q(qsc=qsc.id)
        Q_verb = Q(verb__in=[verb.id] + list(verb.children()))

        ubits = UserBit.valid_objects().filter(Q_qsc & Q_verb).order_by(
            'startdate')[:1]

        for ubit in ubits:
            ubit.enddate = datetime.now()
            ubit.save()

        # get students
        old_students = set([ESPUser(ubit.user) for ubit in ubits])

        if len(old_students) > 0:
            response = ProgramPrintables.get_student_schedules(
                request, list(old_students), prog, onsite=True)
            # set the refresh rate
            #response['Refresh'] = '2'
            return response
        else:
            # No response if no users
            return HttpResponse('')
Exemple #6
0
    def printschedules(self, request, tl, one, two, module, extra, prog):
        " A link to print a schedule. "
        if not 'sure' in request.GET and not 'gen_img' in request.GET:
            printers = Printer.objects.all().values_list('name', flat=True)

            return render_to_response(self.baseDir()+'instructions.html',
                                    request, {'printers': printers})

        if 'sure' in request.GET:
            return render_to_response(self.baseDir()+'studentschedulesrenderer.html',
                            request, {})

        requests = PrintRequest.objects.filter(time_executed__isnull=True)
        if extra and Printer.objects.filter(name=extra).exists():
            requests = requests.filter(printer__name=extra)

        if requests.exists():
            req = requests[0]
            req.time_executed = datetime.now()
            req.save()
            response = ProgramPrintables.get_student_schedules(request, [req.user], prog, onsite=True)
            if request.GET['gen_img'] == 'json':
                import base64
                src = "data:image/png;base64,{}".format(base64.b64encode(response.content))
                data = {
                    'src': src,
                    'id': req.id,
                    'user': req.user.username,
                    'time_requested': str(req.time_requested),
                    'time_executed': str(req.time_executed),
                }
                resp = HttpResponse(content_type='application/json')
                json.dump(data, resp)
                return resp
            else:
                return response
        else:
            # No response if no users
            return HttpResponse('')