def post_process(self,userid,displayname,serializer): try: club = serializer.object.club #curTimeticks = int(time.mktime(datetime.now().timetuple())*1000) #term = Term.objects.filter(club_id__exact=club.id,finished__exact=False,\ # startdate__lt=curTimeticks, enddate__gt=curTimeticks).order_by("startdate")[0] term = Term.objects.get(id=club.curterm) person = Person.objects.get(id__exact=userid) #P1 update person profile if required if len(displayname) > 2: person.displayname = displayname person.save() #P2 get_or_create Membership ms, created = Membership.objects.get_or_create(club=club, term=term, person=person) ms.type = MemberType.Applicant ms.access=UserUtil.getExpectedAccess(MemberType.Applicant) ms.status = True ms.save() #P3 send club to person notification try: msgfname = club.fullname except: msgfname = club.briefname msgcontent = "Your request to join club {} is being handled.".format(msgfname) MessageUtil.sendClubToPersonNty(club.id,msgfname,userid, msgcontent) except: pass
def set_guests(self,club,msids): try: term = Term.objects.get(id=club.curterm) if term: access = UserUtil.getExpectedAccess(MemberType.Guest) Membership.objects.filter(term__id__exact=term.id,id__in=msids).update(type=MemberType.Guest,access=access,status=True) #update club version!!! since the save() is not invoked with bulk update action club.save() except: pass
def upd_mb(self,term,mss): try: for ms in mss: try: rms = Membership.objects.get(id__exact=ms["id"]) rms.type = ms["type"] rms.access = UserUtil.getExpectedAccess(ms["type"]) rms.save() except: pass except: pass
def add_mbs(self,club,msids): try: #curTimeticks = int(time.mktime(datetime.now().timetuple())*1000) #term = Term.objects.filter(club__id__exact=club.id,startdate__lt=curTimeticks,enddate__gt=curTimeticks).order_by('startdate')[0] term = Term.objects.get(id=club.curterm) if term: access = UserUtil.getExpectedAccess(MemberType.InactiveMember) Membership.objects.filter(term__id__exact=term.id,id__in=msids).update(type=MemberType.InactiveMember,access=access,status=True) #update club version!!! since the save() is not invoked with bulk update action club.save() except: pass
person.first_name = "tiger" person.last_name = "napple" person.username = "******" person.displayname = "tiger gu" person.email = "*****@*****.**" person.set_password("d9b1d7db4cd6e70935368a1efb10e377") person.note = "i am here" person.phone = 13955544587 person.qq = "25364125" person.weibo = "*****@*****.**" person.location = "GZ" person.is_staff = True person.gender = 1 person.save() membership = Membership(club=gnclub,term=gnclub_term, person=person,type=MemberType.ActiveMember,access=UserUtil.getExpectedAccess(MemberType.ActiveMember)) membership.save() print(person.password) person = Person() person.tmid = 410000002 person.first_name = "peter" person.last_name = "pan" person.note = "i am here" person.phone = 1395554887 person.username = "******" person.displayname = "peter pan" person.email = "*****@*****.**" person.set_password("d9b1d7db4cd6e70935368a1efb10e377") person.qq = "25364123235" person.weibo = "*****@*****.**"
def add_mb(self,term,ids): try: Membership.objects.filter(id__in=ids).update(type=MemberType.ActiveMember,\ access = UserUtil.getExpectedAccess(MemberType.ActiveMember)) except: pass
def post(self, request, *args, **kwargs): respData = {"errorcode":""} try: clubid = int(kwargs['clubid']) pk = int(kwargs['pk']) except: respData["errorcode"] = "Invalid club or request!" return Response(respData, status=status.HTTP_400_BAD_REQUEST) try: action = int(request.GET.get("action")) except: pass joinreq = self.get_object(pk) requestDATA = {} requestDATA["id"] = pk if action == 1: requestDATA["status"] = JoinClubReqStatus.APPROVED elif action == 2: requestDATA["status"] = JoinClubReqStatus.REJECTED requestDATA["comment"] = request.DATA["comment"] else: requestDATA["status"] = JoinClubReqStatus.DETAILED serializer = JoinClubUpdateSerializer(joinreq, data=requestDATA) if serializer.is_valid(): serializer.save() club = serializer.object.club person = Person.objects.get(id__exact=serializer.object.user.id) #curTimeticks = int(time.mktime(datetime.now().timetuple())*1000) #term = Term.objects.filter(club_id__exact=club.id,finished__exact=False,\ # startdate__lt=curTimeticks, enddate__gt=curTimeticks).order_by("startdate")[0] term = Term.objects.get(id=club.curterm) if action == 1: access = UserUtil.getExpectedAccess(joinreq.type) Membership.objects.filter(club_id__exact=club.id, term_id__exact=term.id,\ person_id__exact=person.id).update(access=access,type=joinreq.type) #the first club if Membership.objects.filter(person=person).count()==1: person.defclub = club.id person.save() #send club notification to all club member try: msgfname = club.fullname except: msgfname = club.briefname msgcontent = "Welcome! {} has joined {}.".format(person.get_identification(),msgfname) MessageUtil.sendClubNty(club.id,msgfname,club.id, msgcontent) elif action == 2: Membership.objects.filter(club_id__exact=club.id, term_id__exact=term.id,person_id__exact=person.id).delete() #send club notification to person try: msgfname = club.fullname except: msgfname = club.briefname msgcontent = "Your request to join {} has been rejected.".format(msgfname) if "comment" in request.DATA and len(request.DATA["comment"])>0: msgcontent += "The reason is '{}'.".format(request.DATA["comment"]) MessageUtil.sendClubToPersonNty(club.id, msgfname,person.id, msgcontent) return Response(serializer.data) else: respData["errorcode"] = "Invalid club or request!" return Response(respData, status=status.HTTP_400_BAD_REQUEST)
def approve_ccr(ccrid): ccr = None exclub = None try: ccr = CreateClubRequest.objects.get(id__exact=ccrid) except: pass try: exclub = Club.objects.get(tmid__exact=ccr.tmid) except: pass if exclub is None and ccr: club = Club() club.tmid = ccr.tmid club.fullname = ccr.fullname club.briefname = ccr.briefname club.address = ccr.address club.addressd = ccr.addressd club.mday = ccr.mday club.mtime = ccr.mtime club.conperson = ccr.conperson club.conphone = ccr.conphone club.email = ccr.email club.website = ccr.website club.qq = ccr.qq club.weibo = ccr.weibo club.facebook = ccr.facebook club.cdate = ccr.cdate club.advanced = ccr.advanced club.cstatus = 0 # set as created club.desc = ccr.desc #process the location/section: district/area/division country/province club.location = ccr.location club.section = ccr.section club.active = True club.save() print("club: {} {}".format(club.id, club.fullname)) term = Term() term.startdate = int(time.mktime(datetime.now().timetuple())*1000) term.enddate = term.startdate + 16416000000 # half a year: 190*24*3600000 term.club = club term.save() club.curterm = term.id club.save() print("term: {} {}".format(term.id, term.startdate)) membership = Membership(club=club,term=term, person=ccr.user,type=MemberType.President,access=UserUtil.getExpectedAccess(MemberType.President)) membership.save() print("membership(Set requester as President)# club:{} term:{} person: {}".format(membership.club.id, membership.club.id,membership.person.username)) #the first club if Membership.objects.filter(person=ccr.user).count()==1: ccr.user.defclub = club.id ccr.user.save() msgcontent = "Congratulation! Club {} has bee setup with {} as president.".format(club.fullname,membership.person.username) MessageUtil.sendClubNty(club.id,club.fullname, club.id, msgcontent) print(msgcontent) CreateClubRequest.objects.filter(id__exact=ccrid).delete() else: print("This club has been created or the create request is not existed!") return False