Skip to content

Commit 48d7231

Browse files
committed
Cleanup
1 parent 834a944 commit 48d7231

19 files changed

Lines changed: 116 additions & 159 deletions

src/components/CoursePageFooter.js

Lines changed: 8 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,6 @@
1-
import React, { Fragment } from 'react'
1+
import React from 'react'
22
import styled from 'styled-components'
33
import PagesInThisSection from '../partials/PagesInThisSection'
4-
import PagesContext from '../contexes/PagesContext'
5-
import { nthIndex } from '../util/strings'
6-
import { Link } from 'gatsby'
7-
8-
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
9-
import { faArrowRight as icon } from '@fortawesome/free-solid-svg-icons'
104
import withSimpleErrorBoundary from '../util/withSimpleErrorBoundary'
115

126
const CoursePageFooterWrapper = styled.footer`
@@ -22,84 +16,16 @@ const CoursePageFooterContent = styled.div`
2216
margin: 0 auto;
2317
`
2418

25-
const StyledLink = styled(Link)`
26-
background-color: white;
27-
color: black;
28-
text-decoration: none;
29-
padding: 1rem;
30-
border-radius: 0.25rem;
31-
margin: 1rem 0;
32-
display: inline-block;
33-
width: 100%;
34-
35-
&:hover {
36-
text-decoration: none;
37-
font-weight: bold;
38-
color: black;
39-
}
40-
`
41-
42-
const StyledIcon = styled(FontAwesomeIcon)`
43-
vertical-align: middle;
44-
margin-right: 1rem;
45-
margin-left: 0.5rem;
46-
color: var(--color);
47-
font-size: 1.5em;
48-
`
49-
50-
const ButtonWrapper = styled.div`
51-
display: flex;
52-
align-items: center;
53-
`
54-
5519
class CoursePageFooter extends React.Component {
5620
render() {
5721
return (
58-
<PagesContext.Consumer>
59-
{value => {
60-
const currentPath = value.current.path
61-
let sectionPath = currentPath
62-
const sectionSeparator = nthIndex(currentPath, '/', 2)
63-
if (sectionSeparator !== -1) {
64-
sectionPath = currentPath.substr(0, sectionSeparator)
65-
}
66-
const sectionPages = value.all
67-
.filter(o => o.path.startsWith(`${sectionPath}/`))
68-
.sort((a, b) => {
69-
a = a.path.toLowerCase()
70-
b = b.path.toLowerCase()
71-
72-
return a > b ? 1 : b > a ? -1 : 0
73-
})
74-
75-
let currentPageIndex = null
76-
77-
sectionPages.forEach((page, i) => {
78-
if (page.path !== currentPath) {
79-
return
80-
}
81-
currentPageIndex = i
82-
})
83-
84-
let nextPart = null
85-
86-
if (
87-
currentPageIndex !== null &&
88-
currentPageIndex !== sectionPages.length - 1
89-
) {
90-
nextPart = sectionPages[currentPageIndex + 1]
91-
}
92-
return (
93-
<CoursePageFooterWrapper>
94-
<CoursePageFooterContent>
95-
<PagesInThisSection
96-
style={{ width: '400px', fontSize: '0.8rem', margin: 0 }}
97-
/>
98-
</CoursePageFooterContent>
99-
</CoursePageFooterWrapper>
100-
)
101-
}}
102-
</PagesContext.Consumer>
22+
<CoursePageFooterWrapper>
23+
<CoursePageFooterContent>
24+
<PagesInThisSection
25+
style={{ width: '400px', fontSize: '0.8rem', margin: 0 }}
26+
/>
27+
</CoursePageFooterContent>
28+
</CoursePageFooterWrapper>
10329
)
10430
}
10531
}

src/components/EndOfSubSection.js

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import React, { Fragment } from 'react'
22
import styled from 'styled-components'
3-
import PagesInThisSection from '../partials/PagesInThisSection'
43
import PagesContext from '../contexes/PagesContext'
54
import { nthIndex } from '../util/strings'
65
import { Link } from 'gatsby'
@@ -9,19 +8,6 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'
98
import { faArrowRight as icon } from '@fortawesome/free-solid-svg-icons'
109
import withSimpleErrorBoundary from '../util/withSimpleErrorBoundary'
1110

12-
const CoursePageFooterWrapper = styled.footer`
13-
background-color: black;
14-
color: white;
15-
padding: 3rem;
16-
`
17-
18-
const CoursePageFooterContent = styled.div`
19-
display: flex;
20-
justify-content: space-between;
21-
max-width: 960px;
22-
margin: 0 auto;
23-
`
24-
2511
const StyledLink = styled(Link)`
2612
color: black;
2713
text-decoration: none;

src/components/LoginControls.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
import React, { Fragment } from 'react'
22
import Button from './Button'
33
import { signOut, getCachedUserDetails } from '../services/moocfi'
4-
import { navigate } from 'gatsby'
54
import LoginStateContext, {
65
withLoginStateContext,
76
} from '../contexes/LoginStateContext'

src/components/Sidebar.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { Fragment } from 'react'
1+
import React from 'react'
22
import styled from 'styled-components'
33
import { graphql, StaticQuery } from 'gatsby'
44
import { Button } from '@material-ui/core'

src/components/TreeView/TreeViewItem.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import GatsbyLink from 'gatsby-link'
1010
import { Location } from '@reach/router'
1111
import Avatar from '@material-ui/core/Avatar'
1212
import Chip from '@material-ui/core/Chip'
13-
import FaceIcon from '@material-ui/icons/Face'
1413

1514
import { faCalendarAlt as icon } from '@fortawesome/free-regular-svg-icons'
1615
import withSimpleErrorBoundary from '../../util/withSimpleErrorBoundary'

src/components/user/CourseOptionsEditor.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ class CourseOptionsEditor extends React.Component {
141141
InputLabelProps={{
142142
shrink:
143143
this.state.first_name ||
144-
this.state.focused == 'first_name',
144+
this.state.focused === 'first_name',
145145
}}
146146
fullWidth
147147
value={this.state.first_name}
@@ -160,7 +160,7 @@ class CourseOptionsEditor extends React.Component {
160160
name="last_name"
161161
InputLabelProps={{
162162
shrink:
163-
this.state.last_name || this.state.focused == 'last_name',
163+
this.state.last_name || this.state.focused === 'last_name',
164164
}}
165165
fullWidth
166166
value={this.state.last_name}
@@ -179,7 +179,7 @@ class CourseOptionsEditor extends React.Component {
179179
InputLabelProps={{
180180
shrink:
181181
this.state.student_number ||
182-
this.state.focused == 'student_number',
182+
this.state.focused === 'student_number',
183183
}}
184184
fullWidth
185185
value={this.state.student_number}

src/pages/arvostelu-ja-kokeet.js

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { Fragment } from 'react'
1+
import React from 'react'
22

33
import Layout from '../templates/Layout'
44
import Container from '../components/Container'
@@ -18,34 +18,55 @@ const IndexPage = () => (
1818
<section id="yleistä">
1919
<h1>Arvostelu ja kokeet</h1>
2020
<p>
21-
Ohjelmoinnin MOOC sisältää Helsingin yliopiston kurssit Ohjelmoinnin perusteet (materiaalin osat 1-7) ja Ohjelmoinnin jatkokurssi (materiaalin osat 8-14). Kummastakin osasta järjestetään verkossa tehtävä koe, ja kummastakin osasta saa erillisen arvosanan. Ohjelmoinnin MOOCista on kaksi versiota: aikataulutettu kurssi ja aikatauluttamaton kurssi. Näiden arvostelu poikkeaa hieman toisistaan.
21+
Ohjelmoinnin MOOC sisältää Helsingin yliopiston kurssit Ohjelmoinnin
22+
perusteet (materiaalin osat 1-7) ja Ohjelmoinnin jatkokurssi
23+
(materiaalin osat 8-14). Kummastakin osasta järjestetään verkossa
24+
tehtävä koe, ja kummastakin osasta saa erillisen arvosanan.
25+
Ohjelmoinnin MOOCista on kaksi versiota: aikataulutettu kurssi ja
26+
aikatauluttamaton kurssi. Näiden arvostelu poikkeaa hieman toisistaan.
2227
</p>
2328
<h2>Aikataulutettu kurssi</h2>
2429
<p>
25-
Aikataulutetussa kurssissa arvostelu perustuu sekä tehtyihin tehtäviin (50% kokonaispisteistä) että kokeeseen (50% kokonaispisteistä).
30+
Aikataulutetussa kurssissa arvostelu perustuu sekä tehtyihin tehtäviin
31+
(50% kokonaispisteistä) että kokeeseen (50% kokonaispisteistä).
2632
</p>
2733
<p>
28-
Ohjelmoinnin perusteita vastaava koe suoritetaan materiaalin osien 1-7 jälkeen. Arvosanasta puolet muodostuu osien 1-7 tehdyistä tehtävistä ja puolet kokeesta. Osien 1-7 kokeita järjestetään 5.3., 14.4., ja 8.5.
34+
Ohjelmoinnin perusteita vastaava koe suoritetaan materiaalin osien 1-7
35+
jälkeen. Arvosanasta puolet muodostuu osien 1-7 tehdyistä tehtävistä
36+
ja puolet kokeesta. Osien 1-7 kokeita järjestetään 5.3., 14.4., ja
37+
8.5.
2938
</p>
3039
<p>
31-
Ohjelmoinnin jatkokurssia vastaava koe suoritetaan materiaalin osien 8-14 jälkeen. Arvosanasta puolet muodostuu osien 8-14 tehdyistä tehtävistä ja puolet kokeesta. Osien 8-14 kokeita järjestetään 8.5., 8.6., ja 29.6.
40+
Ohjelmoinnin jatkokurssia vastaava koe suoritetaan materiaalin osien
41+
8-14 jälkeen. Arvosanasta puolet muodostuu osien 8-14 tehdyistä
42+
tehtävistä ja puolet kokeesta. Osien 8-14 kokeita järjestetään 8.5.,
43+
8.6., ja 29.6.
3244
</p>
3345
<p>
34-
Täydet tehtäväpisteet kustakin osasta saa tekemällä osan tehtävistä vähintään 90%, puolet tekemällä noin 45% jne.
46+
Täydet tehtäväpisteet kustakin osasta saa tekemällä osan tehtävistä
47+
vähintään 90%, puolet tekemällä noin 45% jne.
3548
</p>
36-
<p>
37-
Kokeeseen saa osallistua kun on tehnyt vähintään 25% jokaisen osan tehtävistä. Aikatauluttamattomassa kurssissa kokeesta tulee saada vähintään puolet kurssin pisteistä kurssin läpäiseksi.
49+
<p>
50+
Kokeeseen saa osallistua kun on tehnyt vähintään 25% jokaisen osan
51+
tehtävistä. Aikatauluttamattomassa kurssissa kokeesta tulee saada
52+
vähintään puolet kurssin pisteistä kurssin läpäiseksi.
3853
</p>
3954
<h2>Aikatauluttamaton kurssi</h2>
4055
<p>
41-
Aikatauluttamattomassa kurssiversiossa arvostelu perustuu täysin kokeeseen. Kokeeseen saa osallistua kun on tehnyt jokaisen osan tehtävistä vähintään 90%.
56+
Aikatauluttamattomassa kurssiversiossa arvostelu perustuu täysin
57+
kokeeseen. Kokeeseen saa osallistua kun on tehnyt jokaisen osan
58+
tehtävistä vähintään 90%.
4259
</p>
4360
<p>
44-
Kurssin aikatauluttamaton versio julkaistaan aikataulutetun version ensimmäisen määräajan jälkeen (21.1.2019). Aikatauluttamattoman kurssin koeaikataulu julkaistaan myöhemmin.
61+
Kurssin aikatauluttamaton versio julkaistaan aikataulutetun version
62+
ensimmäisen määräajan jälkeen (21.1.2019). Aikatauluttamattoman
63+
kurssin koeaikataulu julkaistaan myöhemmin.
4564
</p>
4665
<h2>Arvosanan muodostuminen</h2>
4766
<p>
48-
Ohjelmoinnin MOOCista annetaan kaksi arvosanaa, jotka vastaavat kursseja Ohjelmoinnin perusteet ja Ohjelmoinnin jatkokurssi. Kumpikin arvostellaan seuraavalla asteikolla:
67+
Ohjelmoinnin MOOCista annetaan kaksi arvosanaa, jotka vastaavat
68+
kursseja Ohjelmoinnin perusteet ja Ohjelmoinnin jatkokurssi. Kumpikin
69+
arvostellaan seuraavalla asteikolla:
4970
</p>
5071
<Table>
5172
<TableHead>
@@ -81,7 +102,6 @@ const IndexPage = () => (
81102
</TableRow>
82103
</TableBody>
83104
</Table>
84-
85105
</section>
86106
</Container>
87107
</Layout>

src/pages/index.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
import React, { Fragment } from 'react'
1+
import React from 'react'
22

33
import Layout from '../templates/Layout'
44
import Banner from '../components/Banner'
5-
import MailinglistForm from '../components/MailinglistForm'
65
import GatsbyLink from 'gatsby-link'
76
import { Link } from 'gatsby'
87
import { withLoginStateContext } from '../contexes/LoginStateContext'

src/pages/opettajille.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
import React, { Fragment } from 'react'
1+
import React from 'react'
22

33
import Layout from '../templates/Layout'
44
import Container from '../components/Container'
55
import { withLoginStateContext } from '../contexes/LoginStateContext'
66

7-
87
const IndexPage = () => (
98
<Layout>
109
<Container>

src/pages/opinto-oikeus.js

Lines changed: 59 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { Fragment } from 'react'
1+
import React from 'react'
22

33
import Layout from '../templates/Layout'
44
import Container from '../components/Container'
@@ -10,30 +10,79 @@ const IndexPage = () => (
1010
<section id="yleistä">
1111
<h1>Mahdollisuus opinto-oikeuteen</h1>
1212
<p>
13-
Kevään 2019 aikataulutettu Ohjelmoinnin MOOC antaa mahdollisuuden päästä opiskelemaan Helsingin yliopiston matemaattis-luonnontieteellisen tiedekunnan tietojenkäsittelytieteen kandiohjelmaan. Ohjelmoinnin MOOC -kurssin perusteella haetaan opinto-oikeutta korkeakoulujen yhteishaun osana olevassa päähaussa.
13+
Kevään 2019 aikataulutettu Ohjelmoinnin MOOC antaa mahdollisuuden
14+
päästä opiskelemaan Helsingin yliopiston
15+
matemaattis-luonnontieteellisen tiedekunnan tietojenkäsittelytieteen
16+
kandiohjelmaan. Ohjelmoinnin MOOC -kurssin perusteella haetaan
17+
opinto-oikeutta korkeakoulujen yhteishaun osana olevassa päähaussa.
1418
</p>
1519
<p>
16-
Yhteishaun hakuaika on 20.3.-3.4.2019. Hakuaika päättyy klo 15.00. Ohjelmoinnin MOOCin kautta hakiessasi Sinun tulee täyttää päähaun hakulomake, jossa asetat Helsingin yliopiston tietojenkäsittelytieteen ohjelman haluamallesi prioriteetille. Löydät lisätietoja sähköisestä yhteishausta korkeakouluihin <a href="https://opintopolku.fi/" target="_blank">Opintopolku.fi</a>-portaalista.
20+
Yhteishaun hakuaika on 20.3.-3.4.2019. Hakuaika päättyy klo 15.00.
21+
Ohjelmoinnin MOOCin kautta hakiessasi Sinun tulee täyttää päähaun
22+
hakulomake, jossa asetat Helsingin yliopiston tietojenkäsittelytieteen
23+
ohjelman haluamallesi prioriteetille. Löydät lisätietoja sähköisestä
24+
yhteishausta korkeakouluihin{' '}
25+
<a
26+
href="https://opintopolku.fi/"
27+
target="_blank"
28+
rel="noopener noreferrer"
29+
>
30+
Opintopolku.fi
31+
</a>
32+
-portaalista.
1733
</p>
1834
<p>
19-
Opinto-oikeuden hakeminen Ohjelmoinnin MOOCin kautta edellyttää osallistumista kevään 2019 aikataulutettuun versioon, tehtävien tekemistä annetussa aikataulussa, sekä osallistumista toukokuussa järjestettävään näyttökokeeseen.
35+
Opinto-oikeuden hakeminen Ohjelmoinnin MOOCin kautta edellyttää
36+
osallistumista kevään 2019 aikataulutettuun versioon, tehtävien
37+
tekemistä annetussa aikataulussa, sekä osallistumista toukokuussa
38+
järjestettävään näyttökokeeseen.
2039
</p>
2140
<p>
22-
Saat kutsun näyttökokeeseen tekemällä aikataulutetun kurssin jokaisesta osasta vähintään 90% saatavissa olevista pisteistä. Pisteiden laskemisessa otetaan huomioon vain ohjelmointitehtävät. Kyselyt tai muu sisältö eivät vaikuta näihin pisteisiin.
41+
Saat kutsun näyttökokeeseen tekemällä aikataulutetun kurssin
42+
jokaisesta osasta vähintään 90% saatavissa olevista pisteistä.
43+
Pisteiden laskemisessa otetaan huomioon vain ohjelmointitehtävät.
44+
Kyselyt tai muu sisältö eivät vaikuta näihin pisteisiin.
2345
</p>
2446
<p>
25-
Ohjelmoinnin MOOCin kautta valitaan 50 opiskelijaa. Voit hakea yhteishaussa korkeakoulupaikkaa myös normaalin valintakokeen kautta sekä ylioppilaskirjoitusten tulosten perusteella. Ohjelmoinnin MOOC -kurssi toimii myös ilmaisena valmennuskurssina yhteishaun valintakokeeseen, jos et MOOC-väylän kautta paikkaa saa.
47+
Ohjelmoinnin MOOCin kautta valitaan 50 opiskelijaa. Voit hakea
48+
yhteishaussa korkeakoulupaikkaa myös normaalin valintakokeen kautta
49+
sekä ylioppilaskirjoitusten tulosten perusteella. Ohjelmoinnin MOOC
50+
-kurssi toimii myös ilmaisena valmennuskurssina yhteishaun
51+
valintakokeeseen, jos et MOOC-väylän kautta paikkaa saa.
2652
</p>
2753
<p>
28-
Yhteishaussa hakemisen edellytyksenä on korkeakoulukelpoisuus ja hakiessasi kevään 2019 haussa oletuksena on, että voit aloittaa opinnot syksyllä 2019. Mikäli olet valmistumassa vasta keväällä 2020, voit hakea opiskelupaikkaa Ohjelmoinnin MOOCin näyttökokeessa vuotta 2020 varten.
54+
Yhteishaussa hakemisen edellytyksenä on korkeakoulukelpoisuus ja
55+
hakiessasi kevään 2019 haussa oletuksena on, että voit aloittaa
56+
opinnot syksyllä 2019. Mikäli olet valmistumassa vasta keväällä 2020,
57+
voit hakea opiskelupaikkaa Ohjelmoinnin MOOCin näyttökokeessa vuotta
58+
2020 varten.
2959
</p>
3060
<p>
31-
Helsingin yliopiston tietojenkäsittelytieteen kandiohjelmaan on mahdollista hakea yhteisvalinnan ja MOOCin lisäksi Helsingin yliopiston avoimen yliopiston kautta sekä Digital Education for All -hankkeen kautta. Lisätietoa näistä seuraavista linkeistä:
61+
Helsingin yliopiston tietojenkäsittelytieteen kandiohjelmaan on
62+
mahdollista hakea yhteisvalinnan ja MOOCin lisäksi Helsingin
63+
yliopiston avoimen yliopiston kautta sekä Digital Education for All
64+
-hankkeen kautta. Lisätietoa näistä seuraavista linkeistä:
3265
</p>
3366

3467
<ul>
35-
<li><a href="https://www.helsinki.fi/fi/avoin-yliopisto/opiskelu/tule-opiskelemaan/tavoitteena-tutkinto" target="_blank">Helsingin yliopiston avoimen yliopiston väylä</a></li>
36-
<li><a href="https://www.helsinki.fi/fi/projektit/digital-education-for-all/" target="_blank">Digital Education for All -hanke</a></li>
68+
<li>
69+
<a
70+
href="https://www.helsinki.fi/fi/avoin-yliopisto/opiskelu/tule-opiskelemaan/tavoitteena-tutkinto"
71+
target="_blank"
72+
rel="noopener noreferrer"
73+
>
74+
Helsingin yliopiston avoimen yliopiston väylä
75+
</a>
76+
</li>
77+
<li>
78+
<a
79+
href="https://www.helsinki.fi/fi/projektit/digital-education-for-all/"
80+
target="_blank"
81+
rel="noopener noreferrer"
82+
>
83+
Digital Education for All -hanke
84+
</a>
85+
</li>
3786
</ul>
3887
</section>
3988
</Container>

0 commit comments

Comments
 (0)