Exemplo n.º 1
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("/"))
Exemplo n.º 2
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("/"))
Exemplo n.º 3
0
 def delete(self, cat_id):
   category = Category.get_by_id(int(cat_id))
   cat_name = category.name
   for item in category.items:
     item.delete()
   category.delete()
   self._show_home_page({'success': 'Successfully deleted category "%s"' % cat_name})
Exemplo n.º 4
0
 def result(self, cat_id):
   template = templates.get('results_items.html')
   user = users.get_current_user()
   category = Category.get_by_id(int(cat_id))
   items = category.items
   item_list = []
   for item in items:
     try:
       percentage = item.wins * 100.0 / (item.wins + item.losses)
       percentage_str = '%.2f' % percentage
     except ZeroDivisionError:
       percentage = -1
       percentage_str = '-'
     item_dict = {'id': item.key().id(), 'name': item.name,
         'wins': item.wins, 'losses': item.losses,
         'comments': item.comments, 'percentage': percentage,
         'comment_count': item.comments.count(),
         'percentage_str': percentage_str}
     item_list.append(item_dict)
   item_list = sorted(item_list, key=lambda k: k['percentage'], reverse=True)
   template_values = {
       'user' : user.nickname(),
       'logout_url': users.create_logout_url("/"),
       'items': item_list,
       'category': category.name
   }
   self.response.out.write(template.render(template_values))
Exemplo n.º 5
0
 def export(self, cat_id):
   category = Category.get_by_id(int(cat_id))
   self.response.headers['Content-Type'] = 'text/xml'
   xml_str = '<CATEGORY><NAME>' + category.name + '</NAME>'
   for item in category.items:
     xml_str += '<ITEM><NAME>' + item.name + '</NAME></ITEM>'
   xml_str += '</CATEGORY>'
   self.response.out.write('<?xml version="1.0" encoding="ISO-8859-1"?>' + xml_str)
Exemplo n.º 6
0
 def show_edit(self, cat_id):
   category = Category.get_by_id(int(cat_id))
   expires_in = (category.expiry - datetime.now()).days
   if expires_in < 0:
     expires_in = 0
   template = templates.get('edit_page.html')
   user = users.get_current_user()
   template_values = {
       'user' : user.nickname(),
       'logout_url': users.create_logout_url("/"),
       'items': category.items,
       'category': category,
       'expires_in': expires_in,
       'item_count': category.items.count()
   }
   self.response.write(template.render(template_values))
Exemplo n.º 7
0
 def vote(self, cat_id):
   user = users.get_current_user()
   template = templates.get('vote.html')
   category = Category.get_by_id(int(cat_id))
   items = category.items
   selected_items = list(random.sample(set(items), 2))
   item1 = self.get_item_dict(selected_items[0])
   item2 = self.get_item_dict(selected_items[1])
   template_values = {
       'user' : user.nickname(),
       'logout_url': users.create_logout_url("/"),
       'category': category.name,
       'item1': item1,
       'item2': item2
   }
   self.response.out.write(template.render(template_values))
Exemplo n.º 8
0
    def save_categories(self):

        if self.categories is None:
            return

        root_id = 1
        categories = [c.strip() for c in self.categories.split('>')]
        parent = None
        for category in categories:
            slug = self.create_slug(category)
            if parent is not None:
                slug = parent.slug + "-" + slug

            try:
                cc_node = Category.get(Category.slug == slug)
            except:
                try:
                    cc_node = Category()
                    cc_node.name = category
                    cc_node.slug = slug
                    cc_node.parent_id = parent.id if parent is not None else root_id
                    cc_node.save()

                    cc_node = Category.get(Category.slug == slug)
                except:
                    pass

            parent = cc_node

            try:
                cp = CategoryProduct()
                cp.asin = self.asin
                cp.category_id = cc_node.id
                cp.save()
            except:
                pass
Exemplo n.º 9
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("/"))
def write_category_to_mongo(category, parent_pageid):
    category['title'] = category['title'].replace('Category:', '')
    if Category.objects(pageid=category['pageid']).count() == 0:
        this_category = Category(pageid=category['pageid'],
                                 title=category['title'])
        this_category.save()

    this_category = Category.objects(pageid=category['pageid']).first()

    if parent_pageid is not None:
        parent_category = Category.objects(pageid=parent_pageid).first()
        this_category.parent_pageid = parent_pageid
        this_category.parent_title = parent_category.title
        this_category.save()

    return this_category