Example #1
0
 def post(self):
     post = self.request.POST
     if post['kind'] == 'badge':
         badge = Badge(
             name=post['name'],
             description=post['description'],
             category=post['category'],
             image=post['image'],
             value=int(post['value'])
         )
         badge.save()
     elif post['kind'] == 'award':
         badge = Badge.get_by_id(int(post['badge']))
         for member in post.getall('members'):
             member = Member.get_by_id(int(member))
             award = Award(
                 member=member,
                 badge=badge,
                 date=datetime.date.today(),
                 proof=post['proof']
             )
             award.save()
             member.score += badge.value
             member.save()
     elif post['kind'] == 'talk':
         talk = Talk(
             title=post['title'],
             date=utils.parse_date(post['date']),
             description=post['description'],
             member=Member.get_by_id(int(post['member'])),
             video=post['video']
         )
         talk.put()
     elif post['kind'] == 'taglineform':
         properties = GeneralSiteProperties.all().get()
         if properties == None:
             properties = GeneralSiteProperties(tag_line=post['tagline'])
             properties.put()
         else:
             properties.tag_line = post['tagline']
             properties.put()
     self.get()
Example #2
0
 def post(self):
     post = self.request.POST
     if post['kind'] == 'badge':
         badge = Badge(name=post['name'],
                       description=post['description'],
                       category=post['category'],
                       image=post['image'],
                       value=int(post['value']))
         badge.save()
     elif post['kind'] == 'award':
         badge = Badge.get_by_id(int(post['badge']))
         for member in post.getall('members'):
             member = Member.get_by_id(int(member))
             award = Award(member=member,
                           badge=badge,
                           date=datetime.date.today(),
                           proof=post['proof'])
             award.save()
             member.score += badge.value
             member.save()
     elif post['kind'] == 'talk':
         talk = Talk(title=post['title'],
                     date=utils.parse_date(post['date']),
                     description=post['description'],
                     member=Member.get_by_id(int(post['member'])),
                     video=post['video'])
         talk.put()
     elif post['kind'] == 'taglineform':
         properties = GeneralSiteProperties.all().get()
         if properties == None:
             properties = GeneralSiteProperties(tag_line=post['tagline'])
             properties.put()
         else:
             properties.tag_line = post['tagline']
             properties.put()
     self.get()
Example #3
0
    def render_template(self, template_name, template_dict=None):
        try:
            tag_line = GeneralSiteProperties.get_properties().tag_line
        except:
            tag_line = 'Next meeting soon!'

        if template_dict is None:
            template_dict = {}

        user = Member.get_current_member()

        if user:
            if self.login_required:
                redirect_target = '/'
            else:
                redirect_target = self.request.path
            url_creator = users.create_logout_url
        else:
            redirect_target = '/login?url=%s' % self.request.path
            url_creator = users.create_login_url

        defaults = {
            'user': user,
            'is_admin': users.is_current_user_admin(),
            'log_url': url_creator(redirect_target),
            'tag_line': tag_line,
            'title': self.title
        }

        for key in defaults:
            if key not in template_dict:
                template_dict[key] = defaults[key]

        template_path = get_path(
            os.path.join('templates', '%s.html' % template_name)
        )
        self.response.out.write(template.render(template_path, template_dict))
Example #4
0
    def render_template(self, template_name, template_dict=None):
        try:
            tag_line = GeneralSiteProperties.get_properties().tag_line
        except:
            tag_line = 'Next meeting soon!'

        if template_dict is None:
            template_dict = {}

        user = Member.get_current_member()

        if user:
            if self.login_required:
                redirect_target = '/'
            else:
                redirect_target = self.request.path
            url_creator = users.create_logout_url
        else:
            redirect_target = '/login?url=%s' % self.request.path
            url_creator = users.create_login_url

        defaults = {
            'user': user,
            'is_admin': users.is_current_user_admin(),
            'log_url': url_creator(redirect_target),
            'tag_line': tag_line,
            'title': self.title
        }

        for key in defaults:
            if key not in template_dict:
                template_dict[key] = defaults[key]

        template_path = get_path(
            os.path.join('templates', '%s.html' % template_name))
        self.response.out.write(template.render(template_path, template_dict))
Example #5
0
    def post(self):
        post = self.request.POST
        kind=post['kind']
        if  kind== 'taglineform':
            properties = GeneralSiteProperties.all().get()
            if properties == None:
                properties = GeneralSiteProperties(tag_line=post['tagline'])
                properties.put()
            else:
                properties.tag_line = post['tagline']
                properties.put()
        elif kind=="image_upload":
             if(self.request.get("picture")):
                 try:
                      if('resize' in post):
                          pictureImage = Image(picture=images.resize(self.request.get("picture"),int(post['height']), int(post['width'])),
                                               name="no-name",title=" ",alt=" ")
                      else:
                          pictureImage = Image(picture=self.request.get("picture"),name="no-name",title=" ",alt=" ")
                      if(post['alias']!=""):
                         replace=True
                         name=post['alias']
                         for other_image in Image.all():
                             if other_image.name == name :
                                replace=False
                                self.admin_message="You cannot use %s as an alias as it is used for another image" % name
                         if replace :
                             pictureImage.name=name
                      if(post['title']!=""):
                         pictureImage.name=post['title']
                      if(post['alt']!=""):
                         pictureImage.name=post['alt']
                      pictureImage.put()
                      self.admin_message = 'Image uploaded'
                 except RequestTooLargeError:
                      self.admin_message = 'Image not uploaded - too large'
                 except TypeError:
                      self.admin_message = 'Width and Height have to be integers'
             else:
                 self.admin_message = 'You need to actually select a picture!'
             kind='image'
        else :
             things_deleted = 0
             for entry_key in self.request.POST.getall('delete_entry'):
                try:
                    entry_key = Key(entry_key)
                except BadKeyError:
                    # Wrong syntax for a key, move on to next key.
                    continue
                if(kind=='news'):
                    thing = NewsArticleNew.get(entry_key)
                elif(kind=='talk'):
                    thing = TalkNew.get(entry_key)
                elif(kind=='hack'):
                    thing = Hack.get(entry_key)
                if thing:
                    thing.delete()
                    things_deleted += 1
                # Else, not article has this key.
             self.admin_message = '%d %s(s) deleted.' % (things_deleted,self.thing_descriptors.get(kind))

        self.render_template('admin',
            {'news_list' : NewsArticleNew.all().order('-date'),
             'talk_list' : TalkNew.all().order('-date'),
             'hack_list' : Hack.all().order('-date'),
             'image_list' : Image.all(),
             'image_height' : self.image_height,
             'image_width' : self.image_width,
             'members': Member.all(),
             'message' : self.admin_message,
             'tabselect':kind})