<commit_before>React = require('react')

import Table from 'react-bootstrap/lib/Table'
import Button from 'react-bootstrap/lib/Button'
import Alert from 'react-bootstrap/lib/Alert'
import Panel from 'react-bootstrap/lib/Panel'

import UserName from './UserName'

import callApi from '../lib/callApi'


#SESSION_TIMES = ["12:00", "13:00", "14:00", "15:00"]
SESSION_TIMES = ["14:00", "15:30"]
#SESSION_TIMES = ["14:00"]

export default class Checkins extends React.Component
    constructor: (props) ->
        super(props)
        @register = @register.bind this
        @state = 
            result: undefined

    register: (i, userId) ->
        () =>
            @setState
                result: undefined
            result = await callApi "checkin/#{userId}", {session: i}
            await @props.handleReload()
            @setState
                result: result

    canRegister: () ->
        @props.myUser && @props.myUser.rating > 0

    render: () ->
        wasme = [false, false]
        <div>
            <h1>Регистрация на занятие</h1>
            <p>
            Можно записываться на одно любое занятие, занятия ничем не отличаются.
            Если вы записались, но прийти не сможете — удалите себя из списка.
            </p>

            <p>
            <b>Новичкам (кто не решил в курсе ни одной задачи) приходить на занятие нельзя</b> 
            (за исключением занятия 22 сентября).
            Надо начать сдавать задачи заочно — 
            если хотя бы одну решите, можете записываться и приходить уже не как новички.
            </p>

            <p>
            Можно приходить без записи, но компьютеры будут выдаваться в первую очередь тем,
            кто записался (даже если они опаздывают).</p>
            
            <p>
            Тем, кто со своими ноутбуками, записываться не надо.
            </p>

            <p>
            Не забудьте с собой паспорт (если паспорта еще нет, то свидетельство о рождении) -- его могут спросить охранники на входе!                    
            </p>

            <Alert bsStyle="danger">
                10 ноября занятия не будет. Ниже запись на 17 ноября.
            </Alert>

            {
            if @state.result?.error
                <Alert bsStyle="danger">
                    Не удалось зарегистрироваться: {@state.result.error}
                </Alert>
            else if @state.result?.ok
                <Alert bsStyle="success">
                    Операция успешна
                </Alert>
            }
            {
            if @props.data?
                <div>
                    <Table condensed>
                        <thead><tr>
                        {
                        for time, i in SESSION_TIMES
                            <th key={time}>
                                <h2>Занятие в {time}</h2>
                                <p>Всего мест: {@props.data[i].max}</p><commit_msg>Update Checkins.coffee<commit_after>React = require('react')

import Table from 'react-bootstrap/lib/Table'
import Button from 'react-bootstrap/lib/Button'
import Alert from 'react-bootstrap/lib/Alert'
import Panel from 'react-bootstrap/lib/Panel'

import UserName from './UserName'

import callApi from '../lib/callApi'


#SESSION_TIMES = ["12:00", "13:00", "14:00", "15:00"]
SESSION_TIMES = ["14:00", "15:30"]
#SESSION_TIMES = ["14:00"]

export default class Checkins extends React.Component
    constructor: (props) ->
        super(props)
        @register = @register.bind this
        @state = 
            result: undefined

    register: (i, userId) ->
        () =>
            @setState
                result: undefined
            result = await callApi "checkin/#{userId}", {session: i}
            await @props.handleReload()
            @setState
                result: result

    canRegister: () ->
        @props.myUser && @props.myUser.rating > 0

    render: () ->
        wasme = [false, false]
        <div>
            <h1>Регистрация на занятие</h1>
            <p>
            Можно записываться на одно любое занятие, занятия ничем не отличаются.
            Если вы записались, но прийти не сможете — удалите себя из списка.
            </p>

            <p>
            <b>Новичкам (кто не решил в курсе ни одной задачи) приходить на занятие нельзя</b> 
            (за исключением занятия 22 сентября).
            Надо начать сдавать задачи заочно — 
            если хотя бы одну решите, можете записываться и приходить уже не как новички.
            </p>

            <p>
            Можно приходить без записи, но компьютеры будут выдаваться в первую очередь тем,
            кто записался (даже если они опаздывают).</p>
            
            <p>
            Тем, кто со своими ноутбуками, записываться не надо.
            </p>

            <p>
            Не забудьте с собой паспорт (если паспорта еще нет, то свидетельство о рождении) -- его могут спросить охранники на входе!                    
            </p>

            {
            if @state.result?.error
                <Alert bsStyle="danger">
                    Не удалось зарегистрироваться: {@state.result.error}
                </Alert>
            else if @state.result?.ok
                <Alert bsStyle="success">
                    Операция успешна
                </Alert>
            }
            {
            if @props.data?
                <div>
                    <Table condensed>
                        <thead><tr>
                        {
                        for time, i in SESSION_TIMES
                            <th key={time}>
                                <h2>Занятие в {time}</h2>
                                <p>Всего мест: {@props.data[i].max}</p>
{'fraction_non_alphanumeric': 0.09831756046267087, 'fraction_numerical': 0.012968804766912022, 'mean_word_length': 1.4451585261353899, 'pattern_counts': {'":': 0, '<': 61, '<?xml version=': 0, '>': 73, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '225769', 'n_tokens_mistral': 1817, 'n_tokens_neox': 1864, 'n_words': 471}