示例#1
0
    def post(self):
        if self.request.form.get('jobid'):
            job = JobModel.get(self.request.form.get('jobid'))

            if job.JobStage >= JobStatus.PrePress and job.JobStage <= JobStatus.Complete:
                if job.JobStage == JobStatus.PrePress:
                    job.OrderStage = OrderStatus.PendingCustomerApproval
                if job.JobStage > JobStatus.PrePress:
                    job.JobStage = job.JobStage - 1
                    job.OrderStage = OrderStatus.JobSubmitted
                else:
                    job.JobStage = 0

                job.put()
                add_history(
                    "Advanced job to " + getStageDescription(job.JobStage),
                    self.auth_current_user, job.key(), job.Client.key())

            else:
                if job.OrderStage > OrderStatus.PendingCustomerApproval and job.OrderStage < OrderStatus.OutForDelivery:
                    job.OrderStage -= 100
                    job.put()
                    add_history(
                        "Advanced job to " +
                        getStageDescription(job.OrderStage),
                        self.auth_current_user, job.key(), job.Client.key())

            if self.request.is_xhr:
                context = {'regressed': True}
                return render_json_response(context)
示例#2
0
    def post(self):
        if self.request.form.get('jobid'):
            job = JobModel.get(self.request.form.get('jobid'))
            
            if job.JobStage >= JobStatus.PrePress and job.JobStage <= JobStatus.Complete:
                if job.JobStage == JobStatus.PrePress:
                    job.OrderStage = OrderStatus.PendingCustomerApproval
                if job.JobStage > JobStatus.PrePress:
                    job.JobStage = job.JobStage - 1
                    job.OrderStage = OrderStatus.JobSubmitted
                else:
                    job.JobStage = 0
                
                job.put()
                add_history("Advanced job to " + getStageDescription(job.JobStage), self.auth_current_user, job.key(), job.Client.key())
                
            else: 
                if  job.OrderStage > OrderStatus.PendingCustomerApproval and job.OrderStage < OrderStatus.OutForDelivery:
                    job.OrderStage -= 100
                    job.put()
                    add_history("Advanced job to " + getStageDescription(job.OrderStage), self.auth_current_user, job.key(), job.Client.key())

            if self.request.is_xhr:
                    context = {'regressed': True}
                    return render_json_response(context)                               
示例#3
0
 def get(self):
     """Simply returns a rendered template with an enigmatic salutation."""
     upload_url = blobstore.create_upload_url('/upload')
     auth_session = None
     if 'id' in self.auth_session:
         auth_session = self.auth_session
     
     template_values = {
         'uploadurl' : upload_url,
         'auth_session': auth_session,
         'current_user': self.auth_current_user,
         'login_url':    self.auth_login_url(),
         'logout_url':   self.auth_logout_url(),
         'current_url':  self.request.url
     }
     if self.session.get('client') is not None:
         template_values['client'] = ClientModel.get(self.session.get('client'))
         
         history = JobHistoryModel.all()
         history.filter("Client =", ClientModel.get(self.session.get('client')))
         history.order("-Created")
         history.fetch(100);
         template_values['history'] = history
         
         jobs = JobModel.all()
         jobs.filter("Client =", ClientModel.get(self.session.get('client')))
         jobs.order("-Changed")
         jobs.fetch(100)
         template_values['jobs'] = jobs
         logging.log(logging.INFO, "client " + ClientModel.get(self.session.get('client')).Name + " has " + str(template_values['jobs'].count()) + " jobs")
         
     return self.render_response('clientlanding.html', **template_values)
示例#4
0
    def post(self, **kwargs):
        if not self.auth_current_user.is_admin and not self.auth_current_user.is_staff:
            return redirect(url_for('auth/login'))
        
        ids = self.request.form.get('jobids').split(',')
        logging.log(logging.INFO, " ids: %s" % self.request.form.get('jobids') )
        if len(ids) > 0:
            invoice = InvoiceModel()
            invoice.CreatedBy = self.auth_current_user
            upload_files = self.get_uploads('invoice')
            blob_info = upload_files[0]
            invoice.File = str(blob_info.key())
            logging.log(logging.INFO, "set uploaded file as %s" % blob_info.key())

            invoice.Client = ClientModel.get(self.request.form.get('clientid'))
            invoice.put()
        
            for id in self.request.form.get('jobids').split(','):
                job = JobModel.get(id)
                job.Invoiced = True
                job.Invoice = invoice
                job.OrderStage = OrderStatus.Invoiced
                job.put()
            
        self.set_message('success', 'Successfully created invoice. ', flash=True, life=5)
        response = redirect_to('admin-invoices')
        # Clear the response body.
        response.data = ''
        return response
示例#5
0
    def get(self, **kwargs):

        if not self.auth_current_user.is_admin and not self.auth_current_user.is_staff:
            return redirect(url_for('auth/login'))
        
        clientid = kwargs['clientid']
        jobs = JobModel.all()
        jobs.filter("Client = ", ClientModel.get(clientid))
        jobs.filter("Invoiced != " , True)
        context = []
        if self.request.is_xhr:
            for job in jobs:
                os = None
                js = None
                if job.OrderStage and lstOrderStages[job.OrderStage]: 
                    os = lstOrderStages[job.OrderStage]
                if job.JobStage:
                    js = lstJobStages[job.JobStage]
                    
                context.append({
                                'name' : job.Nickname, 
                                'jobstage': js, 
                                'orderstage': os, 
                                'id' : str(job.key()), 
                                'created': job.Created.strftime("%b %d %Y"), 
                                'quote' : job.Quote 
                                });
            return render_json_response(context)
        else:
            return render_response('hello.html', **context)
示例#6
0
def getArtifacts(jobid):
    artifacts = []
    if jobid:
        for a in JobModel.get(jobid).Artifacts:
            f = blobstore.get(a)
            if f:
                artifacts.append({'name' : f.filename, 'contentType': f.content_type.replace('/', '_').replace('.', '_'), 'key': str(f.key()) })
    return artifacts    
示例#7
0
    def get(self, **kwargs):
        job = JobModel.get(kwargs['jobid']) 
        output = StringIO.StringIO()
        z = zipfile.ZipFile(output,'w')
        
        history = JobHistoryModel.all()
        history.filter("Job = ", job)
        items = ""
        for item in history: 
            username = item.CreatedBy.username
            items += item.Created.strftime("%b %d %Y - %I:%M%P") + "," + username +","+ item.Description+"\r\n"
        
        historycsv = StringIO.StringIO(items)
        z.writestr("history.csv", historycsv.read().encode('utf-8'))
        historycsv.close()
        
        communication = CommunicationModel.all()
        communication.filter("Job = ", job)
        items = ""
        for item in communication: 
            username = item.CreatedBy.username
            items += item.Created.strftime("%b %d %Y - %I:%M%P") + "," + username +","+ item.Text+"\r\n"
        
        commcsv = StringIO.StringIO(items)
        z.writestr("communication.csv", commcsv.read().encode('utf-8'))
        commcsv.close()

        artifacts = job.Artifacts
        items = ""
        for item in artifacts:
            file = blobstore.get(item)
            items += file.filename+"\r\n"
        
        filescsv = StringIO.StringIO(items)
        z.writestr("files.csv", filescsv.read().encode('utf-8'))
        filescsv.close()
        
        items = ""
        items += "name, " + job.Nickname + "\r\n"
        items += "description, " + job.Description + "\r\n"
        items += "created, " + job.Created.strftime("%b %d %Y - %I:%M%P") + "\r\n"
        items += "created by, " + job.CreatedBy.username + "\r\n"
        items += "client, " + job.Client.Name + "\r\n"
        if job.Quote: 
            items += "quote, " + job.Quote + "\r\n"
        
        datacsv = StringIO.StringIO(items)
        z.writestr("data.csv", datacsv.read().encode('utf-8'))
        datacsv.close()
        
        z.close()
        
        response = Response(output.getvalue())
        response.headers["Content-Type"] = "multipart/x-zip"
        response.headers['Content-Disposition'] = "attachment; filename=" + job.JobNumber +".zip"
        
        return response
示例#8
0
 def post(self):
     if self.request.form.get('jobid'):                
         job = JobModel.get(self.request.form.get('jobid'))
         job.JobStage = JobStatus.PrePress
         job.put()
         add_history("Layout rejected by client.  ", self.auth_current_user, job.key(), job.Client.key())
         if self.request.is_xhr:
             context = {'regressed': True}
             return render_json_response(context)
示例#9
0
 def post(self):
     if self.request.form.get('jobid'):
         job = JobModel.get(self.request.form.get('jobid'))
         job.JobStage = JobStatus.PrePress
         job.put()
         add_history("Layout rejected by client.  ", self.auth_current_user,
                     job.key(), job.Client.key())
         if self.request.is_xhr:
             context = {'regressed': True}
             return render_json_response(context)
示例#10
0
 def post(self):
     if self.request.form.get('jobid'):
         job = JobModel.get(self.request.form.get('jobid'))
         job.OrderStage = OrderStatus.PendingCustomerApproval
         job.Quote = self.request.form.get('quote')
         job.put()
         add_history("Quote submitted to client. ", self.auth_current_user, job.key(), job.Client.key())
         if self.request.is_xhr:
             context = {'advanced': True}
             return render_json_response(context)
示例#11
0
 def post(self):
     if self.request.form.get('jobid'):                
         job = JobModel.get(self.request.form.get('jobid'))
         job.OrderStage = OrderStatus.JobSubmitted
         job.JobStage = JobStatus.PrePress
         job.put()
         add_history("Quote accepted by client. ", self.auth_current_user, job.key(), job.Client.key())
         if self.request.is_xhr:
             context = {'advanced': True}
             return render_json_response(context)
示例#12
0
 def get(self, **kwargs):
     if self.auth_current_user.is_admin or self.auth_current_user.is_staff: 
         #this user is admin or staff
         kwargs['client'] = JobModel.get(kwargs['jobid']).Client
         kwargs['uploadurl'] = upload_url = blobstore.create_upload_url('/upload')
         kwargs['job'] = JobModel.get(kwargs['jobid'])
         kwargs['StatusInfo'] = {
                                 'OrderStages': OrderStatus(), 
                                 'JobStages' : JobStatus(), 
                                 'allOrderStages' : lstOrderStages, 
                                 'allJobStages' : lstJobStages, 
                                 'allStages' : lstAllStages
                                 }
         logging.log(logging.INFO, kwargs['StatusInfo'])
         kwargs['isAdmin'] = self.auth_current_user.is_admin
         kwargs['isStaff'] = self.auth_current_user.is_staff
         kwargs['isClient'] = False
         kwargs['files'] = getArtifacts(kwargs['jobid'])
         kwargs['history'] = getHistory(kwargs['jobid'])
         kwargs['communication'] = get_communication(kwargs['jobid'])
         kwargs['token'] = addConnection(JobModel.get(kwargs['jobid']),self.auth_current_user);
         return self.render_response('job.html', **kwargs)
     else: 
         if self.session.get('client') is not None and self.session.get('client') == str(JobModel.get(kwargs['jobid']).Client.key()):
             kwargs['client'] = ClientModel.get(self.session.get('client'))
             kwargs['uploadurl'] = upload_url = blobstore.create_upload_url('/upload')
             kwargs['job'] = JobModel.get(kwargs['jobid'])
             kwargs['StatusInfo'] = {
                                 'OrderStages': OrderStatus(), 
                                 'JobStages' : JobStatus(), 
                                 'allOrderStages' : lstOrderStages, 
                                 'allJobStages' : lstJobStages
                                 }
             logging.log(logging.INFO, kwargs['StatusInfo'])
             kwargs['isClient'] = True
             kwargs['files'] = getArtifacts(kwargs['jobid'])
             kwargs['history'] = getHistory(kwargs['jobid'])
             kwargs['communication'] = get_communication(kwargs['jobid'])
             kwargs['token'] = addConnection(JobModel.get(kwargs['jobid']),self.auth_current_user);
             return self.render_response('job.html', **kwargs)
         else : 
             return self.redirect("/login")
示例#13
0
 def post(self):
     if self.request.form.get('jobid'):
         job = JobModel.get(self.request.form.get('jobid'))
         job.OrderStage = OrderStatus.PendingCustomerApproval
         job.Quote = self.request.form.get('quote')
         job.put()
         add_history("Quote submitted to client. ", self.auth_current_user,
                     job.key(), job.Client.key())
         if self.request.is_xhr:
             context = {'advanced': True}
             return render_json_response(context)
示例#14
0
 def post(self):
     if self.request.form.get('jobid'):
         job = JobModel.get(self.request.form.get('jobid'))
         job.OrderStage = OrderStatus.JobSubmitted
         job.JobStage = JobStatus.PrePress
         job.put()
         add_history("Quote accepted by client. ", self.auth_current_user,
                     job.key(), job.Client.key())
         if self.request.is_xhr:
             context = {'advanced': True}
             return render_json_response(context)
示例#15
0
 def post(self):
     if self.request.form.get('jobid'):
         add_communication(self.request.form.get('text'), self.auth_current_user, self.request.form.get('jobid'))
         context = {'added': True}
         connections = getConnections(JobModel.get(self.request.form.get('jobid')).key().id())
         for connection in connections:
             logging.log(logging.INFO, 'sending message to ' + connection)
             channel.send_message(connection, "{'action': 'communication'}")
     else: 
         context = {'added': False, 'reason' : "no job specified" }
     if self.request.is_xhr:
         return render_json_response(context)
示例#16
0
 def post(self):
     # 'file' is the name of the file upload field in the form.
     jobid = self.request.form.get('jobid')
     upload_files = self.get_uploads('file')
     blob_info = upload_files[0]
     job = JobModel.get(jobid)
     job.Artifacts.append(blob_info.key())
     job.put()
     response = redirect_to('preview', resource=blob_info.key(), jobid=jobid)
     # Clear the response body.
     response.data = ''
     return response
示例#17
0
 def post(self):
     # 'file' is the name of the file upload field in the form.
     jobid = self.request.form.get('jobid')
     upload_files = self.get_uploads('file')
     blob_info = upload_files[0]
     job = JobModel.get(jobid)
     job.Artifacts.append(blob_info.key())
     job.put()
     response = redirect_to('preview',
                            resource=blob_info.key(),
                            jobid=jobid)
     # Clear the response body.
     response.data = ''
     return response
示例#18
0
 def post(self):
     if self.request.form.get('jobid'):
         add_communication(self.request.form.get('text'),
                           self.auth_current_user,
                           self.request.form.get('jobid'))
         context = {'added': True}
         connections = getConnections(
             JobModel.get(self.request.form.get('jobid')).key().id())
         for connection in connections:
             logging.log(logging.INFO, 'sending message to ' + connection)
             channel.send_message(connection, "{'action': 'communication'}")
     else:
         context = {'added': False, 'reason': "no job specified"}
     if self.request.is_xhr:
         return render_json_response(context)
示例#19
0
def getArtifacts(jobid):
    artifacts = []
    if jobid:
        for a in JobModel.get(jobid).Artifacts:
            f = blobstore.get(a)
            if f:
                artifacts.append({
                    'name':
                    f.filename,
                    'contentType':
                    f.content_type.replace('/', '_').replace('.', '_'),
                    'key':
                    str(f.key())
                })
    return artifacts
示例#20
0
    def get(self, **kwargs):
        auth_session = None
        if 'id' in self.auth_session:
            auth_session = self.auth_session

        template_values = {
            'auth_session': auth_session,
            'current_user': self.auth_current_user,
            'login_url': self.auth_login_url(),
            'logout_url': self.auth_logout_url(),
            'current_url': self.request.url
        }
        try:
            if kwargs['view'] is not None:
                template_values['view'] = kwargs['view']
        except:
            template_values['view'] = None

        if self.session.get('client') is not None:
            template_values['client'] = ClientModel.get(
                self.session.get('client'))
            history = JobHistoryModel.all()
            history.filter("Client =",
                           ClientModel.get(self.session.get('client')))
            history.order("-Created")
            history.fetch(100)
            template_values['history'] = history

            jobs = JobModel.all()
            jobs.filter("Client =",
                        ClientModel.get(self.session.get('client')))
            try:
                if kwargs['order']:
                    jobs.order(kwargs['order'])
                else:
                    jobs.order('OrderStage')
            except:
                jobs.order('OrderStage')

            template_values['jobs'] = jobs
            template_values['StatusInfo'] = {
                'OrderStages': OrderStatus(),
                'JobStages': JobStatus(),
                'allOrderStages': lstOrderStages,
                'allJobStages': lstJobStages
            }

        return self.render_response('clientlanding.html', **template_values)
示例#21
0
 def post(self, **kwargs):
     if not self.auth_current_user.is_admin and not self.auth_current_user.is_staff:
         return redirect(url_for('auth/login'))       
     if self.request.form.get('invoiceid'):
         invoice = InvoiceModel.get(self.request.form.get('invoiceid'))
         invoice.Paid = True
         invoice.put()       
         jobs = JobModel.all()
         jobs.filter("Invoice = ", invoice)
         for job in jobs: 
             job.OrderStage = OrderStatus.Paid
             job.put()
         
         context = {'invoiced': True }
         if self.request.is_xhr:
             return render_json_response(context)
示例#22
0
    def get(self, **kwargs):
        auth_session = None
        if 'id' in self.auth_session:
            auth_session = self.auth_session
        
        template_values = {
            'auth_session': auth_session,
            'current_user': self.auth_current_user,
            'login_url':    self.auth_login_url(),
            'logout_url':   self.auth_logout_url(),
            'current_url':  self.request.url
        }
        try:
            if kwargs['view'] is not None:
                template_values['view'] = kwargs['view']
        except: 
            template_values['view'] = None
            
            
        if self.session.get('client') is not None:
            template_values['client'] = ClientModel.get(self.session.get('client'))
            history = JobHistoryModel.all()
            history.filter("Client =", ClientModel.get(self.session.get('client')))
            history.order("-Created")
            history.fetch(100);
            template_values['history'] = history
            
            jobs = JobModel.all()
            jobs.filter("Client =", ClientModel.get(self.session.get('client')))
            try:
                if kwargs['order']:     
                    jobs.order(kwargs['order'])
                else:   
                    jobs.order('OrderStage')
            except: 
                jobs.order('OrderStage')
                

            template_values['jobs'] = jobs
            template_values['StatusInfo'] = {
                                    'OrderStages': OrderStatus(), 
                                    'JobStages' : JobStatus(), 
                                    'allOrderStages' : lstOrderStages, 
                                    'allJobStages' : lstJobStages
                                    }
            
        return self.render_response('clientlanding.html', **template_values)
示例#23
0
    def get(self, **kwargs):
        job = JobModel.get(kwargs['jobid']) 

        blobstore.delete(job.Artifacts)
        job.Artifacts = []
        
        history = JobHistoryModel.all()
        history.filter("Job = ", job)
        for item in history:
            logging.log(logging.INFO, "deleted %s" % item.key())
            item.delete()
        
        communication = CommunicationModel.all()
        communication.filter("Job = ", job)
        for item in communication: 
            logging.log(logging.INFO, "deleted %s" % item.key())
            item.delete()

        job.delete()
        self.set_message('success', 'The job, files, and all related information were successfully cleared.', flash=True, life=5)
        return redirect_to('home')
示例#24
0
 def get(self, **kwargs):
     if self.auth_current_user.is_admin or self.auth_current_user.is_staff:
         #this user is admin or staff
         kwargs['client'] = JobModel.get(kwargs['jobid']).Client
         kwargs['uploadurl'] = upload_url = blobstore.create_upload_url(
             '/upload')
         kwargs['job'] = JobModel.get(kwargs['jobid'])
         kwargs['StatusInfo'] = {
             'OrderStages': OrderStatus(),
             'JobStages': JobStatus(),
             'allOrderStages': lstOrderStages,
             'allJobStages': lstJobStages,
             'allStages': lstAllStages
         }
         logging.log(logging.INFO, kwargs['StatusInfo'])
         kwargs['isAdmin'] = self.auth_current_user.is_admin
         kwargs['isStaff'] = self.auth_current_user.is_staff
         kwargs['isClient'] = False
         kwargs['files'] = getArtifacts(kwargs['jobid'])
         kwargs['history'] = getHistory(kwargs['jobid'])
         kwargs['communication'] = get_communication(kwargs['jobid'])
         kwargs['token'] = addConnection(JobModel.get(kwargs['jobid']),
                                         self.auth_current_user)
         return self.render_response('job.html', **kwargs)
     else:
         if self.session.get('client') is not None and self.session.get(
                 'client') == str(
                     JobModel.get(kwargs['jobid']).Client.key()):
             kwargs['client'] = ClientModel.get(self.session.get('client'))
             kwargs['uploadurl'] = upload_url = blobstore.create_upload_url(
                 '/upload')
             kwargs['job'] = JobModel.get(kwargs['jobid'])
             kwargs['StatusInfo'] = {
                 'OrderStages': OrderStatus(),
                 'JobStages': JobStatus(),
                 'allOrderStages': lstOrderStages,
                 'allJobStages': lstJobStages
             }
             logging.log(logging.INFO, kwargs['StatusInfo'])
             kwargs['isClient'] = True
             kwargs['files'] = getArtifacts(kwargs['jobid'])
             kwargs['history'] = getHistory(kwargs['jobid'])
             kwargs['communication'] = get_communication(kwargs['jobid'])
             kwargs['token'] = addConnection(JobModel.get(kwargs['jobid']),
                                             self.auth_current_user)
             return self.render_response('job.html', **kwargs)
         else:
             return self.redirect("/login")
示例#25
0
    def get(self):
        """Simply returns a rendered template with an enigmatic salutation."""
        upload_url = blobstore.create_upload_url('/upload')
        auth_session = None
        if 'id' in self.auth_session:
            auth_session = self.auth_session

        template_values = {
            'uploadurl': upload_url,
            'auth_session': auth_session,
            'current_user': self.auth_current_user,
            'login_url': self.auth_login_url(),
            'logout_url': self.auth_logout_url(),
            'current_url': self.request.url
        }
        if self.session.get('client') is not None:
            template_values['client'] = ClientModel.get(
                self.session.get('client'))

            history = JobHistoryModel.all()
            history.filter("Client =",
                           ClientModel.get(self.session.get('client')))
            history.order("-Created")
            history.fetch(100)
            template_values['history'] = history

            jobs = JobModel.all()
            jobs.filter("Client =",
                        ClientModel.get(self.session.get('client')))
            jobs.order("-Changed")
            jobs.fetch(100)
            template_values['jobs'] = jobs
            logging.log(
                logging.INFO,
                "client " + ClientModel.get(self.session.get('client')).Name +
                " has " + str(template_values['jobs'].count()) + " jobs")

        return self.render_response('clientlanding.html', **template_values)
示例#26
0
    def get(self, **kwargs):
        if not self.auth_current_user.is_admin and not self.auth_current_user.is_staff:
            return redirect(url_for('auth/login'))
        
        kwargs['client'] = ClientModel.get(kwargs['clientid'])
#        kwargs['history'] = db.Query("SELECT * FROM JobHistoryModel WHERE Client=:client ORDER BY Created LIMIT 30", client=ClientModel.get(kwargs['clientid']))
        history = JobHistoryModel.all()
        history.filter("Client =", ClientModel.get(kwargs['clientid']))
        history.order("-Created").fetch(200)
        kwargs['history'] = history
        kwargs['stages'] = lstStages
        kwargs['stagesEnum'] = Stages()
        jobs = JobModel.all()
        jobs.filter("Client =", ClientModel.get(kwargs['clientid']))
        try:
            if kwargs['order']:     
                jobs.order(kwargs['order'])
            else: 
                jobs.order('Stage')
        except: 
            jobs.order('Stage')
        kwargs['jobs'] = jobs
        return self.render_response('adminclient.html', **kwargs)
示例#27
0
    def get(self, **kwargs):
        if not self.auth_current_user.is_admin and not self.auth_current_user.is_staff:
            return redirect(url_for('auth/login'))
        
        kwargs['history'] = JobHistoryModel.all().order('-Created').fetch(20)
        for h in kwargs['history']:
            h.Created = h.Created.replace(tzinfo=pytz.timezone('US/Eastern')).astimezone(timezone("US/Eastern"))

        kwargs['StatusInfo'] = {
                                    'OrderStages': OrderStatus(), 
                                    'JobStages' : JobStatus(), 
                                    'allOrderStages' : lstOrderStages, 
                                    'allJobStages' : lstJobStages
                                    }
        jobs = JobModel.all()
        
        try:
            if kwargs['order']:     
                jobs.order(kwargs['order'])
            else: 
                jobs.order('OrderStage')
        except: 
            jobs.order('OrderStage')
            
        try: 
            if kwargs['clientid']:
                jobs.filter("Client = " , ClientModel.get(kwargs['clientid']))
        except:
            pass
        
        kwargs['jobs'] = jobs
        kwargs['clients'] = ClientModel.all()
        for job in kwargs['jobs']:
            job.Created = job.Created.replace(tzinfo=pytz.timezone('US/Mountain')).astimezone(timezone("US/Mountain"))
            
        return self.render_response('admindashboard.html', **kwargs)
示例#28
0
def getHistory(jobid):
    history = JobHistoryModel.all()
    history.filter("Job =", JobModel.get(jobid))
    history.order("-Created")
    history.fetch(100);
    return history
示例#29
0
 def get(self, **kwargs):
     kwargs['job'] = JobModel.get(kwargs['jobid'])
     kwargs['files'] = getArtifacts(kwargs['jobid'])
     return self.render_response('archive.html', **kwargs)
示例#30
0
 def post(self):
     if self.request.form.get('jobid'):
         job = JobModel.get(self.request.form.get('jobid'))
         job.ChangedBy = self.auth_current_user
         job.Description = self.request.form.get('description')
         job.Nickname = self.request.form.get('nickname')
         add_history("job was updated", self.auth_current_user, job.key(), self.auth_current_user.assigned_to)
         job.put()  
     else: 
         job = JobModel()
         job.Approved = False
         job.Description = self.request.form.get('description')
         job.Nickname = self.request.form.get('nickname')
         job.ChangedBy = self.auth_current_user
         job.CreatedBy = self.auth_current_user
         job.Client = ClientModel.get(self.auth_current_user.assigned_to)
         job.OrderStage = OrderStatus.PendingQuote
         job.put()
         #.Created.strftime("%a, %b %d %Y - %I:%M%P")
         job.JobNumber = job.Created.strftime("%Y_%b_%d_")
         job.JobNumber += str(job.key().id())
         job.put()
         
         add_history("a request for a quote was started. ", self.auth_current_user, job.key(), self.auth_current_user.assigned_to)
     
     context = {'added': True, 'key' : str(job.key()) }
     if self.request.is_xhr:
         return render_json_response(context)
     else:
         return render_response('hello.html', **context)        
示例#31
0
    def post(self):
        if self.request.form.get('jobid'):
            job = JobModel.get(self.request.form.get('jobid'))
            job.ChangedBy = self.auth_current_user
            job.Description = self.request.form.get('description')
            job.Nickname = self.request.form.get('nickname')
            add_history("job was updated", self.auth_current_user, job.key(),
                        self.auth_current_user.assigned_to)
            job.put()
        else:
            job = JobModel()
            job.Approved = False
            job.Description = self.request.form.get('description')
            job.Nickname = self.request.form.get('nickname')
            job.ChangedBy = self.auth_current_user
            job.CreatedBy = self.auth_current_user
            job.Client = ClientModel.get(self.auth_current_user.assigned_to)
            job.OrderStage = OrderStatus.PendingQuote
            job.put()
            #.Created.strftime("%a, %b %d %Y - %I:%M%P")
            job.JobNumber = job.Created.strftime("%Y_%b_%d_")
            job.JobNumber += str(job.key().id())
            job.put()

            add_history("a request for a quote was started. ",
                        self.auth_current_user, job.key(),
                        self.auth_current_user.assigned_to)

        context = {'added': True, 'key': str(job.key())}
        if self.request.is_xhr:
            return render_json_response(context)
        else:
            return render_response('hello.html', **context)
示例#32
0
def getHistory(jobid):
    history = JobHistoryModel.all()
    history.filter("Job =", JobModel.get(jobid))
    history.order("-Created")
    history.fetch(100)
    return history