Exemplo n.º 1
0
 def register(self):
     if Validators.bool(Config.get('enable_registration')):
         self.set('issue',None)
         self.set('allow_registration',True)
         
         if 'submit' in self.request.params:
             email = self.request.params.get('email','')
             password = self.request.params.get('pass','')
             repassword = self.request.params.get('repass','')
             
             if Users.load(email=email):
                 self.set('issue','This email is already in use.')
                 return self.response
             if not Validators.email(email):
                 self.set('issue','Your email is not valid.')
                 return self.response
             if not Validators.password(password):
                 self.set('issue','Your passwor id not valid.')
                 return self.response
                 
             if repassword != password:
                 self.set('issue','Your passwords do not match.')
                 return self.response
                 
             user = Users(email=email,password=password)
             user.add_user()
             return HTTPFound(location=route_url('login', self.request))
     else:
         self.set('issue','Registration is disabled')
         self.set('allow_registration',None)
         
     return self.response
Exemplo n.º 2
0
    def make_facets(self,query):
        facets = []
        
        # ActionTypes Facets
        if Validators.bool( Config.get('enable_facet_casetypes', purify=True) ):
            actiontypes = ActionTypes.loadAll(order='actiontype asc');
            _types = {'name' : 'actiontypes' , 'clean_name': 'Case Types', 'data' :[]};
            for at in actiontypes:
                subquery = query.filter(Cases.actiontype==at.id)
                _types['data'].append({'facet':at.actiontype, 'id': at.id, 'count':self.fast_count(subquery)})
            facets.append(_types)
        
        
        # County Facets
        if Validators.bool( Config.get('enable_facet_counties', purify=True) ):
            counties = Counties.loadAll(order='county asc');
            _counties = {'name' : 'counties' , 'clean_name': 'Counties', 'data' :[]};
            for county in counties:
                subquery = query.filter(Cases.county==county.id)
                _counties['data'].append({'facet':county.county, 'id': county.id, 'count':self.fast_count(subquery)})
            facets.append(_counties)
        
        # Roles Facets
        if Validators.bool( Config.get('enable_facet_roles', purify=True) ):
            roles = Roles.loadAll(order='role asc');
            _roles = {'name' : 'roles' , 'clean_name': 'Roles', 'data' :[]};
            for role in roles:
                subquery = query.filter(Entities.role==role.id)
                _roles['data'].append({'facet':role.role, 'id': role.id, 'count':self.fast_count(subquery)})
            facets.append(_roles)

        # Courts Facets
        if Validators.bool( Config.get('enable_facet_courts', purify=True) ):
            courts = Courts.loadAll(order='court asc');
            _court = {'name' : 'courts' , 'clean_name': 'Courts', 'data' :[]};
            for court in courts:
                subquery = query.filter(Cases.court==court.id)
                _court['data'].append({'facet':court.court, 'id': court.id, 'count':self.fast_count(subquery)})
            facets.append(_court)
        
        # Archive Facets
        if Validators.bool( Config.get('enable_facet_archives', purify=True) ):
            archives = Archives.loadAll(order='name asc');
            _archives = {'name' : 'archives' , 'clean_name': 'Archives', 'data' :[]};
            for archive in archives:
                subquery = query.filter(Cases.archive==archive.id)
                _archives['data'].append({'facet':archive.name, 'id': archive.id, 'count':self.fast_count(subquery)})
            facets.append(_archives)

        return facets
Exemplo n.º 3
0
 def _create_form_element(self, element, attributes, options, option_type, name, content):
     if name == 'id' and content == None:
         content = 'To be determined'
         
     html = '<' + element + ' id="form-' + name + '"'
     for k,v in attributes.items():
         html += ' ' + k + '="' + v + '"'
     html += ' name="form.' + name + '"'
     
     if element == 'input':
         html += 'value="' + str(content) + '" />'  #close input and add value
     elif element == 'select':
         html += '>'
         for k,v in options.items():
             html += '<option value="' + v + '"'
             
             if option_type == 'bool':
                 if Validators.bool(v) == content:
                     html += ' selected="true" '
             if option_type == 'int':
                 if int(v) == content:
                     html += ' selected="true" '
             if option_type == 'str':
                 if str(v) == content:
                     html += ' selected="true" '
                 
             html += '>' + k + '</option>'
         html += '</' + element + '>'
     else:
         html += '>' + str(content) + '</' + element + '>'
     return html
Exemplo n.º 4
0
 def manage_order(self):
     id = int(self.request.matchdict['id'])
     
     if 'invoice.submit' in self.request.params:
         invoice = Invoices.load(id=id)
         invoice.fullname = self.request.params.get('invoice.fullname','')
         invoice.email = self.request.params.get('invoice.email','')
         invoice.phone = self.request.params.get('invoice.phone','')
         invoice.address = self.request.params.get('invoice.address','')
         invoice.county_state_zip = self.request.params.get('invoice.county_state_zip','')
         invoice.status = int(self.request.params.get('invoice.status',1))
         invoice.deliver_digitally = Validators.bool(self.request.params.get('invoice.deliver_digitally',0))
         invoice.deliver_physically = Validators.bool(self.request.params.get('invoice.deliver_physically',0))
         
         
         final_status = Statuses.load(order='priority desc')
         if final_status.id == invoice.status:
             invoice.completed = True
         
         if Validators.bool(self.request.params.get('invoice.status.emailer',0)):
             status = Statuses.load(id=invoice.status)
             orders_data = invoice.get_records_raw()
             archive = Archives.load(id=orders_data[0]['location'])
             
             Emailer.send(self.request,
                          [invoice.email],
                          status.email_subject,
                          status.email_message,
                          signature=archive.email_signature,
                          link=self.request.application_url + '/invoice/' + invoice.hash
                          )
             
             
     
     invoice = Invoices.load(id=id)
     self.set('invoice',invoice)
     self.set('records',invoice.get_records())
     self.set('statuses',Statuses.loadAll(order='priority asc'))
     return self.response
Exemplo n.º 5
0
 def create_invoice(self):
     records = self.request.params.getall('records')
     
     if records:
         fullname = self.request.params.get('customer.name','')
         email = self.request.params.get('customer.email','')
         address = self.request.params.get('customer.address','')
         address2 = self.request.params.get('customer.address2','')
         phone = self.request.params.get('customer.phone','')
         agreement = Validators.bool(self.request.params.get('customer.agreement',0))
         checkout = self.request.params.getall('customer.checkout')
         deliver_digitally = False
         deliver_physically = False
         
         # Delivery Options
         for option in checkout:
             if option == 'digitally':
                 deliver_digitally = True
             if option == 'physically':
                 deliver_physically = True
                 
         # Prep Orders
         orders = []
         total_price = 0.0
         location_emails = {} # to notify any locations a request has been made
         for record in records:
             c = Cases.load(id=int(record))
             e = Entities.load(case_id=int(record))
             r = Roles.load(id=e.role)
             l = Archives.load(id=c.archive)
             
             location_emails[l.email] = l.email
             total_price += float(r.price)
             
             orders.append({'case':int(c.id), 'price' : r.price, 'location':int(l.id)})
             
         invoice = Invoices(fullname=fullname, email=email, address=address, county_state_zip=address2, phone=phone, records=orders, 
                            agreement_accepted=agreement, deliver_digitally=deliver_digitally, deliver_physically=deliver_physically,
                            total_price='${:,.2f}'.format(total_price))
         invoice.insert(self.request)
         invoice = Invoices.load(order='id desc')
         
         #Email Client
         starting_status = Statuses.load(order='priority asc')
         Emailer.send(self.request,
                      [email],
                      starting_status.email_subject,
                      starting_status.email_message,
                      link=self.request.application_url + '/invoice/' + invoice.hash
                      )
                      
         #Email Archives Involved
         Emailer.send(self.request,
                      list(location_emails),
                      'Order request has been placed',
                      'A new order request has been placed',
                      link=self.request.application_url + '/login?goto=' + self.request.application_url + '/manage/orders'
                      )
                      
                      
         response = HTTPFound(location=route_url('invoice', self.request, hash=invoice.hash))
         response.delete_cookie('basket')
         return response
         
     else:
         return self.response