示例#1
0
 def add_event(code):
     #todo: import this function from isa_website/views
     new_event = Event(api_url=api_url,
                       event_start=start_time,
                       title=api_object['name']['html'],
                       event_url=api_object['url'],
                       event_code=code)
     new_event.save()
示例#2
0
文件: views.py 项目: SL-prog/Sivigik
def edit_article(request, article_id=0):
    if request.method == 'POST':
        form = EditArticleForm(request.POST, request.FILES)

        if form.is_valid():

            author = request.user.author
            date = timezone.now()
            title = form.cleaned_data['title']
            is_beta = form.cleaned_data['is_beta']
            text = form.cleaned_data['text']
            category = form.cleaned_data['category']
            image = form.cleaned_data['image']

            if article_id == 0:
            	e = Event(name=title, pub_date=date, category=category, image=None)

            	a = Article(event=e, author=author, is_beta=is_beta, text=text)
            else:
            	a = get_object_or_404(Article, pk=article_id)
            	if image is None:
            		image = a.event.image
            	e = a.event
                if author != a.author and author not in a.modifiers.all():
            	   a.modifiers.add(author)
            	a.is_beta = is_beta
            	a.text = text
            	e.name = title
            	e.pub_date = date
            	e.category = category
            	e.image = image
            	a.event = e

            e.save()
            a.save()



            return HttpResponseRedirect(a.get_absolute_url())
    else:
    	if article_id == 0:
        	form = EditArticleForm()
        else:
        	a = get_object_or_404(Article, pk=article_id)
    		form = EditArticleForm(initial={'title':a.event.name,
    										'image':a.event.image,
    										'category':a.event.category,
    										'is_beta':a.is_beta,
    										'text':a.text})
    if article_id == 0:
    	send_to = '/article/new/'
    else :
    	send_to = '/article/edit/' + article_id + '/'
    
    return render(request, 'article/edit.html', locals())
示例#3
0
def main():
	credentials = get_credentials()
	http = credentials.authorize(httplib2.Http())
	service = discovery.build('calendar', 'v3', http=http)

	now = datetime.datetime.utcnow() # 'Z' indicates UTC time

	page_token = None
	
	if now.hour > 0 and now.hour < 5:
		now = now - datetime.timedelta(hours=24)
	time_min = now - datetime.timedelta(hours=now.hour) # Hack to get the start time at start of the day
	time_min = time_min.isoformat() + 'Z'
	time_max = now + datetime.timedelta(days=14)
	time_max = time_max.isoformat() + 'Z'
	timeZone = 'America/New_York'

	eventDict = {}
	Event.objects.all().delete()
	while True:
		events = service.events().list(calendarId='primary', 
									   pageToken=page_token,
									   orderBy='startTime',
									   singleEvents=True,
   									   timeMin=time_min,
 	   								   timeMax=time_max,
									   timeZone=timeZone).execute()

		for event in events['items']:
			starttime = event.get('start').get('dateTime')
			endtime = event.get('end').get('dateTime')
			if starttime is None or endtime is None:
				continue
			date = parse(starttime).date()

			event = Event(event_id=event.get('id'),
						  date=date,
						  starttime=starttime,
						  endtime=endtime)
			event.save()

		page_token = events.get('nextPageToken')
		if not page_token:
			break


	if not events:
		print('No upcoming events found.')
示例#4
0
def add_event(request):
    # TODO: Modify to store timezone
    _event = json.loads(request.GET.get("event"))
    category, created = Category.objects.get_or_create(
        name=_event.get("category"))
    print(_event["calendarId"])
    task_authorization = TaskAuthorization.objects.get(
        charge_code=_event["calendarId"])
    temp = {
        "id": _event["id"],
        "title": _event["title"],
        "isAllDay": _event["isAllDay"],
        "start":
        datetime.fromisoformat(_event["start"]["_date"].replace("Z", "")),
        "end": datetime.fromisoformat(_event["end"]["_date"].replace("Z", "")),
        "category": category,
        "dueDateClass": _event["dueDateClass"],
        # "task_authorization": task_authorization,
        # "charge_code": _event[""],
        # "location":_event["location"],
        # "notes": _event[""],
    }

    temp["delta_time"] = (temp["end"] -
                          temp["start"]).total_seconds() / 60 / 60.

    task_authorization.hours_spent += temp["delta_time"]
    task_authorization.hours_remaining -= temp["delta_time"]
    task_authorization.hours_percentage = (
        task_authorization.hours_spent /
        task_authorization.hours_allocated) * 100.0

    temp["task_authorization"] = task_authorization

    task_authorization.save()

    if request.user.is_authenticated:
        temp["user"] = request.user

    event = Event(**temp)

    print(f"Create Event ({request.user}): {_event['id']}")
    event.save()

    return JsonResponse({"response": "Recieved"})
示例#5
0
def edit_article(request, article_id=0):
    if request.method == 'POST':
        form = EditArticleForm(request.POST, request.FILES)
        formset=formset_factory( EditPartForm )( request.POST )

        if form.is_valid():

            author = request.user.member
            date = timezone.now()
            title = form.cleaned_data['title']
            is_beta = form.cleaned_data['is_beta']
            category = form.cleaned_data['category']
            image = form.cleaned_data['image']
            is_pinned = form.cleaned_data['is_pinned']
            introduction = form.cleaned_data['introduction']

            if article_id == 0:
            	e = Event(name=title, pub_date=date, category=category, image=image, is_pinned=is_pinned)
                e.save()
            	a = Article(event=e, author=author, is_beta=is_beta, introduction=introduction)
                a.save()
                if formset.is_valid():
                    for p in formset:
                        text = p.cleaned_data['text']
                        title= p.cleaned_data['title']
                        part=Part(text=text, title=title, article=a)
                        part.save()
                idx = a.pk
            else:
            	a = get_object_or_404(Article, pk=article_id)
            	if image is None:
            		image = a.event.image
            	e = a.event
                a.introduction = introduction
            	a.is_beta = is_beta
                e.is_pinned =  is_pinned
            	e.name = title
            	e.pub_date = date
            	e.category = category
            	e.image = image
            	a.event = e

                if formset.is_valid():
                    for p in a.parts.all():
                        p.delete()
                    for p in formset:
                        a.parts.create(title=p.cleaned_data['title'], text=p.cleaned_data['text'])

                e.save()
                a.save()

            return HttpResponseRedirect(a.get_absolute_url())
    else:
    	if article_id == 0:
            form = EditArticleForm()
            parts = formset_factory(EditPartForm, extra=1)()
        else:
            a = get_object_or_404(Article, pk=article_id)
            p_list = []
            no_parts = True
            for i in a.parts.all():
                p_list.append({'title': i.title,'text':i.text})
                no_parts = False
            if no_parts:
                parts = formset_factory(EditPartForm, extra=0)(initial=p_list)
            else:
                parts = formset_factory(EditPartForm, extra=0)(initial=p_list)
            form = EditArticleForm(initial={'title':a.event.name,
    										'image':a.event.image,
    										'category':a.event.category,
    										'is_beta':a.is_beta,
                                            'introduction':a.introduction,})
    if article_id == 0:
    	send_to = '/article/new/'
    else :
    	send_to = '/article/' + article_id + '/edit/'
    
    return render(request, 'article/edit.html', locals())