示例#1
0
    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)
示例#2
0
	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()))
示例#3
0
    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()))
示例#4
0
文件: main.py 项目: rmorell/hd-vote
	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)
示例#5
0
  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)
示例#6
0
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
示例#7
0
文件: main.py 项目: 4sp1r3/fixmysite
    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))