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
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
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
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
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