Пример #1
0
    def test_project_calls(self):
        p = Project.Create(self.u)
        p.Update(urls=['http://www.x.com', 'http://www.y.com'],
                 title="New Project",
                 subhead="Details")
        p.put()

        # List
        response = self.get_json("/api/project", {}, headers=self.api_headers)
        prj = response.get('projects')[0]
        self.assertEqual(prj.get('title'), "New Project")

        # Update
        response = self.post_json("/api/project", {
            'id': prj.get('id'),
            'title': 'New Name',
            'due': '2018-01-01'
        },
                                  headers=self.api_headers)
        prj = response.get('project')
        self.assertEqual(prj.get('title'), 'New Name')
        self.assertEqual(prj.get('due'), '2018-01-01')

        # Delete
        response = self.post_json("/api/project/delete", {'id': prj.get('id')},
                                  headers=self.api_headers)
        prj = self.u.get(Project, id=prj.get('id'))
        self.assertIsNone(prj)  # Confirm deletion
Пример #2
0
    def test_project_report(self):
        prj = Project.Create(self.u)
        prj.Update(title="New Project",
                   subhead="Project subhead",
                   due=datetime(2017, 4, 5))
        prj.set_progress(3)
        prj.put()

        self._test_report(
            {'type': REPORT.PROJECT_REPORT},
            [[
                "Date Created", "Date Due", "Date Completed", "Date Archived",
                "Title", "Subhead", "Links", "Starred", "Archived", "Progress",
                'Progress 10%', 'Progress 20%', 'Progress 30%', 'Progress 40%',
                'Progress 50%', 'Progress 60%', 'Progress 70%', 'Progress 80%',
                'Progress 90%', 'Progress 100%'
            ],
             [
                 tools.sdatetime(prj.dt_created, fmt="%Y-%m-%d %H:%M:%S %Z"),
                 tools.sdatetime(prj.dt_due, fmt="%Y-%m-%d %H:%M:%S %Z"),
                 tools.sdatetime(prj.dt_completed, fmt="%Y-%m-%d %H:%M:%S %Z"),
                 tools.sdatetime(prj.dt_archived,
                                 fmt="%Y-%m-%d %H:%M:%S %Z"), "New Project",
                 "Project subhead", "", "0", "0", "30%", "N/A", "N/A",
                 tools.sdatetime(tools.dt_from_ts(prj.progress_ts[2]),
                                 fmt="%Y-%m-%d %H:%M:%S %Z"), "N/A", "N/A",
                 "N/A", "N/A", "N/A", "N/A", "N/A"
             ]])
Пример #3
0
    def get(self, d):
        # Run after admin user logs in
        u = User.query().get()
        if u:
            today = datetime.today()
            g = Goal.CreateMonthly(u, date=today)
            g.Update(text=["Get it done"])
            g2 = Goal.Create(u, str(today.year))
            g2.Update(text=["Make progress"])
            ndb.put_multi([g, g2])
            h = Habit.Create(u)
            h.Update(name="Run")
            h.put()
            p = Project.Create(u)
            p.Update(title="Blog post", subhead="How Flow works")
            p.put()

            Task.Create(u, "Get this done").put()

            t = Task.Create(u, "Think hard", due=datetime.today())
            t2 = Task.Create(u, "Think even harder", due=datetime.today())
            message = "OK"
        else:
            message = "No user"
        self.json_out({'message': message})
Пример #4
0
 def update(self, d):
     '''
     Create or update
     '''
     id = self.request.get_range('id')
     params = tools.gets(self,
                         strings=['title', 'subhead', 'url1', 'url2'],
                         booleans=['starred', 'archived'],
                         integers=['progress'],
                         dates=['due'],
                         supportTextBooleans=True)
     if id:
         prj = self.user.get(Project, id=id)
     else:
         prj = Project.Create(self.user)
     if prj:
         was_complete = prj.is_completed()
         update_urls = False
         urls = []
         if 'url1' in params:
             urls.append(params.get('url1'))
             update_urls = True
         if 'url2' in params:
             urls.append(params.get('url2'))
             update_urls = True
         if update_urls:
             params['urls'] = urls
         prj.Update(**params)
         prj.put()
         completed = prj.is_completed() and not was_complete
         if completed:
             self.message = "Project completed!"
         self.success = True
     self.set_response({'project': prj.json() if prj else None})
    def setUp(self):
        self.set_application(tst_app)
        self.setup_testbed()
        self.init_datastore_stub()
        self.init_memcache_stub()
        self.init_taskqueue_stub()
        self.init_mail_stub()
        self.register_search_api_stub()

        u = User.Create(email="*****@*****.**")
        u.put()

        self.project = Project.Create(u)
        self.project.Update(title="Build App",
                            subhead="Subhead",
                            urls=["http://www.example.com"])
        self.project.put()