def post(self, slug): "Create an issue against this project" project = Project.all().filter('slug =', slug).fetch(1)[0] # get details from the form name = self.request.get("name") description = self.request.get("description") email = self.request.get("email") try: if Issue.all().filter('name =', name).filter('project =', project).count() == 0: issue = Issue( name=name, description=description, project=project, ) if email: issue.email = email issue.put() mail.send_mail( sender="*****@*****.**", to=project.user.email(), subject="[GitBug] New bug added to %s" % project.name, body= """You requested to be emailed when a bug on GitBug was added: Issue name: %s Description: %s Thanks for using GitBug <http://gitbug.appspot.com>. A very simple issue tracker. """ % (issue.name, issue.description)) logging.info("issue created: %s in %s" % (name, project.name)) except Exception, e: logging.error("error adding issue: %s" % e)
def post(self): user = users.get_current_user() if not user: self.redirect(users.create_login_url(self.request.uri)) return duration_amount = int(self.request.get('duration_amount')) multiplier = int(self.request.get('duration_multiplier')) issue = Issue( title = cgi.escape(self.request.get('title')), description = cgi.escape(self.request.get('description')), duration = duration_amount * multiplier, ) issue.put() if self.request.get('option1'): issue.add_choice(cgi.escape(self.request.get('option1'))) if self.request.get('option2'): issue.add_choice(cgi.escape(self.request.get('option2'))) if self.request.get('option3'): issue.add_choice(cgi.escape(self.request.get('option3'))) if self.request.get('option4'): issue.add_choice(cgi.escape(self.request.get('option4'))) if self.request.get('option5'): issue.add_choice(cgi.escape(self.request.get('option5'))) self.redirect('/issue/%s' % (issue.key().id()))
def post(self): user = users.get_current_user() if not user: self.redirect(users.create_login_url(self.request.uri)) return duration_amount = int(self.request.get('duration_amount')) multiplier = int(self.request.get('duration_multiplier')) issue = Issue( title=cgi.escape(self.request.get('title')), description=cgi.escape(self.request.get('description')), duration=duration_amount * multiplier, ) issue.put() if self.request.get('option1'): issue.add_choice(cgi.escape(self.request.get('option1'))) if self.request.get('option2'): issue.add_choice(cgi.escape(self.request.get('option2'))) if self.request.get('option3'): issue.add_choice(cgi.escape(self.request.get('option3'))) if self.request.get('option4'): issue.add_choice(cgi.escape(self.request.get('option4'))) if self.request.get('option5'): issue.add_choice(cgi.escape(self.request.get('option5'))) self.redirect('/issue/%s' % (issue.key().id()))
def post(self): user = users.get_current_user() if not user: self.redirect(users.create_login_url(self.request.uri)) return duration_amount = int(self.request.get('duration_amount')) multiplier = int(self.request.get('duration_multiplier')) visibility = self.request.get('visibility') hashcode = random_string() issue = Issue( visibility = visibility, title = cgi.escape(self.request.get('title')), description = cgi.escape(self.request.get('description')), duration = duration_amount * multiplier, urlcode = hashcode) issue.put() if self.request.get('option1'): issue.add_choice(cgi.escape(self.request.get('option1'))) if self.request.get('option2'): issue.add_choice(cgi.escape(self.request.get('option2'))) if self.request.get('option3'): issue.add_choice(cgi.escape(self.request.get('option3'))) if self.request.get('option4'): issue.add_choice(cgi.escape(self.request.get('option4'))) if self.request.get('option5'): issue.add_choice(cgi.escape(self.request.get('option5'))) self.redirect('/issue/%s' % issue.urlcode)
def post(self): user = users.get_current_user() if not user: self.redirect(users.create_login_url(self.request.uri)) return duration_amount = int(self.request.get('duration_amount')) multiplier = int(self.request.get('duration_multiplier')) visibility = self.request.get('visibility') hashcode = random_string() title = cgi.escape(self.request.get('title')) description = cgi.escape(self.request.get('description')) if self.request.get('purchase'): title = "Purchase: "+cgi.escape(self.request.get('title')) description = "<a href=\""+cgi.escape(self.request.get('url'))+"\">"+cgi.escape(self.request.get('url'))+"</a><br>"+ \ "<br>Price: $"+cgi.escape(self.request.get('price'))+"<br>"+ \ "Qty: "+cgi.escape(self.request.get('qty'))+"<br>"+ \ "Total: $"+cgi.escape(self.request.get('total'))+"<br> "+ \ "<br>"+cgi.escape(self.request.get('description')) issue = Issue( visibility = visibility, title = title, description = description, duration = duration_amount * multiplier, urlcode = hashcode) issue.put() if self.request.get('option1'): issue.add_choice(cgi.escape(self.request.get('option1'))) if self.request.get('option2'): issue.add_choice(cgi.escape(self.request.get('option2'))) if self.request.get('option3'): issue.add_choice(cgi.escape(self.request.get('option3'))) if self.request.get('option4'): issue.add_choice(cgi.escape(self.request.get('option4'))) if self.request.get('option5'): issue.add_choice(cgi.escape(self.request.get('option5'))) if self.request.get('purchase'): details = cgi.escape(self.request.get('url'))+"\n\n"+ \ "Price: $"+cgi.escape(self.request.get('price'))+"\n"+ \ "Qty: "+cgi.escape(self.request.get('qty'))+"\n"+ \ "Total: $"+cgi.escape(self.request.get('total'))+"\n\n"+ \ cgi.escape(self.request.get('description')) notify_purchase(details,issue) k = issue.key() deferred.defer(later_results, k, _countdown=(duration_amount * multiplier*60*60)+30) self.redirect('/redirect/%s?success=new' % issue.urlcode)
def add_issue(user_id, house_name, card_key_str, content): pigeon_key = ndb.Key(Pigeon, user_id) house_list = House.query(House.name == house_name).fetch() house_key = house_list[0].key card_key = ndb.Key(Card, card_key_str, parent=house_key) issue = Issue(pigeon_key=pigeon_key, house_key=house_key, card_key=card_key, comment=content, date_str='') issue.put() date2str = str(issue.date) str_list = date2str.split('.') issue.date_str = str_list[0] issue.put() return
def post(self): """ site = Site( name = 'name', url = 'http://url.com', slug = 'slug', ) site.put() issue = Issue( title = 'title', description = 'description', site = site, ) issue.put() """ # get url and then decide if we have a site already or # need to create one name = self.request.get("name") url = self.request.get("url") try: site = Site.gql("WHERE url=:1", url)[0] except IndexError: """ import sys import pdb for attr in ('stdin', 'stdout', 'stderr'): setattr(sys, attr, getattr(sys, '__%s__' % attr)) pdb.set_trace() """ site = Site( name = name, url = url, slug = slugify(name), ) site.put() title = self.request.get("title") description = self.request.get("description") issue = Issue( title = title, description = description, site = site, ) issue.put() context = { 'issue': issue, 'sites': Site.all(), } # prepare the context for the template # calculate the template path path = os.path.join(os.path.dirname(__file__), 'templates', 'index.html') # render the template with the provided context self.response.out.write(template.render(path, context))