示例#1
0
            at = at.astimezone(pytz.utc)
        except Exception as e:
            log.error("format parameter at error=%s", e)
            return jsonify({'message': 'Wrong parameter, it should be %Y%m%d%H%M%S', 'code': 400}), 400
        try:
            data = request.get_json()
            name = data.get('name', None)
            job_id = text_type(uuid4())
            schedule_test_task.schedule(at, name, job_id=job_id)
        except Exception as e:
            log.error(e)
            return jsonify({'code': 400, 'message': str(e)}), 400

        return jsonify({'message': 'success', 'id': job_id})

appbuilder.add_view_no_menu(QueuesView)


@rq_dashboard.blueprint.before_request
@rq_scheduler_dashboard.blueprint.before_request
def check_auth():
    """dashboard permission checking interceptor."""
    if not current_user.is_authenticated:
        return render_template('401.html', base_template=appbuilder.base_template, appbuilder=appbuilder), 401
    for role in current_user.roles:
        if appbuilder.get_app.config['AUTH_ROLE_ADMIN'] == role.name:
            return None
    return render_template('403.html', base_template=appbuilder.base_template, appbuilder=appbuilder), 403
appbuilder.get_app.register_blueprint(rq_dashboard.blueprint, url_prefix="/rq")
appbuilder.add_link('tasks_queue', href="/rq", label="tasks in queue", category="Queues")
appbuilder.get_app.register_blueprint(rq_scheduler_dashboard.blueprint, url_prefix="/scheduler")
示例#2
0
    @expose('/12h/')
    def phase12h(self):
        return redirect(get_url(720, 'teleinfohourphaseschartview'))

    @expose('/24h/')
    def phase24h(self):
        return redirect(get_url(1440, 'teleinfohourphaseschartview'))

    @expose('/1sem/')
    def phase1sem(self):
        return redirect(get_url(10080, 'teleinfohourphaseschartview'))


""" Menu Chart Phase """
appbuilder.add_view_no_menu(MenuPhase)
appbuilder.add_link("15 minutes",
                    href='/menuphase/15min',
                    icon="fa-bar-chart",
                    category='Phase')

appbuilder.add_link("1 heure",
                    href='/menuphase/1h',
                    icon="fa-bar-chart",
                    category='Phase')

appbuilder.add_link("12 heures",
                    href='/menuphase/12h',
                    icon="fa-bar-chart",
                    category='Phase')
示例#3
0
文件: views.py 项目: Sangee2610/fabb
    def index(self):
        #return jsonify({'tasks': map(make_public_task, tasks)}) 
        print(repr(request.args))
        print(repr(request.method))
        print(repr(request.headers))
        return jsonify(tasks)

    @expose("/get_token")
    def get_token(self):
        print(repr(request.headers))
        return jsonify({'res': True})

    @expose("/get_resource")
    def get_resource(self):
        return jsonify({'res': False})

    @expose("/del_resource")
    def del_resource(self):
        return jsonify({'res': False})

"""
    Application wide 404 error handler
"""
@appbuilder.app.errorhandler(404)
def page_not_found(e):
    return render_template('404.html', base_template=appbuilder.base_template, appbuilder=appbuilder), 404

db.create_all()

appbuilder.add_view_no_menu(ApiView())
示例#4
0
            from email_client import Client
            self.client = Client()
            self.client.start()
        elif 'client' in self.__dict__:
            self.client.exit()


@appbuilder.app.errorhandler(404)
def page_not_found(e):
    return render_template(
        '404.html',
        base_template=appbuilder.base_template,
        appbuilder=appbuilder), 404

db.create_all()

appbuilder.add_view(AppSettingsModelView, "Settings", icon="fa-cogs")
appbuilder.add_view(
    EmailModelView,
    "List Emails",
    icon="fa-envelope-o",
    category="Emails",
    category_icon="fa-envelope")
appbuilder.add_view_no_menu(AttachmentModelView)
appbuilder.add_view(
    ActionModelView,
    "List Actions",
    icon="fa-cogs",
    category="Actions",
    category_icon="fa-cogs")
示例#5
0
        ('记录信息', {'fields':['context', 'created_on']})
    ]

    list_title = '记事本'
    add_title = '添加记录'
    show_title = '当前记录'
    edit_title = '修改记录'


@appbuilder.app.errorhandler(404)
def page_not_found(e):
    return render_template('404.html', base_template=appbuilder.base_template, appbuilder=appbuilder), 404

db.create_all()

appbuilder.add_view_no_menu(ProjectFilesModelView)
appbuilder.add_view_no_menu(ModuleModelView)
appbuilder.add_view_no_menu(ProblemCategoryModelView)

appbuilder.add_view(ProjectModelView,
                    '运维项目',
                    icon='fa-cubes',
                    category='项目配置',
                    category_icon='fa-cog'
                    )

appbuilder.add_view(ProjectMasterView,
                    '项目模块',
                    icon='fa-cube',
                    category='项目配置',
                    category_icon='fa-cog'
示例#6
0
from flask_appbuilder import ModelView
from flask_appbuilder.models.sqla.interface import SQLAInterface
from app import appbuilder
from app.areas.models import Area
#from app.plantas.views import PlantaView
#### para la descarga + timestamp en nombre del archivo
from flask_appbuilder import ModelView, expose, action
from flask import redirect, send_file
import csv
from io import BytesIO
import pandas as pd
from datetime import datetime
import pytz
from app.incrementocampania.models import Incremcampania
tz = pytz.timezone('America/Argentina/Buenos_Aires')
fecha = datetime.now(tz)
fecha = fecha.strftime('%Y-%m-%d %H:%M')
fecha = str(fecha)
#############


class IncremcampaniaView(ModelView):
    datamodel = SQLAInterface(Incremcampania)


# esto es para registrar la vista?
incremento_builder = appbuilder.add_view_no_menu(IncrementoCampaña)
示例#7
0
class ProjectModelView(CompactCRUDMixin, ModelView):
    datamodel = SQLAModel(Project)
    related_views = [ProjectFilesModelView]

    show_template = 'appbuilder/general/model/show_cascade.html'
    edit_template = 'appbuilder/general/model/edit_cascade.html'

    add_columns = ['name']
    edit_columns = ['name']
    list_columns = [
        'name', 'created_by', 'created_on', 'changed_by', 'changed_on'
    ]
    show_fieldsets = [
        ('Info', {
            'fields': ['name']
        }),
        ('Audit', {
            'fields': ['created_by', 'created_on', 'changed_by', 'changed_on'],
            'expanded': False
        })
    ]


db.create_all()
appbuilder.add_view(ProjectModelView,
                    "List Projects",
                    icon="fa-table",
                    category="Projects")
appbuilder.add_view_no_menu(ProjectFilesModelView)
示例#8
0
@appbuilder.app.errorhandler(404)
def page_not_found(e):
    return render_template('404.html',
                           base_template=appbuilder.base_template,
                           appbuilder=appbuilder), 404


db.create_all()


class Api(BaseView):
    default_view = "random"

    @expose('/random')
    def random(self):
        response = {'randomNumber': randint(1, 100)}
        return jsonify(response)


class RandomView(BaseView):
    route_base = '/'
    default_view = 'random'

    @expose('random')
    def random(self):
        return self.render_template('random.html')


appbuilder.add_view_no_menu(Api)
appbuilder.add_view(RandomView, 'random', category="Random")
示例#9
0
    @expose('/edit_first')
    def edit_first(self):
        return redirect(url_for('ChooseConfigView.edit', pk=1))


db.session.remove()
db.create_all()

# Import the client API
from rest_api import ClientApi
# Import the views we defined in the ``routes`` module
from routes import PublicView, PrivateView

# Add these vews without a menu:
appbuilder.add_view_no_menu(ClientApi())
appbuilder.add_view_no_menu(PrivateView())
appbuilder.add_view_no_menu(PublicView())

# Add the modelviews with a menu:

# Category 'Blog'
appbuilder.add_view(EntryView,
                    "Entries",
                    category="Blog",
                    icon="fa-file-text",
                    category_icon="fa-rss")
appbuilder.add_view(CommentView,
                    "Comments",
                    category="Blog",
                    icon="fa-comments")  #, category_icon="fa-comments")
示例#10
0
        print(ret_json)
        response = make_response(ret_json, 200)
        response.headers['Content-Type'] = "application/json"
        return response

    @expose_api(name='query_table',
                url='/api/query_table/<table_schema>',
                methods=['GET'])
    @has_access_api
    @permission_name('list')
    def query_table(self, table_schema):
        ret_list = list()
        data = db.get_engine(bind="information_schema").execute(
            "select distinct t.TABLE_NAME from columns t where t.TABLE_SCHEMA='{0}'"
            .format(table_schema)).fetchall()
        for i in data:
            ret_list.append({
                'id': str(i['TABLE_NAME']),
                'text': str(i['TABLE_NAME'])
            })
        print(ret_list)
        ret_json = json.dumps(ret_list)
        response = make_response(ret_json, 200)
        response.headers['Content-Type'] = "application/json"
        return response


appbuilder.add_view_no_menu(ApiMpsView)

# db.create_all()
示例#11
0
        thread.daemon = True  # Daemonize thread
        thread.start()  # Start the execution

        # retrieve the schedule codes from the json file
        codes = schedule_service.week_of_month()
        # print(codes)
        schedule_data = schedule_service.get_schedule_times(codes)
        print(schedule_service.get_week_events())
        if type == 'day':
            pass
        return self.render_template('schedules.py',
                                    schedule_data=schedule_data)


# Create paths
appbuilder.add_view_no_menu(LowellResources())

# Views for Site files


class LowellFiles(BaseView):

    # Add route base as root "/files"
    route_base = "/files"
    '''
    Create path disclaimer that renders disclaimer.py jijna2 template
    that contains project's disclaimer
    '''
    @expose('/disclaimer')
    def disclaimer(self):
        return self.render_template('disclaimer.py')
示例#12
0
                    local_user = MyUser()
                    local_user.username = motGUID.lower()
                    local_user.active = True
                    local_user.extinfo = UserExtInfo(user_type='ldap')
                local_user.first_name = self.appbuilder.sm.ldap_extract(user_ldapinfo[1], \
                                    self.appbuilder.sm.auth_ldap_firstname_field, local_user.first_name)
                local_user.last_name = self.appbuilder.sm.ldap_extract(user_ldapinfo[1], \
                                    self.appbuilder.sm.auth_ldap_lastname_field, local_user.last_name)
                local_user.email = self.appbuilder.sm.ldap_extract(user_ldapinfo[1], \
                                        self.appbuilder.sm.auth_ldap_email_field, local_user.email)
                if roles:
                    local_user.roles = roles
                result = self.datamodel.edit(local_user)
                if result:
                    log.debug("Successfully sync ldap user %s by %s",
                              local_user.username, g.user.username)
                    success_list.append(local_user.username)
                    coreIds.remove(local_user.username)
                else:
                    log.debug("Failed sync ldap user %s by %s",
                              local_user.username, g.user.username)
            return jsonify({
                'success_list': success_list,
                'failed_list': coreIds
            })
        else:
            return jsonify({'msg': 'Wrong parameter, coreId is null'}), 400


appbuilder.add_view_no_menu(ApiUserView)
示例#13
0
                    icon="fa-table",
                    category="Settings")
appbuilder.add_view(ShortcodeModelView,
                    "Shortcode",
                    icon="fa-table",
                    category="Settings")
appbuilder.add_view(SubscriberModelView,
                    "Subscriber",
                    icon="fa-table",
                    category="Content Management")
appbuilder.add_view(ContentModelView,
                    "Contents",
                    icon="fa-folder-open-o",
                    category="Content",
                    category_icon="fa-envelope")
appbuilder.add_view_no_menu(MediaFilesModelView)
appbuilder.add_view(ArtistModelView,
                    "Artists",
                    icon="fa-table",
                    category="Content",
                    category_icon="fa-envelope")
appbuilder.add_view(KeywordModelView,
                    "Keywords",
                    icon="fa-table",
                    category="Settings",
                    category_icon="fa-envelope")
appbuilder.add_view(InboxModelView,
                    "Inbox",
                    icon="fa-table",
                    category="Messaging",
                    category_icon="fa-envelope")
示例#14
0
        mail = Mail(self.appbuilder.get_app)
        msg = Message()
        msg.subject = "Password reset link"
        url = url_for('ResetPasswordFormView.this_form_get',
                      _external=True,
                      reset_hash=get_token(user))
        msg.html = "Hello {}. <br> Please click below the link to reset your password <br>{}".format(
            user.first_name, url)
        msg.recipients = [user.email]
        print(url)
        ###mail.send(msg)


class ResetPasswordFormView(PublicFormView):
    form = ResetPasswordForm
    route_base = "/reset"
    form_title = "Reset Password"
    message = "Please login"

    def form_post(self, form):
        user = verify_token(request.args.get('reset_hash'))
        if user:
            self.appbuilder.sm.reset_password(user.id, form.password.data)
            flash(self.message, "info")
        else:
            flash("Invalid token", "error")


appbuilder.add_view_no_menu(ForgotPasswordView, "ForgotPasswordView")
appbuilder.add_view_no_menu(ResetPasswordFormView, "ResetPasswordFormView")
示例#15
0
        return json.dumps(surveylist)


class GetApi(BaseView):
    route_base = "/api/v1"

    @expose('/getdata', methods=['GET'])
    def get_data(self):
        url = "http://localhost:8080/api/v1/empdata"
        response = requests.request("GET", url)
        data = json.loads(response.text)
        ult_list = ast.literal_eval(json.dumps(data))
        header = ult_list[0].keys()
        rows = [x.values() for x in ult_list]
        return tabulate.tabulate(rows, header, tablefmt='rst')


db.create_all()
fill_gender()
appbuilder.add_view_no_menu(MyView())
appbuilder.add_view_no_menu(GetApi())
appbuilder.add_view(GroupModelView, "Departments", icon='fa-envelope')
appbuilder.add_view(ContactModelView, "About Me", icon="fa-phone")
appbuilder.add_link("List Bangalore Employee",
                    href='/api/v1/getdata',
                    icon="fa-envelope ",
                    category='Menu')
#appbuilder.add_link("Google", href="https://www.google.com/", icon = "fa-google-plus")

##############################################
示例#16
0
        self.datamodel.delete_all(items)
        self.update_redirect()
        return redirect(self.get_redirect())


class TableColumnInlineView(CompactCRUDMixin, ModelView):
    datamodel = SQLAInterface(models.TableColumn)
    can_delete = False
    edit_columns = [
        'column_name', 'description', 'table', 'groupby', 'filterable',
        'count_distinct', 'sum', 'min', 'max']
    list_columns = [
        'column_name', 'type', 'groupby', 'filterable', 'count_distinct',
        'sum', 'min', 'max']
    page_size = 100
appbuilder.add_view_no_menu(TableColumnInlineView)


class ColumnInlineView(CompactCRUDMixin, ModelView):
    datamodel = SQLAInterface(models.Column)
    edit_columns = [
        'column_name', 'description', 'datasource', 'groupby',
        'count_distinct', 'sum', 'min', 'max']
    list_columns = [
        'column_name', 'type', 'groupby', 'filterable', 'count_distinct',
        'sum', 'min', 'max']
    can_delete = False
    page_size = 100

    def post_update(self, col):
        col.generate_metrics()
示例#17
0
        if "POST" == request.method:
            
            user_agent = to_user_agent(request)

            if self.form_service.submit(form, g.user, user_agent):
                return redirect(
                    url_for("FormView.success_redirect", form_id=form_id)
                )

        return self.render_template(
            "openform/form.html",
            form_view = form_view,
            form = form
        )

    @expose('/<form_id>/success_redirect', methods=['GET'])
    def success_redirect(self, form_id):

        return redirect(
            url_for("FormView.form_success", form_id=form_id)
        )

    @expose('/<form_id>/success', methods=['GET'])
    def form_success(self, form_id):

        return self.render_template(
            'openform/form_success.html'
        )

appbuilder.add_view_no_menu(FormView)
示例#18
0
db.create_all()
# more icon names: http://fontawesome.io/icons/
appbuilder.add_view(GroupModelView,
                    "List Groups",
                    icon="fa-folder-open-o",
                    category="Contacts",
                    category_icon="fa-envelope")
appbuilder.add_view(ContactModelView,
                    "List Contacts",
                    icon="fa-envelope",
                    category="Contacts")
appbuilder.add_view(MultipleViewsExp,
                    "Multiple Views",
                    icon="fa-envelope",
                    category="Contacts")
appbuilder.add_view_no_menu(ContactTimeChartView)
appbuilder.add_view(GroupMasterView,
                    "Master Detail Views",
                    icon="fa-envelope",
                    category="Contacts")


class EmployeeHistoryView(ModelView):
    datamodel = SQLAInterface(EmployeeHistory)
    list_columns = ['department', 'begin_date', 'end_date']


class EmployeeHistoryInlineView(CompactCRUDMixin, ModelView):
    datamodel = SQLAInterface(EmployeeHistory)
    list_columns = ['department', 'begin_date', 'end_date']
示例#19
0
class DepartmentView(ModelView):
    datamodel = SQLAInterface(Department)
    related_views = [EmployeeView]


class BenefitView(ModelView):
    datamodel = SQLAInterface(Benefit)
    add_columns = ['name']
    edit_columns = ['name']
    show_columns = ['name']
    list_columns = ['name']


db.create_all()

appbuilder.add_view_no_menu(EmployeeHistoryView, "EmployeeHistoryView")
appbuilder.add_view(EmployeeView,
                    "Employees",
                    icon="fa-folder-open-o",
                    category="Company")
appbuilder.add_separator("Company")
appbuilder.add_view(DepartmentView,
                    "Departments",
                    icon="fa-folder-open-o",
                    category="Company")
appbuilder.add_view(FunctionView,
                    "Functions",
                    icon="fa-folder-open-o",
                    category="Company")
appbuilder.add_view(BenefitView,
                    "Benefits",
示例#20
0
    def get_expenses(self):
        sObj = Splitwise(Config.consumer_key, Config.consumer_secret)
        sObj.setAccessToken(session['access_token'])
        content = sObj.getExpenses()
        session['expenses'] = content

        friends = sObj.getFriends()
        self.debtors = friendsload(friends)
        #print(friendsload(friends))
        #print("\n\n\n\n\n\n" , content)
        #resp = splitwise.get('get_current_user')
        return render2('output.html', getresp="waddup")


# class Root(BaseView):

# appbuilder.add_view_no_menu(Splitwise())
appbuilder.add_view_no_menu(Starling())
appbuilder.add_view_no_menu(Home())

#appbuilder.add_view(Welcome, "Welcome", category='Charts')
# appbuilder.add_view(Home, "/home/home")
appbuilder.add_link("Settle", "/home/settle", label="Settle")
appbuilder.add_link("Analytics", "/home/balance", label="Analytics")
appbuilder.add_link("Transactions", "/home/home", label="Transactions")
# appbuilder.add_view_no_menu(Welcome())
# appbuilder.add_link("Splitwise", href='/splitwise_login/', category='Login')
# appbuilder.add_view(Home, '/balance', category="Analytics")

db.create_all()
示例#21
0
class RM_RoleModelView(ModelView):
    """TODO: Document me"""
    datamodel = SQLAInterface(RolemasterRole)

    list_columns = ['name', 'organization']
    related_views = [RM_AccountabilityModelView, RM_DomainModelView, RM_RoleFillingModelView]

class RM_OrganizationModelView(ModelView):
    """TODO: Document me"""
    datamodel = SQLAInterface(Organization)

    list_columns = ['name', 'description']

    related_views = [RM_OrganizationMembershipModelView]
    #label_columns = {}
    #show_fieldsets = []


db.create_all()

appbuilder.add_view(RM_OrganizationModelView, "List Organizations")
#appbuilder.add_view(RM_OrganizationMembershipModelView, "List Organization Members", category="Organization")
appbuilder.add_view_no_menu(RM_OrganizationMembershipModelView)
appbuilder.add_view(RM_RoleModelView, "List Roles")
appbuilder.add_view_no_menu(RM_AccountabilityModelView)
appbuilder.add_view_no_menu(RM_DomainModelView)
appbuilder.add_view_no_menu(RM_RoleFillingModelView)


示例#22
0
文件: views.py 项目: zeus911/certmon
                            valid_to=datetime.datetime.utcfromtimestamp(int(endpoint['details']['cert']['notAfter']) / 1000).replace(tzinfo=datetime.timezone.utc), \
                            key_value=str(endpoint['details']['key']['alg'] + str(endpoint['details']['key']['size'])), sha1_fingerprint=str(endpoint['details']['cert']['sha1Hash']) \
                                ))
                        db.session.commit()
                    flash("Scan finished for: " + str(item.dns_name), 'success')
                else:
                    for endpoint in data['endpoints']:
                        db.session.query(Certificates).filter_by(dns_name=host).delete()
                        db.session.add(Certificates(dns_name=host, endpoint_ip=str(endpoint['ipAddress']), subject="Scan failure. Validate certificate manually.", grade="X"))
                        db.session.commit()
        return redirect('/certificatemodelview/list/') 




@appbuilder.app.errorhandler(404)
def page_not_found(e):
    return render_template('404.html', base_template=appbuilder.base_template, appbuilder=appbuilder), 404

db.create_all()


### Register Views ###
appbuilder.add_view_no_menu(HomeView)
appbuilder.add_view(CertificateModelView, "Certificates", icon="fa-search", category="Certificates", category_icon="fa-search")


appbuilder.security_cleanup() #cleanup any dangling permissions


示例#23
0
from flask.ext.appbuilder.baseviews import BaseView
from flask.ext.appbuilder.baseviews import expose
from app import appbuilder

class MyView(BaseView):
    route_base = "/myview"

    @expose('/method1/<string:param1>')
    def method1(self, param1):
            # do something with param1
            # and return to previous page or index
        param1 = 'Hello %s' % (param1)
        return param1

    @expose('/method2/<string:param1>')
    def method2(self, param1):
        # do something with param1
        # and render template with param
        param1 = 'Goodbye %s' % (param1)
        return param1

appbuilder.add_view_no_menu(MyView())


示例#24
0
class UsuariosView(ModelView):
    datamodel = SQLAInterface(User)

    list_columns = ['nome_usuario', 'email', 'login_name', 'id_usuario']


class NotasFiscaisView(ModelView):
    datamodel = SQLAInterface(NotasFiscais)

    list_columns = [
        'chave_nfe', 'numero_nota_fiscal', 'data_emissao', 'valor',
        'remetente.nome_cliente'
    ]


appbuilder.add_view_no_menu(UtilView)

appbuilder.add_view_no_menu(UserView)

##appbuilder.add_view(MyFormView, "My form View", icon="fa-group", label=_('My form View'),
##                     category="My Forms", category_icon="fa-cogs")

##appbuilder.add_view(UsuariosView, "Usuários", icon="fa-group", label=_('Usuários'),
##category="Geral", category_icon="fa-cogs")

##appbuilder.add_view(NotasFiscaisView, "Notas Fiscais", icon="fa-group", label="Notas Fiscais",
##                     category="Geral", category_icon="fa-cogs")

##appbuilder.add_view(BancosView, "Bancos", icon="fa-group", label="Bancos",
##                     category="Geral", category_icon="fa-cogs")
示例#25
0
appbuilder.add_view(PredictViewSF,
                    "UR Pred SemiFinals",
                    label=_('UR Pred SemiFinals'),
                    icon="fa-futbol-o",
                    category="Your Prediction",
                    category_icon="fa-thumbs-up")

appbuilder.add_view(PredictViewF,
                    "UR Pred Final",
                    label=_('UR Pred Final'),
                    icon="fa-futbol-o",
                    category="Your Prediction",
                    category_icon="fa-thumbs-up")

appbuilder.add_view_no_menu(AllGameScores())
appbuilder.add_link("Games Rnd32 Score",
                    label=_('Games Rnd32 Score'),
                    href='/GameScores/rnd32/User',
                    icon="fa-check",
                    category='Users Standings')
appbuilder.add_link("Group Standing Score",
                    label=_('Group Standing Score'),
                    href='/GameScores/group/User',
                    icon="fa-check",
                    category='Users Standings')
appbuilder.add_link("Games Rnd16 Score",
                    label=_('Games Rnd16 Score'),
                    href='/GameScores/rnd16/User',
                    icon="fa-check",
                    category='Users Standings')
示例#26
0
    show_template = 'appbuilder/general/model/show_cascade.html'


class FunctionView(ModelView):
    datamodel = SQLAInterface(Function)
    related_views = [EmployeeView]


class DepartmentView(ModelView):
    datamodel = SQLAInterface(Department)
    related_views = [EmployeeView]


class BenefitView(ModelView):
    datamodel = SQLAInterface(Benefit)
    add_columns = ['name']
    edit_columns = ['name']
    show_columns = ['name']
    list_columns = ['name']


db.create_all()

appbuilder.add_view_no_menu(EmployeeHistoryView, "EmployeeHistoryView")
appbuilder.add_view(EmployeeView, "Employees", icon="fa-folder-open-o", category="Company")
appbuilder.add_separator("Company")
appbuilder.add_view(DepartmentView, "Departments", icon="fa-folder-open-o", category="Company")
appbuilder.add_view(FunctionView, "Functions", icon="fa-folder-open-o", category="Company")
appbuilder.add_view(BenefitView, "Benefits", icon="fa-folder-open-o", category="Company")

示例#27
0
文件: views.py 项目: katembu/voting
    def get_area(self, results):
        y = {}
        k = {}
        z = {}
        for x in results:
            y[x.cid] = x.areaname
            k[x.kid] = x.dname
            z['area'] = y
            z['delgate'] = k
        return z


db.create_all()

appbuilder.add_view_no_menu(Sms())
appbuilder.add_view_no_menu(MyView())
appbuilder.add_view_no_menu(API())

appbuilder.add_view(VotersView, "Voters", category="Settings")
appbuilder.add_view(DelegatesView, "Delegates", category="Settings")
appbuilder.add_view(ElectionView, "Elections", category="Settings")
appbuilder.add_view(ScopeView, " Scopes", category="Settings")
appbuilder.add_view(PostView, " Post", category="Settings")
appbuilder.add_view(CountiesView, "Counties", category="Settings")
appbuilder.add_view(ConstituencyView, "Constituency", category="Settings")
appbuilder.add_view(WardView, "Ward", category="Settings")
appbuilder.add_view(SmsloggerView, "SMS LOGGER", category="Settings")
appbuilder.add_view(VotersChartView, "Voters Registered", category="Reports")
appbuilder.add_view(SMSReportChartView, "SMS Report", category="Reports")
# appbuilder.add_view(MyView, "Election Results", category="Reports")
示例#28
0
                    redis_master.delete(CONF_PROJECT_KEYSET_FORMAT.format(p=project), CONF_PROJECT_WRITE_PERM_FORMAT. \
                                        format(p=project), CONF_PROJECT_READ_PERM_FORMAT.format(p=project))
                    redis_master.srem(CONF_PROJECTS_KEY_FORMAT, project)
                    log.info("Successfully delete project byname for project {p} by {u}".format(p=project, \
                                                                                                u=g.user.username))
                    return jsonify({'message': 'success'})
                except Exception as e:
                    log.error(e)
                    return jsonify(
                        {'message': 'delete item  error= {0}'.format(e)}), 500
            else:
                return jsonify({'message': 'doesn\'t have permission'}), 403
        else:
            return jsonify({'message': 'project doesn\'t exists'}), 400

    def _check_conf_permission(self, project, perm):
        """inner method check mermission."""
        # if is Admin role direct allow
        for role in g.user.roles:
            if appbuilder.get_app.config['AUTH_ROLE_ADMIN'] == role.name:
                return True
        return redis_slave.sismember("cfg:{0}:perm:{1}".format(project, perm),
                                     g.user.username)

    def _check_conf_exists(self, project, key):
        """inner method check config exists or not."""
        return redis_slave.exists(CONF_KEY_FORMAT.format(p=project, k=key))


appbuilder.add_view_no_menu(ConfCenterView)
示例#29
0
#     list_columns = ['case_id', 'person_id']
#     related_views =[CaseView]
"""
    Application wide 404 error handler
"""


@appbuilder.app.errorhandler(404)
def page_not_found(e):
    return render_template('404.html',
                           base_template=appbuilder.base_template,
                           appbuilder=appbuilder), 404


db.create_all()
appbuilder.add_view_no_menu(PersonView, "PersonView")

appbuilder.add_view(RegionView,
                    "Regions",
                    icon="fa-folder-open-o",
                    category="Setup")
appbuilder.add_view(DistrictView,
                    "Districts",
                    icon="fa-folder-open-o",
                    category="Setup")
appbuilder.add_view(TownView,
                    "Towns",
                    icon="fa-folder-open-o",
                    category="Setup")
appbuilder.add_view(GenderView,
                    "Gender",
示例#30
0
    ]

    add_template = "/datas/add_with_tinymce.html"

    edit_template = "/datas/edit_with_tinymce.html"


class RefreshFrequencyView(ModelViewWithAudit):
    route_base = "/refresh_frequency"
    datamodel = DataSQLAInterface(RefreshFrequency)

    label_columns = {'refresh_frequency_description': 'Description'}
    list_columns = ['refresh_frequency_description_', 'created_by']


appbuilder.add_view(DataSourceView,
                    "Data Sources",
                    category="Data",
                    category_icon="")
appbuilder.add_view(DataTypeView, "Data Types", category="Data")

appbuilder.add_view(StorageLocationView, "Storage Locations", category="Data")
appbuilder.add_view(RefreshFrequencyView,
                    "Refresh Frequencies",
                    category="Data")

appbuilder.add_view_no_menu(DataSetAttributeView, "DataSetAttributeView")
appbuilder.add_view(TagView, "Tag", category="Tag", category_icon="")
appbuilder.add_view_no_menu(TagValueView, "TagValueView")
appbuilder.add_view(DataSourceOwnerView, "Data Source Owner", category="Data")
示例#31
0
from flask_appbuilder.models.sqla.interface import SQLAInterface
from app import appbuilder
####################
from app.tdnis.models import Tdni ####### import del MODEL de provincia
#from app.paises.views import PaisView  ############### tener cuidado con esto ESTUDIAR
###########



# clase para armar el modelo
class TdniView (ModelView):
    datamodel = SQLAInterface(Tdni) 
    #related_views = [PaisView]  ############### tener cuidado con esto
    label_columns = {"tipDni":"Tipo de DNI"} # estructura -> 'nombreAtributoModel':'nombre_a_Mostrar_en_Columna'

    list_columns = ["tipDni"] #lista de columnas a mostrar en el listado

    # lista de campos y atributos a mostrar en el "show" de cada registro
    #show_fieldsets =[('Resumen',{'fields': ['nomProvincia', 'paisProvincia']})]

    #campos a mostrar en el CREATE de un nuevo registro
    add_fieldsets = [
        ("Información Básica", {"fields": ["tipDni"]})
    ]

# esto es para registrar la vista?
tdnis_builder = appbuilder.add_view_no_menu(
    TdniView,
    "Tipo dni",
)
示例#32
0
            form.data['dataset']
            form.data['message']
            flash(self.message, "info")
        return self.render_template(self.form_template, form=form)


class ListFAQWidget(ListWidget):
    template = "/widgets/faq_list.html"


class FAQView(ModelView):
    route_base = "/faq"
    datamodel = DataSQLAInterface(FAQModel)
    list_columns = ['faq_question', 'faq_text']
    label_columns = {'faq_question': 'FAQ Question', 'faq_text': 'FAQ Text'}

    list_template = "/general/faq.html"
    list_widget = ListFAQWidget


class FAQAdminView(ModelView):
    route_base = "/faq/admin"
    datamodel = DataSQLAInterface(FAQModel)
    list_columns = ['faq_question']
    label_columns = {'faq_question': 'FAQ Question', 'faq_text': 'FAQ Text'}


appbuilder.add_view_no_menu(GetAdviceView, "GetAdviceView")
appbuilder.add_view(FAQView, "FAQs", category="FAQs")
appbuilder.add_view(FAQAdminView, "FAQs Admin", category="FAQs")
示例#33
0
class TableColumnInlineView(CompactCRUDMixin, ModelView):
    datamodel = SQLAInterface(models.TableColumn)
    can_delete = False
    edit_columns = [
        'column_name', 'description', 'table', 'groupby', 'filterable',
        'count_distinct', 'sum', 'min', 'max'
    ]
    list_columns = [
        'column_name', 'type', 'groupby', 'filterable', 'count_distinct',
        'sum', 'min', 'max'
    ]
    page_size = 100


appbuilder.add_view_no_menu(TableColumnInlineView)


class ColumnInlineView(CompactCRUDMixin, ModelView):
    datamodel = SQLAInterface(models.Column)
    edit_columns = [
        'column_name', 'description', 'datasource', 'groupby',
        'count_distinct', 'sum', 'min', 'max'
    ]
    list_columns = [
        'column_name', 'type', 'groupby', 'filterable', 'count_distinct',
        'sum', 'min', 'max'
    ]
    can_delete = False
    page_size = 100
示例#34
0
class ProjectFilesModelView(ModelView):
    datamodel = SQLAModel(ProjectFiles)

    label_columns = {'file_name': 'File Name', 'download': 'Download'}
    add_columns = ['file', 'description','project']
    edit_columns = ['file', 'description','project']
    list_columns = ['file_name', 'download']
    show_columns = ['file_name', 'download']


class ProjectModelView(CompactCRUDMixin, ModelView):
    datamodel = SQLAModel(Project)
    related_views = [ProjectFilesModelView]

    show_template = 'appbuilder/general/model/show_cascade.html'
    edit_template = 'appbuilder/general/model/edit_cascade.html'

    add_columns = ['name']
    edit_columns = ['name']
    list_columns = ['name', 'created_by', 'created_on', 'changed_by', 'changed_on']
    show_fieldsets = [
        ('Info', {'fields': ['name']}),
        ('Audit', {'fields': ['created_by', 'created_on', 'changed_by', 'changed_on'], 'expanded': False})
    ]


db.create_all()
appbuilder.add_view(ProjectModelView, "List Projects", icon="fa-table", category="Projects")
appbuilder.add_view_no_menu(ProjectFilesModelView)
示例#35
0
    def post_add_redirect(self):
        """Override this function to control the
        redirect after add endpoint is called."""

        dataset_id = db.session.query(DataSet).order_by(
            DataSet.dataset_id.desc()).first()
        return redirect('/data_set/edit/' + str(dataset_id.dataset_id))

    def post_edit_redirect(self):
        """Override this function to control the
        redirect after add endpoint is called."""

        return redirect('/data_set/list_new')

    def post_delete_redirect(self):
        """Override this function to control the
		   redirect after delete endpoint is called."""
        return redirect('/data_set/list_new')


appbuilder.add_view(DataSetView,
                    "Data Sets",
                    category="Data",
                    href='/data_set/list_new')
appbuilder.add_view(DataSetView,
                    "Data Sets Admin",
                    category="Data",
                    href='/data_set/list/')
appbuilder.add_view_no_menu(DataSetAttachmentView)
示例#36
0
                    "Add line monitor",
                    icon="fa fa-qrcode",
                    category="Line")
#appbuilder.add_view(ProjectFilesByUser, "line function", icon="fa fa-qrcode", category="Line",
#                    category_icon = "fa-envelope")
appbuilder.add_view(ProjectFilesByUser,
                    "line function",
                    icon="fa fa-qrcode",
                    category="Line",
                    category_icon="fa-envelope")
#appbuilder.add_view(
#    ProjectFilesModelView, "List all", icon="fa-table", category="Projects"
#)
appbuilder.add_link('Line',
                    label=_('monitor list'),
                    icon="fa-user-plus",
                    href='/projectfilesbyuser/show')
appbuilder.add_view(ProjectModelView,
                    "List All Qrcode group",
                    icon="fa-table",
                    category="Line")
appbuilder.add_view(ProjectFilesModelView,
                    "List All Qrcode",
                    icon="fa-table",
                    category="Line")
appbuilder.add_view_no_menu(ProjectFilesModelView)
appbuilder.add_view_no_menu(ShowProjectFilesByUser)
#appbuilder.add_view_no_menu(s)

db.create_all()