Aeg: Difference between revisions
From ICO wiki
Jump to navigationJump to search
No edit summary |
No edit summary |
||
| Line 26: | Line 26: | ||
== Tingimused == | == Tingimused == | ||
=== Rakendus === | |||
* Rakendus peab kasutama kõiki CRUD operatsioone | |||
* Projektide, timereportide ning kasutajate haldamine peab toimuma kasutades Web API't ajax päringuid tehes | |||
* Rakendus peab võimaldama luua kasutajaid | |||
=== Kasutajad === | === Kasutajad === | ||
| Line 35: | Line 41: | ||
* näeb ainult oma Timereporte | * näeb ainult oma Timereporte | ||
==== | ==== Administraator ==== | ||
* saab vaadata kõiki Timereporte | * saab vaadata kõiki Timereporte | ||
* saab kusutada Timereporte, olenemata sellest kas see on kinnitatud või mitte | * saab kusutada Timereporte, olenemata sellest kas see on kinnitatud või mitte | ||
Latest revision as of 19:14, 10 June 2016
| Meeskond "Aeg" | |
| Õppeaine: | Võrgurakendused II: hajussüsteemide ehitamine |
| Meeskonnaliige: | Maksim Gorb |
| Juhendaja: | Mait Poska, Andres Käver |
| Semester: | 2016 kevad kaugõpe |
Eesmärk
Projekti eesmärgiks on luua rakendus aja träkkimiseks prjektides. Rakendus võimaldab tavakasutajal sisestada kulunud aja iga projektis tehtud taski kohta, mida hiljem administraator saab kinnitada või tagasi lükata.
Tingimused
Rakendus
- Rakendus peab kasutama kõiki CRUD operatsioone
- Projektide, timereportide ning kasutajate haldamine peab toimuma kasutades Web API't ajax päringuid tehes
- Rakendus peab võimaldama luua kasutajaid
Kasutajad
Kasutaja
- ei saa kustutada Timereporti, kui see on juba kinnitatud.
- saab kustutada Timereporte, mis ei ole kinnitatud.
- saab lisada Timereporte ainult oma projektis
- näeb ainult oma Timereporte
Administraator
- saab vaadata kõiki Timereporte
- saab kusutada Timereporte, olenemata sellest kas see on kinnitatud või mitte
- saab lisada/eemaldada projekte
- saab lisada/eemaldada projektile tegevusi
- saab lisada/eemaldada projektile kasutajaid
Lähtekood
Praktikum 1. XML andmefail
XML
<?xml version="1.0" encoding="utf-8" ?>
<TimeReports>
<Timereport id="1" week="41" approved="false">
<User id="1">
<FirstName>Maksim</FirstName>
<LastName>Gorb</LastName>
<Departments>
<Department id="1">Programmeerijad</Department>
<Department id="2">Testija</Department>
</Departments>
<Roles>
<Role id="1">Admin</Role>
<Role id="2">Programmeerija</Role>
<Role id="3">Testija</Role>
</Roles>
</User>
<Logs>
<Log id="1" date="21.03.2016">
<Activity id="1">Task #134</Activity>
<Time unit="h">8</Time>
</Log>
<Log id="2" date="22.03.2016">
<Activity id="1">Task #134</Activity>
<Time unit="h">8</Time>
</Log>
<Log id="3" date="23.03.2016">
<Activity id="1">Task #134</Activity>
<Time unit="h">8</Time>
</Log>
<Log id="4" date="24.03.2016">
<Activity id="1">Task #134</Activity>
<Time unit="h">8</Time>
</Log>
<Log id="5" date="25.03.2016">
<Activity id="1">Task #134</Activity>
<Time unit="h">8</Time>
</Log>
</Logs>
<Comment>Läks aega</Comment>
</Timereport>
<Timereport id="2" week="41" approved="true">
<User id="2">
<FirstName>Juhan</FirstName>
<LastName>Labidas</LastName>
<Departments>
<Department id="2">Testija</Department>
</Departments>
<Roles>
<Role id="3">Testija</Role>
</Roles>
</User>
<Logs>
<Log id="1" date="21.03.2016">
<Activity id="1">Task #454</Activity>
<Time unit="h">8</Time>
</Log>
<Log id="2" date="22.03.2016">
<Activity id="1">Task #454</Activity>
<Time unit="h">8</Time>
</Log>
<Log id="3" date="23.03.2016">
<Activity id="1">Task #454</Activity>
<Time unit="h">8</Time>
</Log>
<Log id="4" date="24.03.2016">
<Activity id="1">Task #545</Activity>
<Time unit="h">8</Time>
</Log>
<Log id="5" date="25.03.2016">
<Activity id="1">Task #214</Activity>
<Time unit="h">8</Time>
</Log>
</Logs>
<Comment></Comment>
</Timereport>
</TimeReports>
XSD
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="TimeReports">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Timereport">
<xs:complexType>
<xs:sequence>
<xs:element name="User">
<xs:complexType>
<xs:sequence>
<xs:element name="FirstName" type="xs:string" />
<xs:element name="LastName" type="xs:string" />
<xs:element name="Departments">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Department">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id" type="xs:unsignedByte" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Roles">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Role">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id" type="xs:unsignedByte" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="Logs">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="Log">
<xs:complexType>
<xs:sequence>
<xs:element name="Activity">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id" type="xs:unsignedByte" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Time">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:unsignedByte">
<xs:attribute name="unit" type="xs:string" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedByte" use="required" />
<xs:attribute name="date" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Comment" type="xs:string" />
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedByte" use="required" />
<xs:attribute name="week" type="xs:unsignedByte" use="required" />
<xs:attribute name="approved" type="xs:boolean" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XSLT
Summary
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<TimeReports>
<xsl:for-each select="TimeReports/Timereport">
<Report>
<Week>
<xsl:value-of select='@week' />
</Week>
<User>
<xsl:value-of select="User/FirstName"/>
<xsl:text> </xsl:text>
<xsl:value-of select="User/LastName"/>
</User>
<TotalHours>
<xsl:value-of select="sum(Logs/Log/Time)"/>
</TotalHours>
<Approved>
<xsl:value-of select='@approved' />
</Approved>
<Comment>
<xsl:value-of select='Comment' />
</Comment>
</Report>
</xsl:for-each>
</TimeReports>
</xsl:template>
</xsl:stylesheet>
Activities
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
<xsl:output method="html" indent="yes"/>
<xsl:template match="/">
<html>
<body>
<h2>Time Reports</h2>
<xsl:for-each select="/TimeReports/Timereport">
<h3>
<xsl:value-of select="User/FirstName"/>
<xsl:text> </xsl:text>
<xsl:value-of select="User/LastName"/>
Week <xsl:value-of select="@week"/>
</h3>
<h4>
<xsl:choose>
<xsl:when test="@approved = 'true'">
<xsl:text>Approved</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>Not approved</xsl:text>
</xsl:otherwise>
</xsl:choose>
</h4>
<table border="1">
<tr>
<th>
<xsl:text>Date</xsl:text>
</th>
<th>
<xsl:text>Activity</xsl:text>
</th>
<th>
<xsl:text>Hours</xsl:text>
</th>
</tr>
<xsl:for-each select="Logs/Log">
<tr>
<td>
<xsl:value-of select="@date"/>
</td>
<td>
<xsl:value-of select="Activity"/>
</td>
<td style="text-align:left">
<xsl:value-of select="Time"/>
</td>
</tr>
</xsl:for-each>
</table>
<xsl:if test="Comment != ''">
<h5>
Comment: <xsl:value-of select="Comment"/>
</h5>
</xsl:if>
<br/>
</xsl:for-each>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Retsentsioonid
XML
Projektile VRJ https://wiki.itcollege.ee/index.php/Talk:VRJ#Retsentsioon_meeskonnalt_Aeg
Projektile Enneaegsed https://wiki.itcollege.ee/index.php/Talk:Enneaegsed#Retsentsioon_meeskonnalt_Aeg