예제 #1
0
class IssueDomain():
	def __init__(self, id=None):
		if id is not None:
			self.data = Issue().find_by_id(id)
			self.client = ClientDomain(self.data.client_id)
			self.film = FilmDomain(self.data.film_id)
			self.new = False
		else:	self.new = True
	
	def find(self, form):
		self.data = Issue().find(form.client.data, form.film.data)
		if self.data == None:
			return False
		else: return True
	
	def give_film(self, form):
		client_id = form.client.data
		film_id = form.film.data
		weeks = form.weeks.data
		sum = form.sum.data
		date = datetime.utcnow()
		film = FilmDomain(film_id)
		if film.data.fact_count > 0:
			Issue().insert(client_id, film_id, date, weeks, sum)
			film.data.decrease()
			return True
		flash('Нет кассет в наличии!')
		return False
		
	def take_film(self, form):      
		self.film.data.increase()
		self.data.delete()
		return True
예제 #2
0
	def __init__(self, id=None):
		if id is not None:
			self.data = Issue().find_by_id(id)
			self.client = ClientDomain(self.data.client_id)
			self.film = FilmDomain(self.data.film_id)
			self.new = False
		else:	self.new = True
예제 #3
0
def handle_big_pro():
    summary = request.form.get('summary')
    creator = request.form.get('pm')
    pro_status = request.form.get('pro_status')
    if len(pro_status) > 0:
        pro_status_id = int(pro_status)
    ui_schedule = request.form.get("ui_schedule")
    back_schedule = request.form.get('back_schedule')
    front_schedule = request.form.get('front_schedule')
    test_schedule = request.form.get('test_schedule')
    ui_staff = request.form.get("ui_staff")
    back_staff = request.form.get('back_staff')
    front_staff = request.form.get('front_staff')
    test_staff = request.form.get('test_staff')
    is_pro = 1
    big_pro = Issue(summary=summary,
                    creator=creator,
                    pro_status_id=pro_status_id,
                    ui_schedule=ui_schedule,
                    back_schedule=back_schedule,
                    front_schedule=front_schedule,
                    test_schedule=test_schedule,
                    ui_staff=ui_staff,
                    back_staff=back_staff,
                    front_staff=front_staff,
                    test_staff=test_staff,
                    is_pro=is_pro)
    db.session.add(big_pro)
    db.session.commit()
    msg = '%s 已更新' % summary
    flash('大项目:%s 创建成功' % summary)
    return redirect(url_for('big_pro'))
예제 #4
0
def jira_get_all():
    jql = 'project = DSG AND issuetype in (Bug, 财务需求,需求) AND creator in (membersOf(产品组))'
    issues = jira.search_issues(jql, fields=need_fields, maxResults=1000)
    all_issues_num = 0
    for issue in issues:
        if issue.fields.resolutiondate:
            issue_resolutiondate = strftime(
                "%Y-%m-%d",
                strptime(issue.fields.resolutiondate[0:10], '%Y-%m-%d'))
        else:
            issue_resolutiondate = None
        new_issue = Issue(
            key=issue.key,
            jira_id=int(issue.id),
            status=issue.fields.status.name,
            created_time=strftime(
                "%Y-%m-%d", strptime(issue.fields.created[0:10], '%Y-%m-%d')),
            resolutiondate=issue_resolutiondate,
            updated=strftime("%Y-%m-%d",
                             strptime(issue.fields.updated[0:10], '%Y-%m-%d')),
            summary=issue.fields.summary,
            creator=issue.fields.creator.displayName,
            url=str(server + '/browse/' + issue.key))
        db.session.add(new_issue)
        db.session.commit()
        all_issues_num += 1
    return '获取全部记录,共查询了 %s 条' % all_issues_num
def add_new_issue():
    """
    Creates a new issue from the Form and store it in the database table issues
    :return:
    """
    form = NewIssueForm(request.form)
    if request.method == 'POST':
        title = form.title.data
        department = form.department.data
        priority = form.priority.data
        description = form.description.data
        user_id = session['user_id']

        issue = Issue(title=title,
                      department=department,
                      priority=priority,
                      description=description,
                      user=user_id,
                      status=0)

        try:

            db.session.add(issue)
            db.session.commit()
            flash("Issue Submitted Successfully", category='info')
        except Exception:
            flash("Issues Submission Failed", category='info')
            db.session.rollback()

        return redirect("/issues")

    return render_template('issues/create_new.html', form=form)
예제 #6
0
파일: issue.py 프로젝트: publicscience/hive
    def post(self, slug):
        ctx = self.get_context(slug=slug)
        form = ctx['form']

        if form.validate():
            project = ctx['project']

            issue = Issue()
            issue.project = project
            _process_issue(issue, form, request)

            project.issues.append(issue)
            project.save()
            flash('We have finished assembling your issue.')
            return redirect(url_for('issue_api', slug=slug, id=issue.id, _method='GET'))

        flash('You have forgotten something. Without your guidance, we are lost.')
        return render_template('issue/new.html', form=form)
예제 #7
0
 def post(self):
     form = IssueCreateForm()
     if not form.validate_on_submit():
         return form.errors, 422
     issue = Issue(form.title.data, form.description.data,
                   form.project_id.data, form.column_id.data,
                   form.tag_id.data, form.milestone_id.data,
                   form.effort_id.data, form.assigned_to_id.data)
     db.session.add(issue)
     db.session.commit()
     return IssueSerializer(issue).data, 201
예제 #8
0
def jira_get_new():
    last_time = LastTime.query.first()
    if not last_time:
        last_time = LastTime(last_request_time=date.today())
        db.session.add(last_time)
        db.session.commit()
    msg1 = '上次请求时间:%s 。' % last_time.last_request_time
    jql = 'project = DSG AND issuetype in (Bug, 财务需求, 需求) AND updated >= %s AND creator in (membersOf(产品组))' % last_time.last_request_time
    issues = jira.search_issues(jql, fields=need_fields, maxResults=1000)
    existing_issues_num = 0
    new_issues_num = 0
    for issue in issues:
        existing_issue = Issue.query.filter_by(key=issue.key).first()
        if issue.fields.resolutiondate:
            issue_resolutiondate = strftime(
                "%Y-%m-%d",
                strptime(issue.fields.resolutiondate[0:10], '%Y-%m-%d'))
        else:
            issue_resolutiondate = None
        if existing_issue:
            existing_issue.status = issue.fields.status.name
            if existing_issue.status == '关闭':
                existing_issue.pro_status = ProStatus.query.filter_by(
                    name='已上线').first()
            existing_issue.summary = issue.fields.summary
            existing_issue.resolutiondate = issue_resolutiondate
            existing_issue.updated = strftime(
                "%Y-%m-%d", strptime(issue.fields.updated[0:10], '%Y-%m-%d'))
            db.session.commit()
            existing_issues_num += 1
        else:
            new_issue = Issue(key=issue.key,
                              jira_id=int(issue.id),
                              status=issue.fields.status.name,
                              created_time=strftime(
                                  "%Y-%m-%d",
                                  strptime(issue.fields.created[0:10],
                                           '%Y-%m-%d')),
                              resolutiondate=issue_resolutiondate,
                              updated=strftime(
                                  "%Y-%m-%d",
                                  strptime(issue.fields.updated[0:10],
                                           '%Y-%m-%d')),
                              summary=issue.fields.summary,
                              creator=issue.fields.creator.displayName,
                              url=str(server + '/browse/' + issue.key))
            db.session.add(new_issue)
            db.session.commit()
            new_issues_num += 1
    last_time.last_request_time = date.today()
    db.session.commit()
    return msg1 + '共查询了 %s 条记录,更新了 %s 条已存在记录,新增 %s 条记录' % (
        existing_issues_num + new_issues_num, existing_issues_num,
        new_issues_num)
예제 #9
0
def create_issue():
    """Create a GitHub issue representation."""
    db.session.add(
        Issue(
            name='Test adding a new issue',
            url='https://github.com/a-organization/a-repo/issues/56',
            github_issue_id=default_issue_id,
            repo_id=default_repo_id,
            trello_board_id=default_board_id,
            trello_card_id=default_card_id
        )
    )
예제 #10
0
	def give_film(self, form):
		client_id = form.client.data
		film_id = form.film.data
		weeks = form.weeks.data
		sum = form.sum.data
		date = datetime.utcnow()
		film = FilmDomain(film_id)
		if film.data.fact_count > 0:
			Issue().insert(client_id, film_id, date, weeks, sum)
			film.data.decrease()
			return True
		flash('Нет кассет в наличии!')
		return False
예제 #11
0
def contact():
    global KAFENUT_NOTES
    if request.method=='GET':
        page=int(request.args.get('page',default=1))
        issues=Issue.query.order_by(Issue.upload_time.desc()).paginate(page,ISSUE_PER_PAGE,False)
        return render_template("contact.html",kafenut_notes=KAFENUT_NOTES,issues=issues)
    #receiving a post
    else:
        Get=request.form.get
        if Get('anonymous')=='on':
            id=-1;
        else:
            id=g.user.id
        issue=Issue(upload_time=datetime.utcnow(),title=Get('issue_title'),body=Get('issue_body'),author_id=id)
        db.session.add(issue)
        db.session.commit()
        flash('您的建议已成功上传!')
    return redirect(url_for('contact')) 
예제 #12
0
파일: issue.py 프로젝트: publicscience/hive
    def get(self, slug, id):
        ctx = self.get_context(slug=slug, id=id)
        project = ctx['project']

        # List view
        if id is None:
            issues = Issue.objects(project=project)
            return render_template('issue/list.html', issues=issues, project=project)
        # Detail view
        else:
            comment_form = model_form(Comment, exclude=['created_at', 'updated_at', 'author', 'mentions', 'attachments'])
            form = comment_form(request.form)

            issue = ctx['issue']
            issue.sync()
            all_events = issue.all_events()

            return render_template('issue/detail.html', issue=issue, events=all_events, form=form, current_user=current_user(), project=project)
예제 #13
0
    def get(self, slug):
        # List view
        if slug is None:
            projects = Project.objects.all()
            return render_template('project/list.html', projects=projects, current_user=current_user())
        # Detail view
        else:
            ctx = self.get_context(slug=slug)
            project = ctx['project']
            try:
                project.sync()
            except KeyError as e:
                if current_user().linked():
                    return redirect(url_for('github_login'))
                else:
                    return redirect(url_for('github_info'))
            issues = Issue.objects(project=project, open=True)

            return render_template('issue/list.html', issues=issues, project=project)
예제 #14
0
def add_issue():
    if not request.json or \
            "id" not in request.json or \
            "team" not in request.json or \
            "key" not in request.json or \
            "summary" not in request.json or \
            "url" not in request.json:
        abort(400, "invalid request")
    if Issue.query.get(request.json["id"]):
        abort(409, "issue already exists")

    db.session.add(
        Issue(id=request.json["id"],
              team=request.json["team"],
              key=request.json["key"],
              summary=request.json["summary"],
              url=request.json["url"]))
    db.session.commit()

    return "created", 201
예제 #15
0
파일: issue.py 프로젝트: publicscience/hive
def label_issues(slug, label):
    project = Project.objects.get_or_404(slug=slug)
    issues = Issue.objects(labels=label, project=project)
    return render_template('issue/list.html', issues=issues, project=project)
예제 #16
0
	def find_films(self):    	
		self.films = []
		films_id = Issue().find_film_by_client(self.data.id)
		for film_id in films_id:
			self.films.append(FilmDomain().find(film_id))
예제 #17
0
    def setUp(self):
        self.__crawler = Controller.get_journal(5165411)
        journal = Controller.get_journal_object(5165411)

        for issue in Issue.objects.filter(journal_reference=journal):
            issue.delete()

        issue = Issue()
        issue.journal_reference = journal
        issue.number = 2
        issue.year = 2016
        issue.status = Issue.CURRENT_ISSUE
        issue.entry_number = 'current_5165411'
        issue.save()

        issue = Issue()
        issue.entry_number = '7361791'
        issue.journal_reference = journal
        issue.number = 1
        issue.year = 2016
        issue.status = Issue.PAST_ISSUE
        issue.save()

        issue = Issue()
        issue.entry_number = '7042857'
        issue.journal_reference = journal
        issue.number = 2
        issue.year = 2015
        issue.status = Issue.PAST_ISSUE
        issue.save()

        issue = Issue()
        issue.entry_number = '6991622'
        issue.journal_reference = journal
        issue.number = 1
        issue.year = 2015
        issue.status = Issue.PAST_ISSUE
        issue.save()
예제 #18
0
    next_page = data['metadata']['pagination'].get('next_page')
    if next_page == None: break

    for item in data['issues']:

      if not item['reporter']['id']: continue

      issue = Issue(
        id=item.get('id'), 
        status=item.get('status'),
        description=item.get('description'),
        url=item.get('url'),
        summary=item.get('summary'),
        html_url=item.get('html_url'),
        comment_url=item.get('comment_url'),
        shortened_url=item.get('shortened_url'),
        address=item.get('address'),
        lat=item.get('lat'),
        lng=item.get('lng'),
        closed_at=item.get('closed_at'),
        acknowledged_at=item.get('acknowledged_at'),
        created_at=item.get('created_at'),
        updated_at=item.get('updated_at')
      )

      reporter = Reporter(
        id=item['reporter'].get('id'),
        witty_title=item['reporter'].get('witty_title'),
        civic_points=item['reporter'].get('civic_points'),
        name=item['reporter'].get('name')
      )
예제 #19
0
파일: issue.py 프로젝트: publicscience/hive
def open_issues(slug):
    project = Project.objects.get_or_404(slug=slug)
    issues = Issue.objects(open=True, project=project)
    return render_template('issue/list.html', issues=issues, project=project)
예제 #20
0
        data = response.json()
        next_page = data['metadata']['pagination'].get('next_page')
        if next_page == None: break

        for item in data['issues']:

            if not item['reporter']['id']: continue

            issue = Issue(id=item.get('id'),
                          status=item.get('status'),
                          description=item.get('description'),
                          url=item.get('url'),
                          summary=item.get('summary'),
                          html_url=item.get('html_url'),
                          comment_url=item.get('comment_url'),
                          shortened_url=item.get('shortened_url'),
                          address=item.get('address'),
                          lat=item.get('lat'),
                          lng=item.get('lng'),
                          closed_at=item.get('closed_at'),
                          acknowledged_at=item.get('acknowledged_at'),
                          created_at=item.get('created_at'),
                          updated_at=item.get('updated_at'))

            reporter = Reporter(
                id=item['reporter'].get('id'),
                witty_title=item['reporter'].get('witty_title'),
                civic_points=item['reporter'].get('civic_points'),
                name=item['reporter'].get('name'))

            issue.reporter_id = reporter.id
예제 #21
0
	def find(self, form):
		self.data = Issue().find(form.client.data, form.film.data)
		if self.data == None:
			return False
		else: return True