mirror of
				https://github.com/fspc/workstand.git
				synced 2025-11-04 08:55:35 -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.signIn = this.signIn.bind(this);
 | 
				
			||||||
        this.chooseMember = this.chooseMember.bind(this);
 | 
					        this.chooseMember = this.chooseMember.bind(this);
 | 
				
			||||||
        this.handlePurposeChoice = this.handlePurposeChoice.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) {
 | 
					    handlePurposeChoice (event, index, value) {
 | 
				
			||||||
        this.setState({...this.state, signOn: {...this.state.signOn, purpose: value}});
 | 
					        this.setState({...this.state, signOn: {...this.state.signOn, purpose: value}});
 | 
				
			||||||
 | 
				
			|||||||
@ -1,21 +1,23 @@
 | 
				
			|||||||
 | 
					import json
 | 
				
			||||||
import logging
 | 
					import logging
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from django.contrib import messages
 | 
					 | 
				
			||||||
from django.utils.decorators import method_decorator
 | 
					 | 
				
			||||||
from django.core.urlresolvers import reverse
 | 
					from django.core.urlresolvers import reverse
 | 
				
			||||||
from django.http import HttpResponse, HttpResponseRedirect, JsonResponse
 | 
					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.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.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 haystack.query import SearchQuerySet
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from rest_framework.serializers import ModelSerializer
 | 
				
			||||||
 | 
					from rest_framework.renderers import JSONRenderer
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from .forms import MemberForm
 | 
					from .forms import MemberForm
 | 
				
			||||||
from .models import Member
 | 
					from .models import Member
 | 
				
			||||||
from core.models import Visit
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
logger = logging.getLogger('bikeshop')
 | 
					logger = logging.getLogger('bikeshop')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -67,6 +69,19 @@ class MemberSearchView(View):
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        return HttpResponse(data, content_type='application/json')
 | 
					        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):
 | 
					class MemberSignIn(View):
 | 
				
			||||||
    @method_decorator(csrf_exempt)
 | 
					    @method_decorator(csrf_exempt)
 | 
				
			||||||
    def dispatch(self, request, *args, **kwargs):
 | 
					    def dispatch(self, request, *args, **kwargs):
 | 
				
			||||||
@ -75,8 +90,16 @@ class MemberSignIn(View):
 | 
				
			|||||||
    def post(self, request):
 | 
					    def post(self, request):
 | 
				
			||||||
        member = get_object_or_404(Member, id=request.POST.get('id'))
 | 
					        member = get_object_or_404(Member, id=request.POST.get('id'))
 | 
				
			||||||
        Visit.objects.create(member=member, purpose=request.POST.get('purpose'))
 | 
					        Visit.objects.create(member=member, purpose=request.POST.get('purpose'))
 | 
				
			||||||
 | 
					 | 
				
			||||||
        data = json.dumps(dict(results=dict(id=member.id)))
 | 
					        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