Beispiel #1
0
  def import_xml(self):
    user = users.get_current_user()
    if user:
      xml_file = self.request.POST.multi['file'].file
      xml = ''
      for line in xml_file.readlines():
        xml += line.strip()
      dom = minidom.parseString(xml)
      cat_name = dom.getElementsByTagName('CATEGORY')[0].firstChild.childNodes[0].data
      items = dom.getElementsByTagName('ITEM')
      item_list = []
      for item in items:
        item_name = item.firstChild.childNodes[0].data
        item_list.append(item_name)
      category_exists = self._check_if_category_exists(cat_name)

      if category_exists:
        self._edit_category(cat_name, item_list)
      else:
        category = Category(name=cat_name, owner=user)
        category.put()
        for item_name in item_list:
          item = Item(name=item_name, category=category, wins=0, losses=0)
          item.put()
      self._show_home_page({'success': 'Successfully imported category "%s"' % cat_name})
    else:
      self.redirect(users.create_login_url("/"))
Beispiel #2
0
 def submit_vote(self):
   user = users.get_current_user()
   if user:
     item1_id = int(self.request.POST['item1'])
     item2_id = int(self.request.POST['item2'])
     comment1 = self.request.POST['comment' + str(item1_id)]
     comment2 = self.request.POST['comment' + str(item2_id)]
     selected_id = int(self.request.POST['optionsRadios'])
     item1 = Item.get_by_id(item1_id)
     item2 = Item.get_by_id(item2_id)
     if selected_id == item1_id:
       item1.wins += 1
       item1.put()
       item2.losses += 1
       item2.put()
     else:
       item2.wins += 1
       item2.put()
       item1.losses += 1
       item1.put()
     if comment1:
       comment = Comment(text=comment1, owner=user, item=item1)
       comment.put()
     if comment2:
       comment = Comment(text=comment2, owner=user, item=item2)
       comment.put()
     self._show_home_page({'success': 'Successfully saved the vote'})
   else:
     self.redirect(users.create_login_url("/"))
Beispiel #3
0
  def save(self):
    user = users.get_current_user()
    if user:
      category = None
      cat_name = cgi.escape(self.request.POST['catName'])
      try:
      	expiry = int(self.request.POST['expiry'])
      except:
      	expiry = 365
      expiry = datetime.now() + timedelta(days=expiry)
      category_exists = self._check_if_category_exists(cat_name)
      if category_exists:
        self._show_home_page({'error': 'Error saving category, a category by that name already exists'})
        return

      item_list = []
      for param in self.request.POST.items():
        if param[0] != 'catName' and param[0] != 'expiry':
          if param[1] != '':
            item_list.append(cgi.escape(param[1]))
      if len(item_list) < 2:
        self._show_home_page({'error': 'Error saving category, please retry by creating at least 2 items for the category'})
        return

      category = Category(name=cat_name, owner=user, expiry=expiry)
      category.put()
      for item_name in item_list:
        item = Item(name=item_name, category=category, wins=0, losses=0)
        item.put()
        self._show_home_page({'success': 'Saved category "%s" successfully' % cat_name})
    else:
      self.redirect(users.create_login_url("/"))
Beispiel #4
0
  def _edit_category(self, cat_name, new_item_list):
    user = users.get_current_user()
    categories = list(db.GqlQuery('SELECT * from Category where owner=:1 AND name=:2', user, cat_name))
    category = categories[0]
    old_item_list = []
    for item in category.items:
      old_item_list.append(item.name)
    items_to_add = list(set(new_item_list) - set(old_item_list))
    items_to_delete = list(set(old_item_list) - set(new_item_list))

    for item_name in items_to_add:
      item = Item(name=item_name, category=category, wins=0, losses=0)
      item.put()

    deleted_items = category.items.filter('name IN', items_to_delete)
    for item in deleted_items:
      item.delete()
Beispiel #5
0
  def search(self):
    user = users.get_current_user()
    if user:
      template = templates.get('search.html')
      search_term = cgi.escape(self.request.POST['searchTerm'])
      categories = Category.all().search(search_term, properties=['name'])
      entity_list = []
      for category in categories:
        entity_list.append({'type': 'Category', 'name': category.name})

      items = Item.all().search(search_term, properties=['name'])
      for item in items:
        entity_list.append({'type': 'Item', 'name': item.name})

      template_values = {
          'user' : user.nickname(),
          'logout_url': users.create_logout_url("/"),
          'entities': entity_list
      }
      self.response.write(template.render(template_values))
    else:
      self.redirect(users.create_login_url("/"))