mirror of
https://github.com/fspc/workstand.git
synced 2025-02-28 11:33:24 -05:00
View already signed in members.
This commit is contained in:
parent
17622687b2
commit
df6752a13f
@ -21,7 +21,26 @@ export default class SignIn extends React.Component {
|
||||
this.signIn = this.signIn.bind(this);
|
||||
this.chooseMember = this.chooseMember.bind(this);
|
||||
this.handlePurposeChoice = this.handlePurposeChoice.bind(this);
|
||||
}
|
||||
}
|
||||
|
||||
componentDidMount () {
|
||||
fetch('//bikeshop.local/member/signin/')
|
||||
.then((response) => {
|
||||
return response.json()
|
||||
})
|
||||
.then((data) => {
|
||||
const visits = JSON.parse(data);
|
||||
this.setState({signedIn: visits.map((visit) => {
|
||||
return {
|
||||
id: visit.member.id,
|
||||
purpose: visit.purpose,
|
||||
text: visit.member.full_name,
|
||||
value: `${visit.member.full_name} <${visit.member.email}>`,
|
||||
at: moment(visit.created_at)
|
||||
}
|
||||
})})
|
||||
})
|
||||
}
|
||||
|
||||
handlePurposeChoice (event, index, value) {
|
||||
this.setState({...this.state, signOn: {...this.state.signOn, purpose: value}});
|
||||
|
@ -1,21 +1,23 @@
|
||||
import json
|
||||
import logging
|
||||
|
||||
from django.contrib import messages
|
||||
from django.utils.decorators import method_decorator
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.http import HttpResponse, HttpResponseRedirect, JsonResponse
|
||||
from django.template.response import TemplateResponse
|
||||
from django.views.generic import View
|
||||
from django.shortcuts import get_object_or_404
|
||||
from django.template.response import TemplateResponse
|
||||
from django.utils import timezone
|
||||
from django.utils.decorators import method_decorator
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
from django.core import serializers
|
||||
from django.views.generic import View
|
||||
|
||||
import json
|
||||
from core.models import Visit
|
||||
from haystack.query import SearchQuerySet
|
||||
|
||||
from rest_framework.serializers import ModelSerializer
|
||||
from rest_framework.renderers import JSONRenderer
|
||||
|
||||
from .forms import MemberForm
|
||||
from .models import Member
|
||||
from core.models import Visit
|
||||
|
||||
logger = logging.getLogger('bikeshop')
|
||||
|
||||
@ -67,6 +69,19 @@ class MemberSearchView(View):
|
||||
|
||||
return HttpResponse(data, content_type='application/json')
|
||||
|
||||
|
||||
class MemberSerializer(ModelSerializer):
|
||||
class Meta:
|
||||
model = Member
|
||||
fields = ('full_name', 'email', 'id')
|
||||
|
||||
class VisitSerializer(ModelSerializer):
|
||||
member = MemberSerializer()
|
||||
class Meta:
|
||||
model = Visit
|
||||
fields = ('created_at', 'purpose', 'member')
|
||||
depth = 1
|
||||
|
||||
class MemberSignIn(View):
|
||||
@method_decorator(csrf_exempt)
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
@ -75,8 +90,16 @@ class MemberSignIn(View):
|
||||
def post(self, request):
|
||||
member = get_object_or_404(Member, id=request.POST.get('id'))
|
||||
Visit.objects.create(member=member, purpose=request.POST.get('purpose'))
|
||||
|
||||
data = json.dumps(dict(results=dict(id=member.id)))
|
||||
# logger.debug(data)
|
||||
|
||||
return JsonResponse(data=data, safe=False, status=201)
|
||||
return JsonResponse(data=data, safe=False, status=201)
|
||||
|
||||
def get(self, request):
|
||||
start = timezone.now().replace(hour=0, minute=0, second=0, microsecond=0)
|
||||
end = start.replace(hour=23, minute=59, second=59, microsecond=999999)
|
||||
visits = Visit.objects.filter(created_at__lte=end, created_at__gte=start).prefetch_related()
|
||||
|
||||
serializer = VisitSerializer(visits, many=True)
|
||||
json = JSONRenderer().render(serializer.data)
|
||||
|
||||
return JsonResponse(data=json.decode(), safe=False, status=200)
|
||||
|
Loading…
x
Reference in New Issue
Block a user