Quellcode durchsuchen

Add docstrings and generate documentation

https
jakobsn vor 6 Jahren
Ursprung
Commit
75e1499225
17 geänderte Dateien mit 926 neuen und 22 gelöschten Zeilen
  1. BIN
      src/app/docs/build/doctrees/environment.pickle
  2. BIN
      src/app/docs/build/doctrees/index.doctree
  3. +35
    -0
      src/app/docs/build/html/_sources/index.rst.txt
  4. +139
    -1
      src/app/docs/build/html/genindex.html
  5. +540
    -1
      src/app/docs/build/html/index.html
  6. BIN
      src/app/docs/build/html/objects.inv
  7. +32
    -2
      src/app/docs/build/html/py-modindex.html
  8. +1
    -1
      src/app/docs/build/html/searchindex.js
  9. +35
    -0
      src/app/docs/source/index.rst
  10. +13
    -0
      src/app/models/login.py
  11. +66
    -0
      src/app/models/project.py
  12. +23
    -0
      src/app/models/register.py
  13. +16
    -13
      src/app/views/new_project.py
  14. +5
    -1
      src/app/views/open_projects.py
  15. +6
    -1
      src/app/views/project.py
  16. +10
    -2
      src/app/views/register.py
  17. +5
    -0
      src/app/views/utils.py

BIN
src/app/docs/build/doctrees/environment.pickle Datei anzeigen


BIN
src/app/docs/build/doctrees/index.doctree Datei anzeigen


+ 35
- 0
src/app/docs/build/html/_sources/index.rst.txt Datei anzeigen

@@ -13,9 +13,44 @@ Welcome to beelance2's documentation!
.. autoclass:: views.index.Index
:members:

.. autoclass:: views.login.Login
:members:


.. autoclass:: views.logout.Logout
:members:


.. autoclass:: views.new_project.New_project
:members:


.. autoclass:: views.open_projects.Open_projects
:members:


.. autoclass:: views.project.Project
:members:


.. autoclass:: views.register.Register
:members:

.. automodule:: views.forms
:members:

.. automodule:: views.utils
:members:

.. automodule:: models.login
:members:

.. automodule:: models.project
:members:

.. automodule:: models.register
:members:

Indices and tables
==================



+ 139
- 1
src/app/docs/build/html/genindex.html Datei anzeigen

@@ -35,19 +35,69 @@
<h1 id="index">Index</h1>

<div class="genindex-jumpbox">
<a href="#G"><strong>G</strong></a>
<a href="#C"><strong>C</strong></a>
| <a href="#G"><strong>G</strong></a>
| <a href="#I"><strong>I</strong></a>
| <a href="#L"><strong>L</strong></a>
| <a href="#M"><strong>M</strong></a>
| <a href="#N"><strong>N</strong></a>
| <a href="#O"><strong>O</strong></a>
| <a href="#P"><strong>P</strong></a>
| <a href="#R"><strong>R</strong></a>
| <a href="#S"><strong>S</strong></a>
| <a href="#V"><strong>V</strong></a>
</div>
<h2 id="C">C</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="index.html#views.new_project.New_project.compose_form">compose_form() (views.new_project.New_project method)</a>
</li>
</ul></td>
</tr></table>

<h2 id="G">G</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="index.html#views.index.Index.GET">GET() (views.index.Index method)</a>

<ul>
<li><a href="index.html#views.login.Login.GET">(views.login.Login method)</a>
</li>
<li><a href="index.html#views.logout.Logout.GET">(views.logout.Logout method)</a>
</li>
<li><a href="index.html#views.new_project.New_project.GET">(views.new_project.New_project method)</a>
</li>
<li><a href="index.html#views.open_projects.Open_projects.GET">(views.open_projects.Open_projects method)</a>
</li>
<li><a href="index.html#views.project.Project.GET">(views.project.Project method)</a>
</li>
<li><a href="index.html#views.register.Register.GET">(views.register.Register method)</a>
</li>
</ul></li>
<li><a href="index.html#models.project.get_categories">get_categories() (in module models.project)</a>
</li>
<li><a href="index.html#views.utils.get_nav_bar">get_nav_bar() (in module views.utils)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="index.html#views.forms.get_new_project_form">get_new_project_form() (in module views.forms)</a>
</li>
<li><a href="index.html#models.project.get_project_by_id">get_project_by_id() (in module models.project)</a>
</li>
<li><a href="index.html#views.forms.get_project_form_elements">get_project_form_elements() (in module views.forms)</a>
</li>
<li><a href="index.html#models.project.get_projects_by_participant_and_status">get_projects_by_participant_and_status() (in module models.project)</a>
</li>
<li><a href="index.html#models.project.get_projects_by_status_and_category">get_projects_by_status_and_category() (in module models.project)</a>
</li>
<li><a href="index.html#models.project.get_projects_by_status_and_owner">get_projects_by_status_and_owner() (in module models.project)</a>
</li>
<li><a href="index.html#views.new_project.New_project.get_task_count">get_task_count() (views.new_project.New_project method)</a>
</li>
<li><a href="index.html#views.forms.get_task_form_elements">get_task_form_elements() (in module views.forms)</a>
</li>
<li><a href="index.html#models.login.get_users">get_users() (in module models.login)</a>
</li>
</ul></td>
</tr></table>
@@ -60,10 +110,98 @@
</ul></td>
</tr></table>

<h2 id="L">L</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="index.html#views.login.Login">Login (class in views.login)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="index.html#views.logout.Logout">Logout (class in views.logout)</a>
</li>
</ul></td>
</tr></table>

<h2 id="M">M</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="index.html#models.login.match_user">match_user() (in module models.login)</a>
</li>
<li><a href="index.html#module-models.login">models.login (module)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="index.html#module-models.project">models.project (module)</a>
</li>
<li><a href="index.html#module-models.register">models.register (module)</a>
</li>
</ul></td>
</tr></table>

<h2 id="N">N</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="index.html#views.new_project.New_project">New_project (class in views.new_project)</a>
</li>
</ul></td>
</tr></table>

<h2 id="O">O</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="index.html#views.open_projects.Open_projects">Open_projects (class in views.open_projects)</a>
</li>
</ul></td>
</tr></table>

<h2 id="P">P</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="index.html#views.login.Login.POST">POST() (views.login.Login method)</a>

<ul>
<li><a href="index.html#views.new_project.New_project.POST">(views.new_project.New_project method)</a>
</li>
<li><a href="index.html#views.register.Register.POST">(views.register.Register method)</a>
</li>
</ul></li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="index.html#views.project.Project">Project (class in views.project)</a>
</li>
</ul></td>
</tr></table>

<h2 id="R">R</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="index.html#views.register.Register">Register (class in views.register)</a>
</li>
</ul></td>
</tr></table>

<h2 id="S">S</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="index.html#models.project.set_project">set_project() (in module models.project)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="index.html#models.project.set_task">set_task() (in module models.project)</a>
</li>
<li><a href="index.html#models.register.set_user">set_user() (in module models.register)</a>
</li>
</ul></td>
</tr></table>

<h2 id="V">V</h2>
<table style="width: 100%" class="indextable genindextable"><tr>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="index.html#module-views.forms">views.forms (module)</a>
</li>
</ul></td>
<td style="width: 33%; vertical-align: top;"><ul>
<li><a href="index.html#module-views.utils">views.utils (module)</a>
</li>
</ul></td>
</tr></table>


+ 540
- 1
src/app/docs/build/html/index.html Datei anzeigen

@@ -53,11 +53,245 @@ determine which projects to show.</p>

</dd></dl>

<dl class="class">
<dt id="views.login.Login">
<em class="property">class </em><code class="sig-prename descclassname">views.login.</code><code class="sig-name descname">Login</code><a class="headerlink" href="#views.login.Login" title="Permalink to this definition">¶</a></dt>
<dd><dl class="method">
<dt id="views.login.Login.GET">
<code class="sig-name descname">GET</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#views.login.Login.GET" title="Permalink to this definition">¶</a></dt>
<dd><p>Show the login page</p>
<blockquote>
<div><dl class="field-list simple">
<dt class="field-odd">return</dt>
<dd class="field-odd"><p>The login page showing other users if logged in</p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="method">
<dt id="views.login.Login.POST">
<code class="sig-name descname">POST</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#views.login.Login.POST" title="Permalink to this definition">¶</a></dt>
<dd><dl class="simple">
<dt>Log in to the web application and register the session</dt><dd><dl class="field-list simple">
<dt class="field-odd">return</dt>
<dd class="field-odd"><p>The login page showing other users if logged in</p>
</dd>
</dl>
</dd>
</dl>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="views.logout.Logout">
<em class="property">class </em><code class="sig-prename descclassname">views.logout.</code><code class="sig-name descname">Logout</code><a class="headerlink" href="#views.logout.Logout" title="Permalink to this definition">¶</a></dt>
<dd><dl class="method">
<dt id="views.logout.Logout.GET">
<code class="sig-name descname">GET</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#views.logout.Logout.GET" title="Permalink to this definition">¶</a></dt>
<dd><dl class="simple">
<dt>Log out of the application (kill session and reset variables)</dt><dd><dl class="field-list simple">
<dt class="field-odd">return</dt>
<dd class="field-odd"><p>Redirect to main page</p>
</dd>
</dl>
</dd>
</dl>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="views.new_project.New_project">
<em class="property">class </em><code class="sig-prename descclassname">views.new_project.</code><code class="sig-name descname">New_project</code><a class="headerlink" href="#views.new_project.New_project" title="Permalink to this definition">¶</a></dt>
<dd><dl class="method">
<dt id="views.new_project.New_project.GET">
<code class="sig-name descname">GET</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#views.new_project.New_project.GET" title="Permalink to this definition">¶</a></dt>
<dd><p>Get the project registration form</p>
<blockquote>
<div><dl class="field-list simple">
<dt class="field-odd">return</dt>
<dd class="field-odd"><p>New project page</p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="method">
<dt id="views.new_project.New_project.POST">
<code class="sig-name descname">POST</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#views.new_project.New_project.POST" title="Permalink to this definition">¶</a></dt>
<dd><p>Create a new project</p>
<blockquote>
<div><dl class="field-list simple">
<dt class="field-odd">return</dt>
<dd class="field-odd"><p>Redirect to main page</p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="method">
<dt id="views.new_project.New_project.compose_form">
<code class="sig-name descname">compose_form</code><span class="sig-paren">(</span><em class="sig-param">data</em>, <em class="sig-param">add</em><span class="sig-paren">)</span><a class="headerlink" href="#views.new_project.New_project.compose_form" title="Permalink to this definition">¶</a></dt>
<dd><p>Compose a new project form by adding or removing a task</p>
<blockquote>
<div><dl class="field-list simple">
<dt class="field-odd">param data</dt>
<dd class="field-odd"><p>The data object from web.input</p>
</dd>
<dt class="field-even">param add</dt>
<dd class="field-even"><p>True or False</p>
</dd>
<dt class="field-odd">type add</dt>
<dd class="field-odd"><p>boolean</p>
</dd>
<dt class="field-even">return</dt>
<dd class="field-even"><p>A complete project form object</p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="method">
<dt id="views.new_project.New_project.get_task_count">
<code class="sig-name descname">get_task_count</code><span class="sig-paren">(</span><em class="sig-param">data</em><span class="sig-paren">)</span><a class="headerlink" href="#views.new_project.New_project.get_task_count" title="Permalink to this definition">¶</a></dt>
<dd><p>Determine the number of tasks created by removing
the four other elements from count and divide by the
number of variables in one task.</p>
<blockquote>
<div><dl class="field-list simple">
<dt class="field-odd">param data</dt>
<dd class="field-odd"><p>The data object from web.input</p>
</dd>
<dt class="field-even">return</dt>
<dd class="field-even"><p>The number of tasks opened by the client</p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="views.open_projects.Open_projects">
<em class="property">class </em><code class="sig-prename descclassname">views.open_projects.</code><code class="sig-name descname">Open_projects</code><a class="headerlink" href="#views.open_projects.Open_projects" title="Permalink to this definition">¶</a></dt>
<dd><dl class="method">
<dt id="views.open_projects.Open_projects.GET">
<code class="sig-name descname">GET</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#views.open_projects.Open_projects.GET" title="Permalink to this definition">¶</a></dt>
<dd><p>Get all open projects</p>
<blockquote>
<div><dl class="field-list simple">
<dt class="field-odd">return</dt>
<dd class="field-odd"><p>A page containing all open projects</p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="views.project.Project">
<em class="property">class </em><code class="sig-prename descclassname">views.project.</code><code class="sig-name descname">Project</code><a class="headerlink" href="#views.project.Project" title="Permalink to this definition">¶</a></dt>
<dd><dl class="method">
<dt id="views.project.Project.GET">
<code class="sig-name descname">GET</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#views.project.Project.GET" title="Permalink to this definition">¶</a></dt>
<dd><p>Show info about a single project</p>
<blockquote>
<div><dl class="field-list simple">
<dt class="field-odd">return</dt>
<dd class="field-odd"><p>Project info page</p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

</dd></dl>

<dl class="class">
<dt id="views.register.Register">
<em class="property">class </em><code class="sig-prename descclassname">views.register.</code><code class="sig-name descname">Register</code><a class="headerlink" href="#views.register.Register" title="Permalink to this definition">¶</a></dt>
<dd><dl class="method">
<dt id="views.register.Register.GET">
<code class="sig-name descname">GET</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#views.register.Register.GET" title="Permalink to this definition">¶</a></dt>
<dd><p>Get the registration form</p>
<blockquote>
<div><dl class="field-list simple">
<dt class="field-odd">return</dt>
<dd class="field-odd"><p>A page with the registration form</p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="method">
<dt id="views.register.Register.POST">
<code class="sig-name descname">POST</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#views.register.Register.POST" title="Permalink to this definition">¶</a></dt>
<dd><p>Register new user in database</p>
<blockquote>
<div><dl class="field-list simple">
<dt class="field-odd">return</dt>
<dd class="field-odd"><p>Main page</p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

</dd></dl>

<span class="target" id="module-views.forms"></span><dl class="function">
<dt id="views.forms.get_new_project_form">
<code class="sig-prename descclassname">views.forms.</code><code class="sig-name descname">get_new_project_form</code><span class="sig-paren">(</span><em class="sig-param">elements</em><span class="sig-paren">)</span><a class="headerlink" href="#views.forms.get_new_project_form" title="Permalink to this definition">¶</a></dt>
<dd><p>Combine a project form element and task elements to make a complete project form</p>
<blockquote>
<div><dl class="field-list simple">
<dt class="field-odd">param elemets</dt>
<dd class="field-odd"><p>All the project and task form elements</p>
</dd>
<dt class="field-even">return</dt>
<dd class="field-even"><p>The ready to use project form</p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="function">
<dt id="views.forms.get_project_form_elements">
<code class="sig-prename descclassname">views.forms.</code><code class="sig-name descname">get_project_form_elements</code><span class="sig-paren">(</span><em class="sig-param">project_title=''</em>, <em class="sig-param">project_description=''</em>, <em class="sig-param">category_name=''</em><span class="sig-paren">)</span><a class="headerlink" href="#views.forms.get_project_form_elements" title="Permalink to this definition">¶</a></dt>
<dd><dl class="simple">
<dt>Generate a set of project form elements</dt><dd><dl class="field-list simple">
<dt class="field-odd">param project_title</dt>
<dd class="field-odd"><p>Project title</p>
</dd>
<dt class="field-even">param project_description</dt>
<dd class="field-even"><p>Project description</p>
</dd>
<dt class="field-odd">param category_name</dt>
<dd class="field-odd"><p>Name of the belonging category</p>
</dd>
<dt class="field-even">type project_title</dt>
<dd class="field-even"><p>str</p>
</dd>
<dt class="field-odd">type project_description</dt>
<dd class="field-odd"><p>str</p>
</dd>
<dt class="field-even">type category_name</dt>
<dd class="field-even"><p>str</p>
</dd>
<dt class="field-odd">return</dt>
<dd class="field-odd"><p>A set of project form elements</p>
</dd>
</dl>
</dd>
</dl>
</dd></dl>

<dl class="function">
<dt id="views.forms.get_task_form_elements">
<code class="sig-prename descclassname">views.forms.</code><code class="sig-name descname">get_task_form_elements</code><span class="sig-paren">(</span><em class="sig-param">identifier=0</em>, <em class="sig-param">task_title=''</em>, <em class="sig-param">task_description=''</em>, <em class="sig-param">budget=''</em><span class="sig-paren">)</span><a class="headerlink" href="#views.forms.get_task_form_elements" title="Permalink to this definition">¶</a></dt>
<dd><dl class="simple">
<dt>Define the task form elements</dt><dd><dl class="field-list simple">
<dt>Generate a set of task form elements</dt><dd><dl class="field-list simple">
<dt class="field-odd">param identifier</dt>
<dd class="field-odd"><p>The id of the task</p>
</dd>
@@ -90,6 +324,311 @@ determine which projects to show.</p>
</dl>
</dd></dl>

<span class="target" id="module-views.utils"></span><dl class="function">
<dt id="views.utils.get_nav_bar">
<code class="sig-prename descclassname">views.utils.</code><code class="sig-name descname">get_nav_bar</code><span class="sig-paren">(</span><em class="sig-param">session</em><span class="sig-paren">)</span><a class="headerlink" href="#views.utils.get_nav_bar" title="Permalink to this definition">¶</a></dt>
<dd><p>Generates the page nav bar</p>
<blockquote>
<div><dl class="field-list simple">
<dt class="field-odd">return</dt>
<dd class="field-odd"><p>The navigation bar HTML markup</p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<span class="target" id="module-models.login"></span><dl class="function">
<dt id="models.login.get_users">
<code class="sig-prename descclassname">models.login.</code><code class="sig-name descname">get_users</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#models.login.get_users" title="Permalink to this definition">¶</a></dt>
<dd><dl class="simple">
<dt>Retreive all registrered users from the database</dt><dd><dl class="field-list simple">
<dt class="field-odd">return</dt>
<dd class="field-odd"><p>users</p>
</dd>
</dl>
</dd>
</dl>
</dd></dl>

<dl class="function">
<dt id="models.login.match_user">
<code class="sig-prename descclassname">models.login.</code><code class="sig-name descname">match_user</code><span class="sig-paren">(</span><em class="sig-param">username</em>, <em class="sig-param">password</em><span class="sig-paren">)</span><a class="headerlink" href="#models.login.match_user" title="Permalink to this definition">¶</a></dt>
<dd><p>Check if user credentials are correct, return if exists</p>
<blockquote>
<div><dl class="field-list simple">
<dt class="field-odd">param username</dt>
<dd class="field-odd"><p>The user attempting to authenticate</p>
</dd>
<dt class="field-even">param password</dt>
<dd class="field-even"><p>The corresponding password</p>
</dd>
<dt class="field-odd">type username</dt>
<dd class="field-odd"><p>str</p>
</dd>
<dt class="field-even">type password</dt>
<dd class="field-even"><p>str</p>
</dd>
<dt class="field-odd">return</dt>
<dd class="field-odd"><p>user</p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<span class="target" id="module-models.project"></span><dl class="function">
<dt id="models.project.get_categories">
<code class="sig-prename descclassname">models.project.</code><code class="sig-name descname">get_categories</code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#models.project.get_categories" title="Permalink to this definition">¶</a></dt>
<dd><p>Get all categories</p>
<blockquote>
<div><dl class="field-list simple">
<dt class="field-odd">return</dt>
<dd class="field-odd"><p>List of categories</p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="function">
<dt id="models.project.get_project_by_id">
<code class="sig-prename descclassname">models.project.</code><code class="sig-name descname">get_project_by_id</code><span class="sig-paren">(</span><em class="sig-param">projectid</em><span class="sig-paren">)</span><a class="headerlink" href="#models.project.get_project_by_id" title="Permalink to this definition">¶</a></dt>
<dd><dl class="simple">
<dt>Retrieve a project by its id</dt><dd><dl class="field-list simple">
<dt class="field-odd">param projectid</dt>
<dd class="field-odd"><p>The project id</p>
</dd>
<dt class="field-even">type projectid</dt>
<dd class="field-even"><p>str</p>
</dd>
<dt class="field-odd">return</dt>
<dd class="field-odd"><p>The selected project</p>
</dd>
</dl>
</dd>
</dl>
</dd></dl>

<dl class="function">
<dt id="models.project.get_projects_by_participant_and_status">
<code class="sig-prename descclassname">models.project.</code><code class="sig-name descname">get_projects_by_participant_and_status</code><span class="sig-paren">(</span><em class="sig-param">userid</em>, <em class="sig-param">project_status</em><span class="sig-paren">)</span><a class="headerlink" href="#models.project.get_projects_by_participant_and_status" title="Permalink to this definition">¶</a></dt>
<dd><p>Retrieve all projects where the user is a participant with specific status</p>
<blockquote>
<div><dl class="field-list simple">
<dt class="field-odd">param userid</dt>
<dd class="field-odd"><p>The id of the participant</p>
</dd>
<dt class="field-even">param project_status</dt>
<dd class="field-even"><p>The status to filter on</p>
</dd>
<dt class="field-odd">type userid</dt>
<dd class="field-odd"><p>str</p>
</dd>
<dt class="field-even">type project_status</dt>
<dd class="field-even"><p>str</p>
</dd>
<dt class="field-odd">return</dt>
<dd class="field-odd"><p>A list of projects</p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="function">
<dt id="models.project.get_projects_by_status_and_category">
<code class="sig-prename descclassname">models.project.</code><code class="sig-name descname">get_projects_by_status_and_category</code><span class="sig-paren">(</span><em class="sig-param">categoryid</em>, <em class="sig-param">project_status</em><span class="sig-paren">)</span><a class="headerlink" href="#models.project.get_projects_by_status_and_category" title="Permalink to this definition">¶</a></dt>
<dd><p>Retrieve all projects from a category with a specific status</p>
<blockquote>
<div><dl class="field-list simple">
<dt class="field-odd">param catergoryid</dt>
<dd class="field-odd"><p>The id of the category</p>
</dd>
<dt class="field-even">param project_status</dt>
<dd class="field-even"><p>The status to filter on</p>
</dd>
<dt class="field-odd">type catergoryid</dt>
<dd class="field-odd"><p>str</p>
</dd>
<dt class="field-even">type project_status</dt>
<dd class="field-even"><p>str</p>
</dd>
<dt class="field-odd">return</dt>
<dd class="field-odd"><p>A list of projects</p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="function">
<dt id="models.project.get_projects_by_status_and_owner">
<code class="sig-prename descclassname">models.project.</code><code class="sig-name descname">get_projects_by_status_and_owner</code><span class="sig-paren">(</span><em class="sig-param">userid</em>, <em class="sig-param">project_status</em><span class="sig-paren">)</span><a class="headerlink" href="#models.project.get_projects_by_status_and_owner" title="Permalink to this definition">¶</a></dt>
<dd><p>Retrieve all projects owned by a user with a specific status</p>
<blockquote>
<div><dl class="field-list simple">
<dt class="field-odd">param userid</dt>
<dd class="field-odd"><p>The id of the owner</p>
</dd>
<dt class="field-even">param project_status</dt>
<dd class="field-even"><p>The status to filter on</p>
</dd>
<dt class="field-odd">type userid</dt>
<dd class="field-odd"><p>str</p>
</dd>
<dt class="field-even">type project_status</dt>
<dd class="field-even"><p>str</p>
</dd>
<dt class="field-odd">return</dt>
<dd class="field-odd"><p>A list of projects</p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="function">
<dt id="models.project.set_project">
<code class="sig-prename descclassname">models.project.</code><code class="sig-name descname">set_project</code><span class="sig-paren">(</span><em class="sig-param">categoryid</em>, <em class="sig-param">userid</em>, <em class="sig-param">project_title</em>, <em class="sig-param">project_description</em>, <em class="sig-param">project_status</em><span class="sig-paren">)</span><a class="headerlink" href="#models.project.set_project" title="Permalink to this definition">¶</a></dt>
<dd><p>Store a project in the database</p>
<blockquote>
<div><dl class="field-list simple">
<dt class="field-odd">param categoryid</dt>
<dd class="field-odd"><p>The id of the corresponding category</p>
</dd>
<dt class="field-even">param userid</dt>
<dd class="field-even"><p>The id of the project owner</p>
</dd>
<dt class="field-odd">param project_title</dt>
<dd class="field-odd"><p>The title of the project</p>
</dd>
<dt class="field-even">param project_description</dt>
<dd class="field-even"><p>The project description</p>
</dd>
<dt class="field-odd">param project_status</dt>
<dd class="field-odd"><p>The status of the project</p>
</dd>
<dt class="field-even">type categoryid</dt>
<dd class="field-even"><p>str</p>
</dd>
<dt class="field-odd">type userid</dt>
<dd class="field-odd"><p>str</p>
</dd>
<dt class="field-even">type project_title</dt>
<dd class="field-even"><p>str</p>
</dd>
<dt class="field-odd">type project_description</dt>
<dd class="field-odd"><p>str</p>
</dd>
<dt class="field-even">type project_status</dt>
<dd class="field-even"><p>str</p>
</dd>
<dt class="field-odd">return</dt>
<dd class="field-odd"><p>The id of the new project</p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<dl class="function">
<dt id="models.project.set_task">
<code class="sig-prename descclassname">models.project.</code><code class="sig-name descname">set_task</code><span class="sig-paren">(</span><em class="sig-param">projectid</em>, <em class="sig-param">task_title</em>, <em class="sig-param">task_description</em>, <em class="sig-param">budget</em><span class="sig-paren">)</span><a class="headerlink" href="#models.project.set_task" title="Permalink to this definition">¶</a></dt>
<dd><p>Create a task</p>
<blockquote>
<div><dl class="field-list simple">
<dt class="field-odd">param projectid</dt>
<dd class="field-odd"><p>The corresponding project id</p>
</dd>
<dt class="field-even">param task_title</dt>
<dd class="field-even"><p>The title of the task</p>
</dd>
<dt class="field-odd">param task_description</dt>
<dd class="field-odd"><p>The description of the task</p>
</dd>
<dt class="field-even">param budget</dt>
<dd class="field-even"><p>The task budget</p>
</dd>
<dt class="field-odd">type projectid</dt>
<dd class="field-odd"><p>str</p>
</dd>
<dt class="field-even">type task_title</dt>
<dd class="field-even"><p>str</p>
</dd>
<dt class="field-odd">type task_description</dt>
<dd class="field-odd"><p>str</p>
</dd>
<dt class="field-even">type budget</dt>
<dd class="field-even"><p>str</p>
</dd>
</dl>
</div></blockquote>
</dd></dl>

<span class="target" id="module-models.register"></span><dl class="function">
<dt id="models.register.set_user">
<code class="sig-prename descclassname">models.register.</code><code class="sig-name descname">set_user</code><span class="sig-paren">(</span><em class="sig-param">username</em>, <em class="sig-param">password</em>, <em class="sig-param">full_name</em>, <em class="sig-param">company</em>, <em class="sig-param">phone_number</em>, <em class="sig-param">street_address</em>, <em class="sig-param">city</em>, <em class="sig-param">state</em>, <em class="sig-param">postal_code</em>, <em class="sig-param">country</em><span class="sig-paren">)</span><a class="headerlink" href="#models.register.set_user" title="Permalink to this definition">¶</a></dt>
<dd><dl class="simple">
<dt>Register a new user in the database</dt><dd><dl class="field-list simple">
<dt class="field-odd">param username</dt>
<dd class="field-odd"><p>The users unique user name</p>
</dd>
<dt class="field-even">param password</dt>
<dd class="field-even"><p>The password</p>
</dd>
<dt class="field-odd">param full_name</dt>
<dd class="field-odd"><p>The users full name</p>
</dd>
<dt class="field-even">param company</dt>
<dd class="field-even"><p>The company the user represents</p>
</dd>
<dt class="field-odd">param phone_number</dt>
<dd class="field-odd"><p>The phone number of the user</p>
</dd>
<dt class="field-even">param street_address</dt>
<dd class="field-even"><p>The street address of the user</p>
</dd>
<dt class="field-odd">param city</dt>
<dd class="field-odd"><p>The city where the user lives</p>
</dd>
<dt class="field-even">param state</dt>
<dd class="field-even"><p>The state where the user lives</p>
</dd>
<dt class="field-odd">param postal_code</dt>
<dd class="field-odd"><p>The corresponding postal code</p>
</dd>
<dt class="field-even">param country</dt>
<dd class="field-even"><p>The users country</p>
</dd>
<dt class="field-odd">type username</dt>
<dd class="field-odd"><p>str</p>
</dd>
<dt class="field-even">type password</dt>
<dd class="field-even"><p>str</p>
</dd>
<dt class="field-odd">type full_name</dt>
<dd class="field-odd"><p>str</p>
</dd>
<dt class="field-even">type company</dt>
<dd class="field-even"><p>str</p>
</dd>
<dt class="field-odd">type phone_number</dt>
<dd class="field-odd"><p>str</p>
</dd>
<dt class="field-even">type street_address</dt>
<dd class="field-even"><p>str</p>
</dd>
<dt class="field-odd">type city</dt>
<dd class="field-odd"><p>str</p>
</dd>
<dt class="field-even">type state</dt>
<dd class="field-even"><p>str</p>
</dd>
<dt class="field-odd">type postal_code</dt>
<dd class="field-odd"><p>str</p>
</dd>
<dt class="field-even">type country</dt>
<dd class="field-even"><p>str</p>
</dd>
</dl>
</dd>
</dl>
</dd></dl>

</div>
<div class="section" id="indices-and-tables">
<h1>Indices and tables<a class="headerlink" href="#indices-and-tables" title="Permalink to this headline">¶</a></h1>


BIN
src/app/docs/build/html/objects.inv Datei anzeigen


+ 32
- 2
src/app/docs/build/html/py-modindex.html Datei anzeigen

@@ -37,24 +37,54 @@
<h1>Python Module Index</h1>

<div class="modindex-jumpbox">
<a href="#cap-m"><strong>m</strong></a> |
<a href="#cap-v"><strong>v</strong></a>
</div>

<table class="indextable modindextable">
<tr class="pcap"><td></td><td>&#160;</td><td></td></tr>
<tr class="cap" id="cap-m"><td></td><td>
<strong>m</strong></td><td></td></tr>
<tr>
<td><img src="_static/minus.png" class="toggler"
id="toggle-1" style="display: none" alt="-" /></td>
<td>
<code class="xref">models</code></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
<a href="index.html#module-models.login"><code class="xref">models.login</code></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
<a href="index.html#module-models.project"><code class="xref">models.project</code></a></td><td>
<em></em></td></tr>
<tr class="cg-1">
<td></td>
<td>&#160;&#160;&#160;
<a href="index.html#module-models.register"><code class="xref">models.register</code></a></td><td>
<em></em></td></tr>
<tr class="pcap"><td></td><td>&#160;</td><td></td></tr>
<tr class="cap" id="cap-v"><td></td><td>
<strong>v</strong></td><td></td></tr>
<tr>
<td><img src="_static/minus.png" class="toggler"
id="toggle-1" style="display: none" alt="-" /></td>
id="toggle-2" style="display: none" alt="-" /></td>
<td>
<code class="xref">views</code></td><td>
<em></em></td></tr>
<tr class="cg-1">
<tr class="cg-2">
<td></td>
<td>&#160;&#160;&#160;
<a href="index.html#module-views.forms"><code class="xref">views.forms</code></a></td><td>
<em></em></td></tr>
<tr class="cg-2">
<td></td>
<td>&#160;&#160;&#160;
<a href="index.html#module-views.utils"><code class="xref">views.utils</code></a></td><td>
<em></em></td></tr>
</table>




+ 1
- 1
src/app/docs/build/html/searchindex.js Datei anzeigen

@@ -1 +1 @@
Search.setIndex({docnames:["index"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,sphinx:56},filenames:["index.rst"],objects:{"views.forms":{get_task_form_elements:[0,1,1,""]},"views.index":{Index:[0,2,1,""]},"views.index.Index":{GET:[0,3,1,""]},views:{forms:[0,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:method"},terms:{"class":0,"int":0,"return":0,The:0,budget:0,defin:0,descript:0,determin:0,element:0,form:0,get:0,get_task_form_el:0,identifi:0,index:0,input:0,main:0,modul:0,page:0,param:0,project:0,search:0,self:[],set:0,show:0,str:0,task:0,task_descript:0,task_titl:0,titl:0,type:0,url:0,using:0,variabl:0,view:0,which:0},titles:["Welcome to beelance2\u2019s documentation!"],titleterms:{beelance2:0,document:0,indic:0,tabl:0,welcom:0}})
Search.setIndex({docnames:["index"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,sphinx:56},filenames:["index.rst"],objects:{"models.login":{get_users:[0,1,1,""],match_user:[0,1,1,""]},"models.project":{get_categories:[0,1,1,""],get_project_by_id:[0,1,1,""],get_projects_by_participant_and_status:[0,1,1,""],get_projects_by_status_and_category:[0,1,1,""],get_projects_by_status_and_owner:[0,1,1,""],set_project:[0,1,1,""],set_task:[0,1,1,""]},"models.register":{set_user:[0,1,1,""]},"views.forms":{get_new_project_form:[0,1,1,""],get_project_form_elements:[0,1,1,""],get_task_form_elements:[0,1,1,""]},"views.index":{Index:[0,2,1,""]},"views.index.Index":{GET:[0,3,1,""]},"views.login":{Login:[0,2,1,""]},"views.login.Login":{GET:[0,3,1,""],POST:[0,3,1,""]},"views.logout":{Logout:[0,2,1,""]},"views.logout.Logout":{GET:[0,3,1,""]},"views.new_project":{New_project:[0,2,1,""]},"views.new_project.New_project":{GET:[0,3,1,""],POST:[0,3,1,""],compose_form:[0,3,1,""],get_task_count:[0,3,1,""]},"views.open_projects":{Open_projects:[0,2,1,""]},"views.open_projects.Open_projects":{GET:[0,3,1,""]},"views.project":{Project:[0,2,1,""]},"views.project.Project":{GET:[0,3,1,""]},"views.register":{Register:[0,2,1,""]},"views.register.Register":{GET:[0,3,1,""],POST:[0,3,1,""]},"views.utils":{get_nav_bar:[0,1,1,""]},models:{login:[0,0,0,"-"],project:[0,0,0,"-"],register:[0,0,0,"-"]},views:{forms:[0,0,0,"-"],utils:[0,0,0,"-"]}},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"],"2":["py","class","Python class"],"3":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:function","2":"py:class","3":"py:method"},terms:{"boolean":0,"class":0,"int":0,"new":0,"return":0,"true":0,The:0,about:0,add:0,adding:0,address:0,all:0,applic:0,attempt:0,authent:0,bar:0,belong:0,budget:0,categori:0,category_nam:0,categoryid:0,catergoryid:0,check:0,citi:0,client:0,code:0,combin:0,compani:0,complet:0,compos:0,compose_form:0,contain:0,correct:0,correspond:0,count:0,countri:0,creat:0,credenti:0,data:0,databas:0,defin:[],descript:0,determin:0,divid:0,element:0,elemet:0,exist:0,fals:0,filter:0,form:0,four:0,from:0,full:0,full_nam:0,gener:0,get:0,get_categori:0,get_nav_bar:0,get_new_project_form:0,get_project_by_id:0,get_project_form_el:0,get_projects_by_participant_and_statu:0,get_projects_by_status_and_categori:0,get_projects_by_status_and_own:0,get_task_count:0,get_task_form_el:0,get_us:0,html:0,identifi:0,index:0,info:0,input:0,its:0,kill:0,list:0,live:0,log:0,login:0,logout:0,main:0,make:0,markup:0,match_us:0,model:0,modul:0,name:0,nav:0,navig:0,new_project:0,number:0,object:0,one:0,open:0,open_project:0,other:0,out:0,own:0,owner:0,page:0,param:0,particip:0,password:0,phone:0,phone_numb:0,post:0,postal:0,postal_cod:0,project:0,project_descript:0,project_statu:0,project_titl:0,projectid:0,readi:0,redirect:0,regist:0,registr:0,remov:0,repres:0,reset:0,retreiv:0,retriev:0,search:0,select:0,self:[],session:0,set:0,set_project:0,set_task:0,set_us:0,show:0,singl:0,specif:0,state:0,statu:0,store:0,str:0,street:0,street_address:0,task:0,task_descript:0,task_titl:0,titl:0,type:0,uniqu:0,url:0,use:0,user:0,userid:0,usernam:0,using:0,util:0,variabl:0,view:0,web:0,where:0,which:0},titles:["Welcome to beelance2\u2019s documentation!"],titleterms:{beelance2:0,document:0,indic:0,tabl:0,welcom:0}})

+ 35
- 0
src/app/docs/source/index.rst Datei anzeigen

@@ -13,9 +13,44 @@ Welcome to beelance2's documentation!
.. autoclass:: views.index.Index
:members:

.. autoclass:: views.login.Login
:members:


.. autoclass:: views.logout.Logout
:members:


.. autoclass:: views.new_project.New_project
:members:


.. autoclass:: views.open_projects.Open_projects
:members:


.. autoclass:: views.project.Project
:members:


.. autoclass:: views.register.Register
:members:

.. automodule:: views.forms
:members:

.. automodule:: views.utils
:members:

.. automodule:: models.login
:members:

.. automodule:: models.project
:members:

.. automodule:: models.register
:members:

Indices and tables
==================



+ 13
- 0
src/app/models/login.py Datei anzeigen

@@ -1,6 +1,10 @@
from models.database import db

def get_users():
"""
Retreive all registrered users from the database
:return: users
"""
cursor = db.cursor()
query = ("SELECT userid, username from users")
cursor.execute(query)
@@ -9,6 +13,15 @@ def get_users():
return users

def match_user(username, password):
"""
Check if user credentials are correct, return if exists

:param username: The user attempting to authenticate
:param password: The corresponding password
:type username: str
:type password: str
:return: user
"""
cursor = db.cursor()
query = ("SELECT userid, username from users where username = \"" + username +
"\" and password = \"" + password + "\"")


+ 66
- 0
src/app/models/project.py Datei anzeigen

@@ -1,6 +1,11 @@
from models.database import db

def get_categories():
"""
Get all categories

:return: List of categories
"""
cursor = db.cursor()
query = ("SELECT * FROM project_category")
cursor.execute(query)
@@ -9,6 +14,21 @@ def get_categories():
return categories

def set_project(categoryid, userid, project_title, project_description, project_status):
"""
Store a project in the database

:param categoryid: The id of the corresponding category
:param userid: The id of the project owner
:param project_title: The title of the project
:param project_description: The project description
:param project_status: The status of the project
:type categoryid: str
:type userid: str
:type project_title: str
:type project_description: str
:type project_status: str
:return: The id of the new project
"""
cursor = db.cursor()
query = ("INSERT INTO projects VALUES (NULL, \"" +
categoryid + "\", \"" + userid + "\", \"" + project_title + "\", \"" +
@@ -20,6 +40,12 @@ def set_project(categoryid, userid, project_title, project_description, project_
return projectid

def get_project_by_id(projectid):
"""
Retrieve a project by its id
:param projectid: The project id
:type projectid: str
:return: The selected project
"""
cursor = db.cursor()
query = ("SELECT * FROM projects WHERE projectid = \"" +
projectid + "\"")
@@ -28,6 +54,15 @@ def get_project_by_id(projectid):
return project

def get_projects_by_status_and_category(categoryid, project_status):
"""
Retrieve all projects from a category with a specific status

:param catergoryid: The id of the category
:param project_status: The status to filter on
:type catergoryid: str
:type project_status: str
:return: A list of projects
"""
cursor = db.cursor()
query = ("SELECT * FROM projects WHERE project_status = \"" +
project_status + "\" AND categoryid = \"" + categoryid + "\"")
@@ -36,6 +71,15 @@ def get_projects_by_status_and_category(categoryid, project_status):
return projects

def get_projects_by_status_and_owner(userid, project_status):
"""
Retrieve all projects owned by a user with a specific status

:param userid: The id of the owner
:param project_status: The status to filter on
:type userid: str
:type project_status: str
:return: A list of projects
"""
cursor = db.cursor()
query = ("SELECT * FROM projects WHERE project_status = \"" +
project_status + "\" AND userid = \"" + userid + "\"")
@@ -44,6 +88,15 @@ def get_projects_by_status_and_owner(userid, project_status):
return projects

def get_projects_by_participant_and_status(userid, project_status):
"""
Retrieve all projects where the user is a participant with specific status

:param userid: The id of the participant
:param project_status: The status to filter on
:type userid: str
:type project_status: str
:return: A list of projects
"""
cursor = db.cursor()
query = ("SELECT * FROM projects, projects_users WHERE projects.project_status = \"" +
project_status + "\" AND projects_users.userid = \"" + userid +
@@ -53,10 +106,23 @@ def get_projects_by_participant_and_status(userid, project_status):
return projects

def set_task(projectid, task_title, task_description, budget):
"""
Create a task

:param projectid: The corresponding project id
:param task_title: The title of the task
:param task_description: The description of the task
:param budget: The task budget
:type projectid: str
:type task_title: str
:type task_description: str
:type budget: str
"""
cursor = db.cursor()
query = ("INSERT INTO tasks (projectid, title, task_description, budget, task_status) VALUES (\"" +
projectid + "\", \"" + task_title + "\", \"" +
task_description + "\", \"" + budget + "\", \"waiting for delivery\")")
cursor.execute(query)
db.commit()
cursor.close


+ 23
- 0
src/app/models/register.py Datei anzeigen

@@ -2,6 +2,29 @@ from models.database import db

def set_user(username, password, full_name, company, phone_number,
street_address, city, state, postal_code, country):
"""
Register a new user in the database
:param username: The users unique user name
:param password: The password
:param full_name: The users full name
:param company: The company the user represents
:param phone_number: The phone number of the user
:param street_address: The street address of the user
:param city: The city where the user lives
:param state: The state where the user lives
:param postal_code: The corresponding postal code
:param country: The users country
:type username: str
:type password: str
:type full_name: str
:type company: str
:type phone_number: str
:type street_address: str
:type city: str
:type state: str
:type postal_code: str
:type country: str
"""
cursor = db.cursor()
query = ("INSERT INTO users VALUES (NULL, \"" + username + "\", \"" +
password + "\", \"" + full_name + "\" , \"" + company + "\", \"" +


+ 16
- 13
src/app/views/new_project.py Datei anzeigen

@@ -37,7 +37,6 @@ class New_project:
# Add a set of task fields to the form
if data["Add Task"]:
project_form = self.compose_form(data, True)
print("add task")
return render.new_project(nav, project_form)
except Exception as e:
try:
@@ -49,12 +48,9 @@ class New_project:
try:
# Post the form data and save the project in the database
if data["Create Project"]:
print("Create project")
projectid = models.project.set_project(data.category_name, str(session.userid),
data.project_title, data.project_description, "open")
print("id:", projectid)
task_count = self.get_task_count(data)
print(task_count)
# Save the tasks in the database
for i in range(0, task_count):
models.project.set_task(str(projectid), (data["task_title_" + str(i)]),
@@ -64,19 +60,26 @@ class New_project:
raise e

def get_task_count(self, data):
task_count = 0
# Remove the four other elements from count and divide by the number of variables in one task.
"""
Determine the number of tasks created by removing
the four other elements from count and divide by the
number of variables in one task.
:param data: The data object from web.input
:return: The number of tasks opened by the client
"""
task_count = int((len(data) - 4) / 3)
"""while True:
try:
if data["task_title_"+str(task_count)] or data["task_description_"+str(task_count)] or data["task_budget_"+str(task_count)]:
task_count += 1
except Exception as e:
pass
break"""
return task_count

def compose_form(self, data, add):
"""
Compose a new project form by adding or removing a task

:param data: The data object from web.input
:param add: True or False
:type add: boolean
:return: A complete project form object
"""
task_count = self.get_task_count(data)
# A task is either added or removed
if not add and task_count >= 1:


+ 5
- 1
src/app/views/open_projects.py Datei anzeigen

@@ -7,8 +7,12 @@ render = web.template.render('templates/')

class Open_projects:
# Get projects
def GET(self):
"""
Get all open projects

:return: A page containing all open projects
"""
session = web.ctx.session
data = web.input(categoryid=0)
open_projects=[]


+ 6
- 1
src/app/views/project.py Datei anzeigen

@@ -8,8 +8,13 @@ render = web.template.render('templates/')

class Project:

# Get main page
def GET(self):
"""
Show info about a single project

:return: Project info page
"""
# Get session
session = web.ctx.session
# Get navbar


+ 10
- 2
src/app/views/register.py Datei anzeigen

@@ -9,14 +9,22 @@ render = web.template.render('templates/')

class Register:

# Get the registration form
def GET(self):
"""
Get the registration form

:return: A page with the registration form
"""
session = web.ctx.session
nav = get_nav_bar(session)
return render.register(nav, register_form)

# Register new user in database
def POST(self):
"""
Register new user in database

:return: Main page
"""
data = web.input()
models.register.set_user(data.username, data.password,
data.full_name, data.company, data.phone_number, data.street_address,


+ 5
- 0
src/app/views/utils.py Datei anzeigen

@@ -1,5 +1,10 @@

def get_nav_bar(session):
"""
Generates the page nav bar

:return: The navigation bar HTML markup
"""
result = '<nav>'
result += ' <ul>'
result += ' <li><h1 id="title">Beelance2</h1></li>'


Laden…
Abbrechen
Speichern