示例#1
0
 def __init__(self, pagepath, page_id):
     WebPage.__init__(self, pagepath)
     self.main_template = "update_db.tpl"
     self.request_params =  dict(request.params)
     self.model_list = [ 'ServerConfig', 'MenuItem', 'ReportInfo', 'SQLquery', 'Connection']
     self.rows = None
     self.table_fields_name = []
     self.table_fields_vals = []
     if self.request_params.has_key("table"):
         self.table = self.request_params['table']
         model_class = getattr(src.model, self.table)
         self.table_fields_name = [field[0] for field in model_class._meta.get_sorted_fields()]
         self.table_fields_vals = [field[1] for field in model_class._meta.get_sorted_fields()]
         
         if self.request_params.has_key("action"):
             self.action = self.request_params['action']
             pk = [field for field in self.table_fields_vals if field.db_field == 'primary_key'][0].name
             if self.request_params['action'] == 'edit':
                 self.values = model_class.select().where(getattr(model_class, pk) == self.request_params['id']).dicts()
             elif self.request_params['action'] == 'update':
                 field_to_update = {}
                 for field in self.table_fields_vals:
                     if field.name != pk and field.name in self.request_params.keys():
                         field_to_update[field.name] = self.request_params[field.name]
                 if self.request_params.has_key(pk) and  self.request_params[pk] and self.request_params[pk] != "" and self.request_params[pk] != "AUTO GENERATED":
                     model_class.update(**field_to_update).where(getattr(model_class, pk) == self.request_params[pk]).execute()
                 else:
                     model_class.create(**field_to_update)
                 redirect(self.pagepath + "?table=" + self.table)
         else:
             self.rows = model_class.select().tuples()
示例#2
0
 def __init__(self, pagepath, page_id):
     WebPage.__init__(self, pagepath)
     
     self.main_template = "charts.tpl"
     
     self.request_params =  dict(request.params)
     self.all_charts = ChartInfo.select()
     self.chart_groups = set()
     for chart in self.all_charts:
         self.chart_groups.add(chart.group)
     
     self.charts = []
     if self.request_params.has_key('group'):
         for chart in self.all_charts:
             if chart.group == self.request_params['group']:
                 self.charts.append(HighChart(self, chart))
示例#3
0
 def __init__(self, pagepath, page_id):
     WebPage.__init__(self, pagepath)
     
     self.main_template = "reports.tpl"
     self.model_list = []
     self.request_params =  dict(request.params)
     self.current_report = None
     
     self.model_list =  ReportInfo.select().where(ReportInfo.report_type=='report')
     
     for report in self.model_list:
         if self.request_params.has_key("report") and self.request_params["report"] == report.name:
             self.current_report = report
             report.create_report_if_needed()
             self.last_run = report.last_run
             self.datatable = Datatables(self, report.name, report.get_header(), report.row_callback)
示例#4
0
 def __init__(self, pagepath, page_id):
     WebPage.__init__(self, pagepath)
     
     self.main_template = "sanity.tpl"
     self.model_list = []
     self.request_params =  dict(request.params)
     self.current_report = None
     
     self.model_list =  ReportInfo.select().where(ReportInfo.report_type=='sanity').order_by(ReportInfo.nb_rows.desc())
     self.model_mapping = {}
     for model in self.model_list:
         self.model_mapping[model.id] = model
     
     for report in self.model_list:
         if self.request_params.has_key("sanity") and self.request_params["sanity"] == report.name:
             self.current_report = report
             report.create_report_if_needed()
             self.last_run = report.last_run
             self.datatable = Datatables(self, report.name, report.get_header(), report.row_callback)
示例#5
0
 def __init__(self, pagepath, page_id):
     WebPage.__init__(self, pagepath)
     self.main_template = "chart_creation.tpl"
     self.request_params =  dict(request.params)
     self.chart = None
     self.charts = ChartInfo.select()
     self.table_fields = ChartInfo._meta.fields
     self.action = None
     if  self.request_params.has_key("action"):
         self.action = self.request_params['action']
         if self.action == "create_all":
             json_return = {}
             for chart in self.charts:
                 chart.create_report()
                 json_return.update(chart.get_json_repr())
             Je = JsonEncoder()
             self.special_return = Je.encode(json_return)
         elif self.action == 'new':
             self.chart = ChartInfo.create(name='PlaceHolderName', connection_id=1)
             self.chart.save()
             redirect(self.pagepath + "?chart_id=" + str(self.chart.id) +'&action=edit')
         elif self.request_params.has_key('chart_id'):
             for chart in self.charts:
                 if str(chart.id)==self.request_params['chart_id']:
                     self.chart = chart
         if self.action == 'edit' or self.action == 'new':
             self.chart.create_report_if_needed()
             self.highchart = HighChart(self, self.chart)    
         elif self.action == 'update':
             self.chart.sql = self.request_params['sql']
             self.chart.cache_duration = self.request_params['cache_duration']
             self.chart.name = self.request_params['name']
             self.chart.description = self.request_params['description']
             self.chart.group = self.request_params['group']
             self.chart.save()
             self.chart.create_report()
             redirect(self.pagepath + "?chart_id=" + str(self.chart.id) +'&action=edit' )
示例#6
0
    def __init__(self, pagepath, page_id):
        WebPage.__init__(self, pagepath)
        self.report = None
        self.main_template = "report_creation.tpl"
        self.request_params =  dict(request.params)
        
        self.reports = ReportInfo.select()
        self.table_fields = ReportInfo._meta.fields
        self.action = None
        if  self.request_params.has_key("action"):
            self.action = self.request_params['action']
            if self.action == "create_all":
                json_return = {}
                for report in self.reports:
                    report.create_report()
                    json_return.update(report.get_json_repr())
                Je = JsonEncoder()
                self.special_return = Je.encode(json_return)
            elif self.action == 'new':
                self.sql_query = SQLquery.create(sql='select 1', connection_id=1)
                
                self.report = ReportInfo.create(name='PlaceHolderName', description='', source_type='SQLquery', \
                                                source_id=self.sql_query.id)
                
                redirect(self.pagepath + "?report=PlaceHolderName&action=edit" )

            elif self.request_params.has_key('report'):
                self.report = [report for report in self.reports if report.name==self.request_params['report']][0]
                self.sql_query = SQLquery.get(SQLquery.id == self.report.source_id)
            
            if self.action == 'edit' or self.action == 'new':
                self.current_report = self.report
                self.report.create_report_if_needed()
                self.last_run = report.last_run
                self.datatable = Datatables(self, self.report.name, self.report.get_header(), self.report.row_callback)
                
                
#                 
#                 self.header = report.get_header()
#                 self.css.append(Css("DT_bootstrap.css"))
#                 self.foot_js.append(Js("jquery.dataTables.min.js"))
#                 self.foot_js.append(Js("DT_bootstrap.js"))
#                 
#                 self.header = report.get_header()
#                 self.id_table = random_string(10)
#     
#                 self.drop_down_nb = True
#                 self.drop_down_values = [[20, 50, 100, -1], [20, 50, 100, "All"]]
#                 self.drop_down_text = "records per page"
#                 self.global_search = True
#                 self.global_search_text = "Search all columns:"
#                 self.pagination = True
#                 self.show_nb_records = True
#                 self.records_per_page = 20
#                 self.column_search = True
#                 self.foot_js_templates = [Template("datatables_js_ready", self)]
#                 self.ajax_url = "/cache/" + str(report.name) + ".json"
#                 self.csv_url = "/cache/" + str(report.name) + ".csv"
                
                
            elif self.action == 'update':
                self.sql_query.sql = self.request_params['sql_query_sql']
                self.sql_query.save()
                self.report.cache_duration = self.request_params['cache_duration']
                self.report.name = self.request_params['name']
                self.report.description = self.request_params['description']
                self.report.row_callback = self.request_params['row_callback']
                self.report.report_type =  self.request_params['report_type']
                self.report.save()
                self.report.create_report()
                redirect(self.pagepath + "?report=" + self.report.name +'&action=edit' )
示例#7
0
 def __init__(self, pagepath, page_id):
     WebPage.__init__(self, pagepath)
     
     self.main_template = "login.tpl"
     self.request_params =  dict(request.params)
     self.error = None
示例#8
0
 def __init__(self, pagepath, page_id):
     WebPage.__init__(self, pagepath)
     page_config = SimplePageConfig.get(id=page_id)
     self.title = page_config.title
     self.text = page_config.text