예제 #1
0
파일: forms.py 프로젝트: qlqwl/Niflheim
 def save(self):
     for field_name, value in self._fields.iteritems():
         if field_name.upper().startswith("SITE_"):
             value = self._fields[field_name].data
             app.config[field_name] = value
             op = Option(id=field_name)
             op.value = value
             op.put()
예제 #2
0
파일: handlers.py 프로젝트: seedprod/pagify
 def post(self, **kwargs):
     user =  self.current_user
     admin = False
     method = kwargs.get('method')
     if method == 'deletewidget':
         key_name = self.request.get("wid")
         widget = Widget.get_by_key_name(key_name)
         if widget:
             widget.deleted = True
             widget.last_modified_by = user
         try:
             db.put(widget)
             self.response.out.write('True')
         except:
             self.response.out.write('False')
             
     if method == 'savepageorder':
         page_order = self.request.get('pageorder')
         page_order = page_order.split(',')
         batch = []
         for k,v in enumerate(page_order):
             widget = Widget.get_by_key_name(v)
             if widget:
                 widget.order = k
                 widget.last_modified_by = user
                 batch.append(widget)
         try:
             db.put(batch)
             self.response.out.write('True')
         except:
             self.response.out.write('False')
             
     if method == 'savewidget':
         page = Page.get_by_key_name(self.request.get('pageid'))
         key_name = self.request.get('wid')
         widget = Widget.get_by_key_name(key_name)
         if self.request.get('wtype') == 'embedly':
            fields = simplejson.loads(self.request.get('wcontents'))
            #get_embedly_code({'id':self.request.get('wid'),"url":fields['embedly_url'],"type":"embedly"})
            deferred.defer(get_embedly_code,{'id':self.request.get('wid'),"url":fields['embedly_url'],"type":"embedly"})
         if self.request.get('wtype') == 'googlemaps':
            fields = simplejson.loads(self.request.get('wcontents'))
            deferred.defer(get_embedly_code,{'id':self.request.get('wid'),"url":fields['googlemaps_link'],"type":"googlemaps"})
         if not widget:
             widget = Widget(key_name=key_name,
                             id = key_name,
                             type = self.request.get('wtype'),
                             name = self.request.get('wname'),
                             page = page,
                             contents = self.request.get('wcontents'),
                             last_modified_by = user
                            )
             fields = simplejson.loads(self.request.get('wcontents'))
             for k,v in fields.iteritems():
                 db_type = k.split('__')
                 try:
                     db_type = db_type[1]
                 except IndexError:
                     db_type = None
                 logging.info(db_type)
                 if db_type == 'text':
                     setattr(widget, k, db.Text(v))
                 else:
                     setattr(widget, k, v)
         else:
             widget.name = self.request.get('wname')
             widget.contents = self.request.get('wcontents')
             widget.last_modified_by = user
             fields = simplejson.loads(self.request.get('wcontents'))
             for k,v in fields.iteritems():
                 db_type = k.split('__')
                 try:
                     db_type = db_type[1]
                 except IndexError:
                     db_type = None
                 logging.info(db_type)
                 if db_type == 'text':
                     setattr(widget, k, db.Text(v))
                 else:
                     setattr(widget, k, v)
         
         try:
             db.put(widget)
             self.response.out.write('True')
         except:
             self.response.out.write('False')
     if method == 'saveoption':
         try:
             option = Option.get_by_id(int(self.request.get('id')))
         except:
             option = None
         if self.request.get('otype') == 'page':
             link = Page.get_by_key_name(self.request.get('opageid'))
         if not option:
             option = Option(
                             name = self.request.get('oname'),
                             value = self.request.get('ovalue'),
                             type = self.request.get('otype'),
                             type_reference = link
                            )
         else:
             option.value = self.request.get('ovalue')
             
         try:
             db.put(option)
             self.response.out.write('True')
         except:
             self.response.out.write('False')
     if method == 'upgradedowngrade':
       try:
         username = self.get_config('saasy','username')
         password = self.get_config('saasy','password')
         product = self.get_config('saasy','product')
         qty = str(self.request.get('qty'))
         basic_auth = base64.b64encode('%s:%s' % (username, password)) 
         xml_data = "<subscription><productPath>/%s</productPath><quantity>%s</quantity><no-end-date/></subscription>" % (product,qty)
         subscriber_info=simplejson.loads(self.current_user.subscriber_info)
         url = "https://api.fastspring.com/company/seedprod/subscription/%s" % subscriber_info['reference']
         response = urlfetch.fetch(url=url,payload=xml_data,headers={'Authorization': 'Basic %s' % basic_auth ,'Content-Type': 'application/xml' },method=urlfetch.PUT)
         if response.status_code == 200:
           # Update Pages
           upgraded_pages = self.request.get('pages').split(',')
           pages = Page.get(user.pages)
           batch = []
           for p in pages:
             if p.id in upgraded_pages:
               p.upgraded = '1'
               p.upgraded_by = user
             else:
               if p.upgraded_by:
                 if p.upgraded_by.id == user.id:
                   p.upgraded = '0'
                   p.upgraded_by = None
             batch.append(p)
           db.put(batch)
                        
           self.response.out.write('True')
         else:
           self.response.out.write('False')
       except:
         self.response.out.write('False')