def update(self, project_dto):
     logging.debug('update %s' % (project_dto))
     project = Project.get(project_dto._key)
     project.name = project_dto.name
     project.department = int(project_dto.department)
     project.put()
     return self.to_dto(Project.get(project_dto._key))
Exemple #2
0
    def get(self, projectName):
        user = users.get_current_user()

        if user:
            greeting = ('Hello %s <a href="%s">Sign out</a><br/><a href="/main">Projects</a><br/> Backlog for %s' % 
                (user.nickname(), users.create_logout_url("/"), projectName))
            project = Project.gql(("WHERE name = '%s'" % projectName)).get()
            storyView = "<table><tr><div><th>Name</th><th>Story Points</th></div></tr>"
            for story in project.storyList:
                storyView += ('<tr><div><td>%s</td><td>%s</td></div></tr>' % (story.name, story.starPoint))
            storyView += '</table>'
            form = ("""<form action="/project/%s/backlog" method="post"> 
                <table>
                <tr>
                <div><td>Stroy Name</td><td><input type="text" name="storyName"></td></div> 
                </tr>
                <tr>
                <div><td>Star Proint</td><td><input type="text" name="starPoint"></td></div> 
                </tr>
                
                </table>
                <div><input type="submit" value="Add story"></div>
                </form>""" % projectName)
            self.response.out.write("<html><body>%s<br/>%s<br/>%s</body></html>" % (greeting, storyView, form))    
        else:
            self.redirect(users.create_login_url(self.request.uri))
Exemple #3
0
 def post(self, projectName):
     storyName = self.request.get('storyName')
     starPoints = self.request.get('starPoint')
     currentProject = Project.gql(("WHERE name = '%s'" % projectName)).get()
     story = Story(name=storyName, starPoint=int(starPoints), project = currentProject)
     story.put()
     self.redirect("/project/%s/backlog"%projectName)
Exemple #4
0
def get_projects():
    url = "https://kwork.ru/projects"
    headers = {'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.0.11) \
                                                Gecko/2009060215 Firefox/3.0.11 (.NET CLR 3.5.30729)'}
    projects = []
    response = requests.get(url, headers=headers)
    log.info( "Status code: %d. Length: %d " % ( response.status_code, len( response.text ) ) )
    html = response.text
    soup = BeautifulSoup( html, "html.parser" )
    items = soup.select("div[class*=js-card]")
    for item in items[:]:
        title = item.select_one("div[class*=header-title]")
        title = title.text if title else "Error title"
        price = item.select_one("div.wants-card__right")
        price = re.findall( r"\d{3}|\d{1,2}\s\d{3}", str(price) )
        price = " - ".join(price)
        description = item.select_one("div.breakwords.hidden")
        description = description.text.replace("Скрыть","").strip() if description else "Description error"
        if description == "Description error":
            description = item.select_one("div.breakwords.first-letter ~ div")
            description = description.text if description else "Description error2"
            # import pdb;pdb.set_trace()
        proposal_count = item.find(lambda tag:tag.name == "span" and "Предложений:" in tag.text)
        proposal_count = re.findall(r"\d+", proposal_count.text)[0] if proposal_count else "Prop error"
        author = item.select_one("a.v-align-t")
        author = author.text if author else "Author error"
        link = item.select_one("div.wants-card__header-title a")
        link = link['href'] if link else "Link error"
        timer = item.find( lambda tag:tag.name == "span" and "Осталось" in tag.text)
        timer = timer.text if timer else "timer error"
        params = (title, description, author, proposal_count,
                  price, timer, link)
        project = Project( *params )
        projects.append( project )
    return projects
 def get_all(self):
     logging.debug('get_all')
     projects = Project.all().fetch(1000)
     projects_dto = []
     for project in projects:
         projects_dto.append(self.to_dto(project))
     return projects_dto
 def insert(self, participant_dto):
     logging.debug('insert %s' % (participant_dto))
     participant = ProjectParticipant()
     participant.project = Project.get(participant_dto.project_key)
     participant.name = participant_dto.name
     participant.put()
     return self.to_dto(participant)
Exemple #7
0
    def post(self):
        json_data = request.get_json(force=True)

        if not json_data or not 'project_name' in json_data or not 'start_date' in json_data or not 'end_date' in json_data or not 'priority' in json_data or not 'user_id' in json_data:
            return {"error" : "Input data missing"}, 400
        
        project = Project.query.filter_by(project_name=json_data['project_name']).first()

        if project:
            return {'message': 'Project already exists'}, 400

        user = User.query.filter_by(id=json_data['user_id']).first()

        if not user:
            return {'message': 'User doest not exist'}, 400
 
        project = Project(
            project_name = json_data['project_name'],
            start_date = HelperUtil.stringToDate(self, json_data['start_date']),
            end_date = HelperUtil.stringToDate(self, json_data['end_date']),
            priority = json_data['priority'],
            status = constant.ACTIVE,
            user_id = json_data['user_id']
        )

        db.session.add(project)
        db.session.commit()

        result = project_schema.dump(project)

        return {"message" : "Saved successfully!", "data" : result}, 201
Exemple #8
0
    def get(self, projectName):
        # self.response.headers['Content-Type'] = 'text/plain'
        # self.response.out.write('Hello, '+proj_name)

        project = Project.gql(("WHERE name = '%s'" % projectName)).get()

        template_values = {"proj_name": projectName, "stories": project.storyList}

        path = os.path.join(os.path.dirname(__file__), "taskboard", "index.html")
        self.response.out.write(template.render(path, template_values))
 def insert(self, project_dto):
     logging.debug('insert %s' % (project_dto))
     project = Project()
     project.code = int(project_dto.code)
     project.name = project_dto.name
     project.department = int(project_dto.department)
     project.put()
     return self.to_dto(project)
Exemple #10
0
def main():
    parser = argparse.ArgumentParser(description="Process some integers.")
    parser.add_argument("--file")
    parser.add_argument("--epouch")
    parser.add_argument("--batch_size")
    parser.add_argument("--num_workers")
    args = parser.parse_args()
    batch_size = int(args.batch_size)
    data = Data(args.file)
    validation_split = 0.2
    shuffle_dataset = True
    random_seed = 42
    dataset_size = len(data)
    indices = list(range(dataset_size))
    split = int(np.floor(validation_split * dataset_size))
    if shuffle_dataset:
        np.random.seed(random_seed)
        np.random.shuffle(indices)
    train_indices, val_indices = indices[split:], indices[:split]

    train_sampler = SubsetRandomSampler(train_indices)
    valid_sampler = SubsetRandomSampler(val_indices)

    train_loader = torch.utils.data.DataLoader(data,
                                               batch_size=batch_size,
                                               sampler=train_sampler,
                                               num_workers=24)
    validation_loader = torch.utils.data.DataLoader(
        data,
        batch_size=len(valid_sampler),
        sampler=valid_sampler,
        num_workers=24)

    net = Project()
    criterion = nn.CrossEntropyLoss()
    optimizer = optim.SGD(net.parameters(), lr=0.001, momentum=0.9)
    train(net, criterion, int(args.epouch), optimizer, train_loader,
          validation_loader)
Exemple #11
0
def infer(args):
    data = Data(str(args.test))
    model = Project(*args, **kwargs)
    model.load_state_dict(torch.load(PATH))
    model.eval()
    data_loader = torch.utils.data.DataLoader(
        data, batch_size=len(data), num_workers=24
    )
    for i in range(data_loader):
        results = model(data_loader)
    file = open(args.testcsv, "w")
    file.write("\n".join(results.tolist()))
    file.close()
    print("Done....")
Exemple #12
0
    def get(self):
        user = users.get_current_user()

        if user:
            greeting = ('Hello %s <a href="%s">Sign out</a><br/>Project list' % 
                (user.nickname(), users.create_logout_url("/")))
            projectList = Project.all()
            projectView = "<table>"
            for project in projectList:
                projectView += ('<tr><div><td><a href="/project/%s/taskboard">%s</a> <a href="/main/deleteProject/%s">X</a></td></div></tr>' % (project.name, project.name, project.name))
            projectView += '</table>'
            form = """<form action="/main" method="post"> 
                <table>
                <tr>
                <div><td>Project Name</td><td><input type="text" name="projectName"></td></div> 
                </tr>
                </table>
                <div><input type="submit" value="Add project"></div>
                </form>"""
            self.response.out.write("<html><body>%s<br/>%s<br/>%s</body></html>" % (greeting, projectView, form))    
        else:
            self.redirect(users.create_login_url(self.request.uri))
Exemple #13
0
 def get(self, projectName):
     Project.gql(("WHERE name = '%s'" % projectName)).get().delete()
     self.redirect("/main")
 def delete(self, project_dto):
     logging.debug('delete %s' % (project_dto))
     project = Project.get(project_dto._key)
     project.delete()
 def get(self, key):
     logging.debug('get %s' % (key))
     return self.to_dto(Project.get(key))
 def get_by_code(self, code):
     logging.debug('get_by_code %s' % (code))
     return self.to_dto(Project.gql("WHERE code = :1", code).get())
Exemple #17
0
 def post(self):
     projectName = self.request.get('projectName')
     project = Project(name=projectName)
     project.put()
     self.redirect("/project/%s/backlog"%projectName)