Skip to content

Commit

Permalink
Modify datepicker and update view
Browse files Browse the repository at this point in the history
  • Loading branch information
zeliangyao committed Sep 11, 2021
1 parent 4066c75 commit af970aa
Show file tree
Hide file tree
Showing 30 changed files with 753 additions and 40 deletions.
5 changes: 5 additions & 0 deletions Api/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,11 @@ def CategoryList(request):
serializer = CategorySerializer(cats, many=True)
return Response(serializer.data)

# One function with CRUD , including type "PUT","GET","POST","DELETE"
# class CategoryList(viewsets.ModelViewSet):
# serializer_class = CategorySerializer
# queryset = Category.objects.all().order_by('-created_at')


@api_view(['POST'])
@permission_classes((permissions.IsAuthenticated,))
Expand Down
3 changes: 0 additions & 3 deletions book/custom_filter.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,5 @@ def get_item(dictionary, key):

@register.filter('has_group')
def has_group(user, group_name):
"""
Verifica se este usuário pertence a um grupo
"""
groups = user.groups.all().values_list('name', flat=True)
return True if group_name in groups else False
29 changes: 28 additions & 1 deletion book/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from django.contrib.admin.widgets import AutocompleteSelect
from django.contrib import admin
from django.urls import reverse
from flatpickr import DatePickerInput, TimePickerInput, DateTimePickerInput


class BookCreateEditForm(forms.ModelForm):
Expand Down Expand Up @@ -59,8 +60,34 @@ class BorrowRecordCreateForm(forms.ModelForm):
class Meta:
model = BorrowRecord
fields=['borrower','book','quantity','start_day','end_day']
# widgets = {
# 'start_day': DatePickerInput().start_of('event datetime'),
# 'end_day': DatePickerInput().end_of('event datetime'),
# }
widgets = {
'start_day': DatePickerInput(options = { "dateFormat": "Y-m-d", }),
'end_day': DatePickerInput(options = { "dateFormat": "Y-m-d", }),
}
# widgets = {'start_day': forms.DateTimeInput(attrs={'class': 'datepicker'}),
# 'end_day': forms.DateTimeInput(attrs={'class': 'datepicker'})}


# widgets = {
# 'start_day': DateTimePickerInput(format='%Y-%m-%d'),
# 'end_day': DateTimePickerInput(format='%Y-%m-%d'),
# }
# }


# from django.forms.widgets import SelectDateWidget

# class BorrowRecordCreateForm(forms.ModelForm):

# def __init__(self, *args, **kwargs):
# super(BorrowRecordCreateForm, self).__init__(*args, **kwargs)
# #Change date field's widget here
# self.fields['start_day'].widget = SelectDateWidget()
# self.fields['end_day'].widget = SelectDateWidget()

# class Meta:
# model = BorrowRecord
# fields=['borrower','book','quantity','start_day','end_day']
2 changes: 2 additions & 0 deletions book/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@

# BorrowRecords
path('record-create/',BorrowRecordCreateView.as_view(),name="record_create"),
# path('record-create/',record_create,name="record_create"),

path('record-create-autocomplete-member-name/',auto_member,name="auto_member_name"),
path('record-create-autocomplete-book-name/',auto_book,name="auto_book_name"),
path('record-list/',BorrowRecordListView.as_view(),name="record_list"),
Expand Down
105 changes: 93 additions & 12 deletions book/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,6 @@ def get(self,request, *args, **kwargs):

user_activities= UserActivity.objects.order_by("-created_at")[:5]
user_avatar = { e.created_by:Profile.objects.get(user__username=e.created_by).profile_pic.url for e in user_activities}

short_inventory =Book.objects.order_by('quantity')[:5]

current_week = date.today().isocalendar()[1]
Expand Down Expand Up @@ -167,7 +166,6 @@ def get(self,request, *args, **kwargs):
return render(request, self.template_name, self.context)

# Book

class BookListView(LoginRequiredMixin,ListView):
login_url = 'login'
model=Book
Expand Down Expand Up @@ -696,39 +694,122 @@ class BorrowRecordCreateView(LoginRequiredMixin,CreateView):
form_class=BorrowRecordCreateForm
login_url = 'login'



def get_form(self):
form = super().get_form()
return form

def form_valid(self, form):
selected_member= get_object_or_404(Member,name = form.cleaned_data['borrower'] )
selected_book = Book.objects.get(title=form.cleaned_data['book'])

# if form.is_valid():
# form.save(commit=True)
# return HttpResponse("Successfully added the date to database");
# else:
# # The supplied form contained errors - just print them to the terminal.
# print(form.errors)

form.instance.borrower_card = selected_member.card_number
form.instance.borrower_email = selected_member.email
form.instance.borrower_phone_number = selected_member.phone_number
form.instance.created_by = self.request.user.username
form.instance.start_day = form.cleaned_data['start_day']
form.instance.end_day = form.cleaned_data['end_day']
form.save()
return super(BorrowRecordCreateView,self).form_valid(form)


def post(self,request, *args, **kwargs):
super(BorrowRecordCreateView,self).post(request)
selected_member= Member.objects.get(name=request.POST['borrower'])
selected_book = Book.objects.get(title=request.POST['book'])


# Change field on Model Book
selected_book.status=0
selected_book.total_borrow_times+=1
selected_book.quantity-=int(request.POST['quantity'])
selected_book.quantity-=int(form.cleaned_data['quantity'])
selected_book.save()

# Create Log
borrower_name = selected_member.name
book_name = selected_book.title
messages.success(request, f" '{borrower_name}' borrowed <<{book_name}>>")

messages.success(self.request, f" '{borrower_name}' borrowed <<{book_name}>>")
UserActivity.objects.create(created_by=self.request.user.username,
target_model=self.model.__name__,
detail =f" '{borrower_name}' borrowed <<{book_name}>>")
return redirect('record_list')


return super(BorrowRecordCreateView,self).form_valid(form)


# def post(self,request, *args, **kwargs):
# super(BorrowRecordCreateView,self).post(request)

# start_day = request.POST['start_day']

# selected_member= Member.objects.get(name=request.POST['borrower'])
# selected_book = Book.objects.get(title=request.POST['book'])

# # Change field on Model Book
# selected_book.status=0
# selected_book.total_borrow_times+=1
# selected_book.quantity-=int(request.POST['quantity'])
# selected_book.save()

# # Create Log
# borrower_name = selected_member.name
# book_name = selected_book.title
# messages.success(request, f" '{borrower_name}' borrowed <<{book_name}>>")
# UserActivity.objects.create(created_by=self.request.user.username,
# target_model=self.model.__name__,
# detail =f" '{borrower_name}' borrowed <<{book_name}>>")
# return redirect('record_list')

# @login_required(login_url='login')
# def record_create(request):
# # 判断用户是否提交数据
# if request.method == "POST":
# record_post_form = BorrowRecordCreateForm(request.POST)
# # 判断提交的数据是否满足模型的要求
# if record_post_form.is_valid():
# new_record = record_post_form.save(commit=False)


# selected_member= get_object_or_404(Member,name = record_post_form.cleaned_data['borrower'] )
# selected_book = Book.objects.get(title=record_post_form.cleaned_data['book'])
# new_record.borrower_card = selected_member.card_number
# new_record.borrower_email = selected_member.email
# new_record.borrower_phone_number = selected_member.phone_number
# new_record.created_by = request.user.username
# # print(datetime.strptime(record_post_form.cleaned_data['start_day'], "%Y/%m/%d %H:%M:%S"))
# # print(datetime.strptime(record_post_form.cleaned_data['end_day'], "%Y/%m/%d %H:%M:%S"))

# new_record.start_day = datetime.strptime(record_post_form.cleaned_data['start_day'],"%Y-%m-%d %H:%M:%S")
# new_record.end_day = datetime.strptime(record_post_form.cleaned_data['end_day'],"%Y-%m-%d %H:%M:%S")
# new_record.save()

# # Change field on Model Book
# selected_book.status=0
# selected_book.total_borrow_times+=1
# selected_book.quantity-=int(request.POST['quantity'])
# selected_book.save()

# # Create Log
# borrower_name = selected_member.name
# book_name = selected_book.title
# messages.success(request, f" '{borrower_name}' borrowed <<{book_name}>>")
# UserActivity.objects.create(created_by=request.user.username,
# target_model='BorrowRecord',
# detail =f" '{borrower_name}' borrowed <<{book_name}>>")
# return redirect("record_list")
# else:
# print(record_post_form.errors)
# return HttpResponse("Error with form")
# # 如果用户请求获取数据
# else:
# record_post_form = BorrowRecordCreateForm()
# context = { 'form': record_post_form, }

# return render(request, 'borrow_records/create.html', context)



@login_required(login_url='login')
def auto_member(request):
Expand Down
33 changes: 15 additions & 18 deletions core/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,7 @@
'ckeditor',
'comment',
'notifications',
# 'elasticsearch-dsl',
# 'django_elasticsearch_dsl',
# 'django-elasticsearch-dsl-drf',
'flatpickr',
]

CRISPY_ALLOWED_TEMPLATE_PACKS = "tailwind"
Expand All @@ -54,9 +52,9 @@
'django.middleware.security.SecurityMiddleware',
'whitenoise.middleware.WhiteNoiseMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.cache.UpdateCacheMiddleware', # Redis
# 'django.middleware.cache.UpdateCacheMiddleware', # Redis
'django.middleware.common.CommonMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware', # Redis
# 'django.middleware.cache.FetchFromCacheMiddleware', # Redis
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
Expand Down Expand Up @@ -129,7 +127,6 @@

WSGI_APPLICATION = 'core.wsgi.application'


DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
Expand Down Expand Up @@ -234,15 +231,15 @@
DATA_ROOT = os.path.join(BASE_DIR, 'data')


CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/1",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
# "PASSWORD": "mysecret"
"SOCKET_CONNECT_TIMEOUT": 5,
"SOCKET_TIMEOUT": 5,
}
}
}
# CACHES = {
# "default": {
# "BACKEND": "django_redis.cache.RedisCache",
# "LOCATION": "redis://127.0.0.1:6379/1",
# "OPTIONS": {
# "CLIENT_CLASS": "django_redis.client.DefaultClient",
# # "PASSWORD": "mysecret"
# "SOCKET_CONNECT_TIMEOUT": 5,
# "SOCKET_TIMEOUT": 5,
# }
# }
# }
13 changes: 13 additions & 0 deletions datacenter/Category_20210908.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
id,name,created_at
2,Economics,2021-07-31 18:19:30.473140+00:00
3,Finance,2021-07-31 18:19:43.229982+00:00
4,Historical,2021-07-31 18:19:49.221871+00:00
5,Fantasy,2021-07-31 18:19:56.916918+00:00
6,Cooking,2021-07-31 18:20:02.315268+00:00
7,Computers & Tech,2021-07-31 18:20:10.279309+00:00
8,Fiction,2021-07-31 18:20:17.988670+00:00
9,Watch,2021-07-31 18:20:31.205351+00:00
10,Detective and Mystery,2021-07-31 18:20:36.975123+00:00
11,Literary Fiction,2021-07-31 18:20:41.851775+00:00
12,Comic,2021-07-31 18:20:54.997368+00:00
20,Fashion,2021-08-09 17:29:13.408340+00:00
20 changes: 20 additions & 0 deletions datacenter/Member_20210907.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
id,name,age,gender,city,email,phone_number,created_at,created_by,updated_by,updated_at,card_id,card_number,expired_at
1,test_m1,20,m,London,[email protected],15800000000,2021-07-31 18:24:22.399715+00:00,yaozeliang,,2021-07-31 18:24:22.400716+00:00,41dced50-32bc-43c9-9904-e611acf969cb,41dced50,2022-07-31 18:24:22.400716+00:00
2,test_m3,18,m,Paris,[email protected],13666666666,2021-07-31 18:24:51.578547+00:00,yaozeliang,admin_1,2021-07-31 18:27:11.126713+00:00,4571a875-cf32-42d0-ba4e-5f54f395e09d,4571a875,2022-07-31 18:27:11.126713+00:00
3,test_m2,20,m,Paris,[email protected],13000000000,2021-07-31 18:27:37.716707+00:00,admin_1,,2021-07-31 18:27:37.717708+00:00,d488c8c1-fc08-4502-ad54-cdc2c72a818f,d488c8c1,2022-07-31 18:27:37.717708+00:00
4,test_m4,20,m,Beijing,[email protected],13600000000,2021-07-31 20:29:29.402416+00:00,yaozeliang,,2021-07-31 20:29:29.408377+00:00,709d3c7d-f2ff-48b6-b80e-2e49c59ddc7f,709d3c7d,2022-07-31 20:29:29.407381+00:00
5,test_m7,20,m,Beijing,[email protected],15098765432,2021-08-01 14:17:16.551384+00:00,admin_2,yaozeliang,2021-08-02 17:47:27.412336+00:00,79db64d6-464c-4b7d-98d9-6abee69fc0a7,79db64d6,2022-08-02 17:47:27.412336+00:00
6,test_m6,27,f,London,[email protected],13245678909,2021-08-01 14:21:08.023026+00:00,admin_2,yaozeliang,2021-08-01 20:57:48.899682+00:00,87ec4380-a2fd-4b95-8afb-02aaefbd25d0,87ec4380,2022-08-01 20:57:48.898720+00:00
7,test_m5,14,f,Milan,[email protected],12344444444,2021-08-02 09:50:39.224378+00:00,yaozeliang,,2021-08-02 09:50:39.229376+00:00,38dfcba4-8e97-4c99-a626-05cc704191df,38dfcba4,2022-08-02 09:50:39.228383+00:00
8,John Brown,20,m,New York,[email protected],12344456768,2021-08-03 13:54:39.777705+00:00,yaozeliang,,2021-08-03 13:54:39.784316+00:00,5ab5d17b-60da-4bc4-af8b-c5c88c88d984,5ab5d17b,2022-08-03 13:54:39.784316+00:00
9,John Johnson,20,m,Salt City,[email protected],130000000987,2021-08-03 13:55:14.516689+00:00,yaozeliang,,2021-08-03 13:55:14.519571+00:00,dc70ce69-40e4-4f75-a951-402fe129198d,dc70ce69,2022-08-03 13:55:14.518522+00:00
10,Andrew Green,20,m,L.A,[email protected],13000009283,2021-08-03 13:56:03.567085+00:00,yaozeliang,,2021-08-03 13:56:03.570349+00:00,8a57f31d-6a68-4994-9298-15f5c3dc5f8d,8a57f31d,2022-08-03 13:56:03.569342+00:00
11,Claire Andson,33,f,New York,[email protected],13777777777,2021-08-03 20:18:31.155942+00:00,yaozeliang,,2021-08-03 20:18:31.159950+00:00,aeeb057c-21ec-4347-a4d3-ad5175c79208,aeeb057c,2022-08-03 20:18:31.159950+00:00
12,Emilia,17,f,ShangHai,[email protected],13777777790,2021-08-04 18:49:13.675771+00:00,admin_1,yaozeliang,2021-08-05 13:02:42.481578+00:00,b25009d3-9722-4a74-a128-b211a9a3e469,b25009d3,2022-08-05 13:02:42.480578+00:00
13,anderson green,54,m,New York,[email protected],13700000000,2021-08-05 14:06:12.391822+00:00,yaozeliang,,2021-08-05 14:06:12.395828+00:00,49e3c367-1eca-4eb7-9d68-98a51faa81ac,49e3c367,2022-08-05 14:06:12.395828+00:00
14,test_m99,20,f,New York,[email protected],13700000000,2021-08-09 17:38:05.664814+00:00,admin_1,,2021-08-09 17:38:05.670814+00:00,542f2651-6037-41cc-9e49-a2f051c25692,542f2651,2022-08-09 17:38:05.669819+00:00
15,test_100,20,m,Beijing,[email protected],13500000000,2021-08-12 13:39:02.192884+00:00,admin_1,,2021-08-12 13:39:02.197888+00:00,f64e12fc-6e75-492d-bb94-4c5b08e8c348,f64e12fc,2022-08-12 13:39:02.197888+00:00
16,Last Member,20,m,Shanghai,[email protected],13777777777,2021-08-13 13:41:11.579199+00:00,yaozeliang,,2021-08-13 13:41:11.634321+00:00,0dbad35a-e15e-4315-a5e6-6406ea7b90fb,0dbad35a,2022-08-13 13:41:11.633322+00:00
19,Lousen,20,m,Paris,[email protected],13600000000,2021-08-29 18:56:57.489649+00:00,admin_1,,2021-08-29 18:56:57.493652+00:00,ef5096be-bbce-4949-bf4e-295541d08d0b,ef5096be,2022-08-29 18:56:57.492650+00:00
20,Septemper User,20,m,London,[email protected],13777777777,2021-09-01 08:52:53.505031+00:00,yaozeliang,,2021-09-01 08:52:53.508074+00:00,22dbc650-f81c-4526-b6ea-0e80bf0eb936,22dbc650,2022-09-01 08:52:53.508074+00:00
21,ooo,45,m,Paris,[email protected],11111111111,2021-09-06 22:35:28.790202+00:00,yaozeliang,yaozeliang,2021-09-06 22:40:29.610185+00:00,d80eb971-83b3-4d6c-b267-90cc66678d25,d80eb971,2022-09-06 22:40:29.610185+00:00
7 changes: 7 additions & 0 deletions datacenter/Publisher_20210908.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
id,name,city,contact,created_at,updated_by,updated_at
1,Pub1,Paris,[email protected],2021-07-31 18:21:19.128665+00:00,yaozeliang,2021-07-31 18:21:19.129664+00:00
2,Pub2,Beijing,[email protected],2021-07-31 18:21:27.033171+00:00,yaozeliang,2021-07-31 18:21:27.034167+00:00
3,Pub3,Rome,[email protected],2021-07-31 18:21:36.376148+00:00,yaozeliang,2021-07-31 18:21:36.376148+00:00
4,Pub4,Tokyo,[email protected],2021-07-31 18:21:53.540765+00:00,yaozeliang,2021-08-01 15:14:28.407599+00:00
5,Fake Pub 5,Paris,[email protected],2021-08-05 10:03:22.230909+00:00,yaozeliang,2021-08-16 17:06:11.552131+00:00
11,Fake Pub 99,Paris,[email protected],2021-08-29 20:57:26.189029+00:00,yaozeliang,2021-08-29 20:57:26.200985+00:00
Binary file modified db.sqlite3
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
pip
Loading

0 comments on commit af970aa

Please sign in to comment.