def before_edit(remainder, params, output): self = request.controller_state.controller if not getattr(self, 'allow_edit', True): abort(403) # Use my bootstrap-enabled template override_template(FilterCrudRestController.edit, 'mako:sauce.templates.crc.edit')
def replace_template_hook(remainder, params, output): req = request._current_obj() try: dispatch_state = req._controller_state except: dispatch_state = req.controller_state try: if req.validation['exception']: controller = req.validation['error_handler'] else: controller = dispatch_state.method except (AttributeError, KeyError): controller = dispatch_state.method decoration = Decoration.get_decoration(controller) if 'tg.locals' in req.environ: content_type, engine, template, exclude_names = decoration.lookup_template_engine(req.environ['tg.locals'])[:4] else: content_type, engine, template, exclude_names = decoration.lookup_template_engine(req)[:4] replaced_template = config._pluggable_templates_replacements.get(template) if replaced_template: override_template(decoration.controller, replaced_template)
def value(self,*args, **kw): self.activate_code = args if(len(self.activate_code) > 0): self.userGenCode = model.UserGenCode.getByActivateCode(self.activate_code[0]) self.message = ""; if (self.userGenCode ): if ( not self.utility.convertToBool(self.userGenCode.success) ): if (self.utility.isActiveFromDate(self.utility.getCurrentDate() , self.userGenCode.create_date ,self.userGenCode.expire_date ) ): self.userGenCode.success = 1; self.message = LanguageObject.getdata("msg_success_activate") else : self.message = LanguageObject.getdata("msg_expire_activate") override_template(ActivateController.value, 'genshi:pollandsurvey.templates.register.reactivate') else: self.message = LanguageObject.getdata("msg_already_activate") else: self.message = LanguageObject.getdata("msg_not_found_activate") log.warning("Find not found activate code %s", self.activate_code ) else: #self.message = "Thank you!"; log.warning("User income is wrong,have not activate code") redirect("/") #for key in request.environ: print "%s --- %s" %( key, request.environ[key]); return dict(page='activate_success',message = self.message)
def index(self, id=0, ready="no", came_from=lurl("/")): reload(sys).setdefaultencoding("utf8") if not request.identity: login_counter = request.environ.get("repoze.who.logins", 0) + 1 redirect("/login", params=dict(came_from=came_from, __logins=login_counter)) userid = request.identity["repoze.who.userid"] log.info("preview id : " + str(id)) log.info("ready : " + str(ready)) self.header = "" self.footer = "" self.nextQuestion = "" self.template = "" self.questionOption = model.QuestionOption.getId(id) if self.questionOption: log.info("expire date : " + str(self.questionOption.expire_date)) log.info("current : " + str(datetime.now())) if datetime.now() <= self.questionOption.expire_date: log.info("not expire") else: log.info("expire") if str(ready).lower() == "no": # check have welcome page if not self.utility.isEmpty(self.questionOption.welcome_message): redirect(request.path_info + "/welcome?id=" + str(self.questionOption.id_question_option)) else: self.template = self.questionOption.theme.template override_template(PreviewController.index, self.template) elif str(ready).lower() == "yes": self.header = self.questionOption.header_message self.footer = self.questionOption.footer_message self.urlName = self.utility.spritValue(request.path_info, "/") self.template = self.questionOption.theme.template if len(self.urlName) >= 1: self.nextQuestion = ( "/" + self.urlName[0] + "/saveQuestion" + "?id=" + str(self.questionOption.id_question_option) ) if self.template is not None and len(self.template) > 0: log.info("template used : %s", self.template) override_template(PreviewController.index, self.template) # print 'idproject : ', id; return dict( page="view", header=self.header, footer=self.footer, action=self.nextQuestion, template=self.template, urldata=self.URL_GETDATAQUESTION.format(id), idproject=id, shownavigator=bool(self.questionOption.show_navigator), idresp="", )
def replace_template_hook(remainder, params, output): req = request._current_obj() try: dispatch_state = req._controller_state except: dispatch_state = req.controller_state try: if req.validation['exception']: controller = req.validation['error_handler'] else: controller = dispatch_state.method except (AttributeError, KeyError): controller = dispatch_state.method decoration = Decoration.get_decoration(controller) if 'tg.locals' in req.environ: content_type, engine, template, exclude_names = decoration.lookup_template_engine( req.environ['tg.locals'])[:4] else: content_type, engine, template, exclude_names = decoration.lookup_template_engine( req)[:4] replaced_template = config._pluggable_templates_replacements.get(template) if replaced_template: override_template(decoration.controller, replaced_template)
def before_render_get_all(remainder, params, output): '''Function to be hooked before get_all - Disables pagination - Replaces template with our own - Sets allow_* switches in tmpl_context ''' # Disable pagination for get_all output['value_list'].page_count = 0 #output['value_list'] = output['value_list'].original_collection output['value_list'] = output['value_list'].collection c.paginators = [] # Use my bootstrap-enabled template override_template(FilterCrudRestController.get_all, 'mako:sauce.templates.crc.get_all') self = request.controller_state.controller try: c.bulk_actions = self.bulk_actions() except: # tgext.admin c.bulk_actions = u'<a href="./new" class="btn"><i class="icon-plus-sign"></i> New %s</a>' % self.model.__name__ for allow in ('allow_new', 'allow_edit', 'allow_delete'): setattr(c, allow, getattr(self, allow, True))
def sampleTemplate(self, id=0, **kw): # print id; if str(id) == str(2): # print id; override_template(PreviewController.sampleTemplate, "genshi:pollandsurvey.templates.view.changeTemplate") return dict( title="Foobar", mybool=False, someval="foo" ) # ,tg_template="pollandsurvey.templates.view.changeTemplate"
def index(self): result = None if session.get('username') is not None: user = DBSession.query(User).filter_by(user_name=session.get('username')).first() if user is not None and user.is_cloud(): if session['cloud_only'] == True: override_template(self.index, 'genshi:stackone.templates.clouddashboard') result = self.controller_impl.index() return dict(result)
def _before(self, *args, **kw): super(self.__class__, self)._before(*args, **kw) tmpl_context.make_pager_args = make_pager_args if request.response_type not in ('application/json',): default_renderer = getattr(tg_config, 'default_renderer', 'genshi') for layout_template in ('get_all', 'new', 'edit'): for template in config.layout.crud_templates.get(layout_template, []): if template.startswith(default_renderer): override_template(getattr(self, layout_template), template)
def _before(self, *args, **kw): super(self.__class__, self)._before(*args, **kw) tmpl_context.make_pager_args = make_pager_args if request.response_type not in ('application/json',): default_renderer = AdminController._get_default_renderer() for action in ('get_all', 'new', 'edit'): for template in config.layout.crud_templates.get(action, []): if template.startswith(default_renderer): override_template(getattr(self, action), template)
def before_render_edit(remainder, params, output): '''Function to be hooked before edit - Determines whether editing is even allowed - Replaces template with our own ''' self = request.controller_state.controller if not getattr(self, 'allow_edit', True): abort(403) # Use my bootstrap-enabled template override_template(FilterCrudRestController.edit, 'mako:sauce.templates.crc.edit')
def _before(self, *args, **kw): super(self.__class__, self)._before(*args, **kw) tmpl_context.make_pager_args = make_pager_args if request.response_type not in ('application/json', ): default_renderer = AdminController._get_default_renderer() for action in ('get_all', 'new', 'edit'): for template in config.layout.crud_templates.get( action, []): if template.startswith(default_renderer): override_template(getattr(self, action), template)
def page(self, help_page='', mode='normal'): """ :param help_page: the mako help page file name (without the prefix page-) :param mode: the mode to generate. Options are "normal" or "modal" :return: """ # FIXME - NOT REALLY SAFE BECAUSE SOME UNWANTED FILE MAY BE USED AS HELP PAGE if help_page: help_page_path = 'mako:tracim.templates.help.page-{}'.format(help_page) override_template(HelpController.page, help_page_path) return dict(mode=mode)
def index(self ,id=0,ready='no' , came_from=lurl('/')): reload(sys).setdefaultencoding('utf8') userid = request.identity['repoze.who.userid'] self.header = ''; self.footer = ''; self.nextQuestion =''; self.template =''; self.questionOption = model.QuestionOption.getId(id); if self.questionOption : print str(ready).lower() if str(ready).lower() == 'no': #check have welcome page if( not self.utility.isEmpty(self.questionOption.welcome_message) ) : redirect(request.path_info + '/welcome?id='+ str(self.questionOption.id_question_option) ); else: self.template = self.questionOption.theme.template; override_template(PreviewController.index, self.template) ; elif str(ready).lower() == 'yes': self.header = self.questionOption.header_message; self.footer = self.questionOption.footer_message; self.urlName = self.utility.spritValue(request.path_info,'/'); self.template = self.questionOption.theme.template if(len(self.urlName) >= 1 ) : self.nextQuestion = '/' + self.urlName[0] + '/saveQuestion' + '?id='+ str(self.questionOption.id_question_option); if(self.template is not None and len(self.template) > 0): log.info("template used : %s", self.template ); override_template(PreviewController.index, self.template) #kw = {'idProject': str(id)} #self.dataView = self.getDataPreview(came_from,**kw) print "self.template " + self.template #print 'idproject : ', id; return dict(page='view',header = self.header, footer = self.footer, action = self.nextQuestion, template= self.template, urldata = self.URL_GETDATAQUESTION.format(id) , idproject = id , shownavigator = bool(self.questionOption.show_navigator), idresp = "", username="");
def _before(self, *args, **kw): super(self.__class__, self)._before(*args, **kw) tmpl_context.make_pager_args = make_pager_args if request.response_type not in ('application/json', ): default_renderer = getattr(tg_config, 'default_renderer', 'genshi') for layout_template in ('get_all', 'new', 'edit'): for template in config.layout.crud_templates.get( layout_template, []): if template.startswith(default_renderer): override_template( getattr(self, layout_template), template)
def before_get_all(remainder, params, output): # Disable pagination for get_all output['value_list'].page_count = 0 #output['value_list'] = output['value_list'].original_collection output['value_list'] = output['value_list'].collection c.paginators = [] # Use my bootstrap-enabled template override_template(FilterCrudRestController.get_all, 'mako:sauce.templates.crc.get_all') self = request.controller_state.controller for allow in ('allow_new', 'allow_edit', 'allow_delete'): setattr(c, allow, getattr(self, allow, True))
def replace_template_hook(remainder, params, output): req = request._current_obj() try: dispatch_state = req._controller_state except: dispatch_state = req.controller_state decoration = Decoration.get_decoration(dispatch_state.method) if 'tg.locals' in req.environ: content_type, engine, template, exclude_names = decoration.lookup_template_engine(req.environ['tg.locals'])[:4] else: content_type, engine, template, exclude_names = decoration.lookup_template_engine(req)[:4] replaced_template = config._pluggable_templates_replacements.get(template) if replaced_template: override_template(dispatch_state.method, replaced_template)
def replace_template_hook(remainder, params, output): req = request._current_obj() try: dispatch_state = req._controller_state except: dispatch_state = req.controller_state decoration = Decoration.get_decoration(dispatch_state.method) if 'tg.locals' in req.environ: content_type, engine, template, exclude_names = decoration.lookup_template_engine( req.environ['tg.locals'])[:4] else: content_type, engine, template, exclude_names = decoration.lookup_template_engine( req)[:4] replaced_template = config._pluggable_templates_replacements.get(template) if replaced_template: override_template(dispatch_state.method, replaced_template)
def livesocket(self, topic=None, callback=None, json=True): """Returns a raw Moksha live socket, for use in non-Moksha apps. <script> function bar(msg) { alert('bar(' + msg + ')'); } </script> <script type="text/javascript" src="http://localhost:8080/livesocket?topic=foo&callback=bar"> </script> """ data = {'topic': topic, 'callback': callback, 'json': json} backend = config.get('moksha.livesocket.backend', 'stomp').lower() if backend == 'stomp': override_template(self.livesocket, 'mako:moksha.templates.stomp_socket') data['stomp_host'] = config.get('stomp_host', 'localhost') data['stomp_port'] = config.get('stomp_port', 61613) data['stomp_user'] = config.get('stomp_user', 'guest') data['stomp_pass'] = config.get('stomp_pass', 'guest') elif backend == 'amqp': override_template(self.livesocket, 'mako:moksha.templates.amqp_socket') data['amqp_broker_host'] = config.get('amqp_broker_host', 'localhost') data['amqp_broker_port'] = config.get('amqp_broker_port', 5672) data['amqp_broker_user'] = config.get('amqp_broker_user', 'guest') data['amqp_broker_pass'] = config.get('amqp_broker_pass', 'guest') data['orbited_host'] = config.get('orbited_host', 'localhost') data['orbited_port'] = config.get('orbited_port', 9000) data['orbited_scheme'] = config.get('orbited_scheme', 'http') data['orbited_url'] = '%s://%s:%s' % ( data['orbited_scheme'], data['orbited_host'], data['orbited_port']) environ = pylons.request.environ data['server'] = '%s://%s:%s%s' % ( environ.get('wsgi.url_scheme', 'http'), environ['SERVER_NAME'], environ['SERVER_PORT'], environ['toscawidgets.prefix']) return data
def livesocket(self, topic=None, callback=None, json=True): """Returns a raw Moksha live socket, for use in non-Moksha apps. <script> function bar(msg) { alert('bar(' + msg + ')'); } </script> <script type="text/javascript" src="http://localhost:8080/livesocket?topic=foo&callback=bar"> </script> """ data = {'topic': topic, 'callback': callback, 'json': json} backend = config.get('moksha.livesocket.backend', 'stomp').lower() if backend == 'stomp': override_template(self.livesocket, 'mako:moksha.templates.stomp_socket') data['stomp_host'] = config.get('stomp_host', 'localhost') data['stomp_port'] = config.get('stomp_port', 61613) data['stomp_user'] = config.get('stomp_user', 'guest') data['stomp_pass'] = config.get('stomp_pass', 'guest') elif backend == 'amqp': override_template(self.livesocket, 'mako:moksha.templates.amqp_socket') data['amqp_broker_host'] = config.get('amqp_broker_host', 'localhost') data['amqp_broker_port'] = config.get('amqp_broker_port', 5672) data['amqp_broker_user'] = config.get('amqp_broker_user', 'guest') data['amqp_broker_pass'] = config.get('amqp_broker_pass', 'guest') data['orbited_host'] = config.get('orbited_host', 'localhost') data['orbited_port'] = config.get('orbited_port', 9000) data['orbited_scheme'] = config.get('orbited_scheme', 'http') data['orbited_url'] = '%s://%s:%s' % (data['orbited_scheme'], data['orbited_host'], data['orbited_port']) environ = pylons.request.environ data['server'] = '%s://%s:%s%s' % (environ.get('wsgi.url_scheme', 'http'), environ['SERVER_NAME'], environ['SERVER_PORT'], environ['toscawidgets.prefix']) return data
def get_all(self,): override_template(self.get_all,self.template) return dict(page=self.page)
def template_override(self, override=False): if override: override_template(self.template_override, "genshi:tg.tests.overridden") return dict()
def questionnaire(self,key=0,ready='no',**kw): reload(sys).setdefaultencoding('utf8') log.info("key %s , ready %s" %( key,ready) ); print ("key %s , ready %s" %( key,ready) ); self.header = ''; self.footer = ''; self.nextQuestion =''; self.template =''; self.userName=''; self.respondents = model.Respondents.getByKey(keyGen=key); if self.respondents : self.urlReply = self.urlUtility.URL_REPLY.format( model.SystemEnvironment.getServerUrl() , str(self.respondents.id_question_project), str(self.respondents.id_question_option), str(self.respondents.id_voter)) ; #request.application_url log.info("iframe url to %s" %self.urlReply); #check finish self.isRedirect ,self.redirect = self.answerQuestionService.checkFinish(respondent = self.respondents, urlUtility = self.urlUtility) if self.isRedirect: redirect(self.redirect) ; #check Expire self.questionOption,self.redirect = self.__checkOptionExpired(self.respondents.id_question_option); if str(ready).lower() == 'no': #check have welcome page if( not self.utility.isEmpty(self.questionOption.welcome_message) ) : #redirect('/ans' + '/welcome?id='+ str(self.questionOption.id_question_option) ); log.info("show message welcome : "); redirect( self.urlUtility.URL_WELCOME.format(key = str(key)) )# self.URL_WELCOME_NEW.format(str(key)) ); else: log.info("show questionnaire : "); self.template = self.questionOption.theme.template; override_template(AnswerQuestionController.questionnaire, self.template) ; elif str(ready).lower() == 'yes': self.header = self.questionOption.header_message; self.footer = self.questionOption.footer_message; self.urlName = self.utility.spritValue(request.path_info,'/'); self.template = self.questionOption.theme.template if(len(self.urlName) >= 1 ) : self.nextQuestion = '/' + self.urlName[0] + '/saveQuestion' + '?id='+ str(self.questionOption.id_question_option); if(self.template is not None and len(self.template) > 0): log.info("template used : %s" %self.template ); override_template(AnswerQuestionController.questionnaire, self.template) self.ip=request.environ.get("X_FORWARDED_FOR", request.environ["REMOTE_ADDR"]); self.browser = request.environ.get('HTTP_USER_AGENT'); self.header = self.questionOption.header_message; self.footer = self.questionOption.footer_message; self.urlName = self.utility.spritValue(request.path_info,'/'); self.template = self.questionOption.theme.template if self.respondents.voter: self.userName = "******"%(self.respondents.voter.firstname,self.respondents.voter.lastname); else: log.warning("find not found key %s" %str(key)); redirect(self.urlUtility.URL_EXPIRED) ; print "header : %s" %self.header return dict(page='view', header = Markdown(self.header).convert() , footer = Markdown(self.footer).convert() , action = self.nextQuestion, template= self.template, #urldata = self.URL_GETDATAQUESTION.format(self.idPublic), urldata = self.urlUtility.URL_GETDATAQUESTION.format(key=str(key)),# self.URL_GETDATAQUESTION.format(key), idproject = self.questionOption.id_question_option , idresp = self.respondents.id_respondents, username = self.userName, shownavigator = bool(self.questionOption.show_navigator) );
def get_all(self,proyecto_Id=''): tmpl_context.proyectoId = hideMe() override_template(self.get_all,self.template) return dict(page=self.page, proyectoId=proyecto_Id)