示例#1
0
def event_create(request):
    if not may_manage_planning(request.user):
        raise PermissionDenied
    if request.method == 'POST':
        form = EventCreateForm(request.POST)
        if form.is_valid():
            fd = form.cleaned_data
            day = date_to_dt(fd['date'])
            e = Event({
                'name': fd['name'],
                'date': day,
                'kind': fd['template']
            })
            e.save()
            for poolname, periods in templates[fd['template']].items():
                pool = Pool.by_name(poolname)
                for period in periods:
                    begin_date = day + datetime.timedelta(seconds=period[0][0])
                    end_date = day + datetime.timedelta(seconds=period[1][0])
                    v = Vacancy({
                        'name': period[2],
                        'event': _id(e),
                        'begin': (begin_date, period[0][1]),
                        'end': (end_date, period[1][1]),
                        'pool': _id(pool),
                        'assignee': None,
                        'reminder_needed': True,
                    })
                    v.save()
            return HttpResponseRedirect(
                reverse('planning-event-edit', args=(e._id, )))
    else:
        form = EventCreateForm()
    return render(request, 'planning/event_create.html', {'form': form})
示例#2
0
    return (hours * 60 + minutes) * 60

typePeriods = {
    'tappers': [[hm2s(20, 30), hm2s(23), 'eerste dienst'],
    [hm2s(23), hm2s(25), 'tweede dienst'],
    [hm2s(25), hm2s(28), 'derde dienst']],
    'bestuur': [[hm2s(20, 30), hm2s(24), 'openen'],
    [hm2s(24), hm2s(28), 'sluiten']],
    'draai': [[hm2s(20, 45), hm2s(23), 'openen'],
    [hm2s(23), hm2s(24), 'prime-time'],
    [hm2s(24), hm2s(25), 'sluiten']]}

day = datetime.datetime.strptime(sys.argv[1], '%Y-%m-%d')

e = Event({
    'name': 'Borrel',
    'date': day,
    'kind': 'borrel' })
e.save()

for _type, periods in typePeriods.items():
    pool = Pool.by_name(_type)
    for period in periods:
        v = Vacancy({
            'name': period[2],
            'event': _id(e),
            'begin': day + datetime.timedelta(seconds=period[0]),
            'end': day + datetime.timedelta(seconds=period[1]),
            'pool': _id(pool),
            'assignee': None,
        })
        print v._data
示例#3
0
import kn.leden.entities as Es
from kn.leden.mongo import _id
from kn.settings import DT_MIN, DT_MAX
from kn.planning.entities import Pool, Worker, Event, Vacancy


def hm2s(hours, minutes=0):
    return (hours * 60 + minutes) * 60


begin = datetime.datetime.strptime('%s %s' % (sys.argv[1], sys.argv[2]),
                                   '%Y-%m-%d %H:%M')

e = Event({
    'name': 'Dranktelling',
    'date': datetime.datetime.combine(begin.date(), datetime.time())
})
e.save()

pool = Pool.by_name('barco')

for p in [1, 2]:
    v = Vacancy({
        'name': 'Teller %d' % p,
        'event': _id(e),
        'begin': begin,
        'end': begin + datetime.timedelta(seconds=1800),
        'pool': _id(pool),
        'assignee': None
    })
    print v._data