Skip to content

Commit

Permalink
Revert "Status Update Telegram Report"
Browse files Browse the repository at this point in the history
  • Loading branch information
harshithpabbati committed Mar 19, 2020
1 parent bac2624 commit 8ec6edd
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 58 deletions.
3 changes: 1 addition & 2 deletions members/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ class ProfileAdmin(admin.ModelAdmin):
'user',
('first_name', 'last_name', 'profile_pic'),
('email', 'phone'),
('telegram_id', 'githubUsername', 'didNotSendStreak')
('telegram_id', 'githubUsername')
]
}),
('Additional Details', {
Expand All @@ -51,7 +51,6 @@ class ProfileAdmin(admin.ModelAdmin):
}),

]
readonly_fields = ('didNotSendStreak', )
inlines = (sp_inline, wexp_inline, eq_inline)
list_display = ('first_name', 'last_name', 'batch')
list_filter = ('batch',)
Expand Down
1 change: 0 additions & 1 deletion members/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,6 @@ def get_resume_path(self, filename):
interests = models.ManyToManyField(Skill, related_name='interests', blank=True)
expertise = models.ManyToManyField(Skill, related_name='expertise', blank=True)
experiences = models.ManyToManyField(Organization, related_name='WorkExperiences', through='WorkExperience')
didNotSendStreak = models.CharField(null=True, blank=True, max_length=10)
qualifications = models.ManyToManyField(
Organization,
related_name='EducationalQualifications',
Expand Down
30 changes: 15 additions & 15 deletions status/StatusUpdateReporter.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from pytz import timezone
import telegram
from status.models import Thread, DailyLog, Message, StatusException
from college.models import Profile
from members.models import Group
from members.models import Profile as UserProfile

Expand Down Expand Up @@ -57,12 +58,13 @@ def getBatchName(y):

@staticmethod
def groupMembersByBatch(members, year):
return UserProfile.objects.filter(user__in=members, batch=year)
return Profile.objects.filter(user__in=members, admissionYear=year)

@staticmethod
def getLastSendStr(last_send):
def getLastSendStr(last_send, expected_date):
message = ''
diff = last_send + 1
diff = expected_date - last_send.date()
diff = diff.days + 1
if diff > 28:
message += '1M+'
elif diff > 21:
Expand All @@ -76,8 +78,9 @@ def getLastSendStr(last_send):
return message

@staticmethod
def getLastSend(last_send):
diff = last_send + 1
def getLastSend(last_send, expected_date):
diff = expected_date - last_send.date()
diff = diff.days + 1
return diff

def getMemberLastRequiredDate(self, member):
Expand Down Expand Up @@ -108,13 +111,11 @@ def generateBatchWiseDNSReport(self, members, year):
i = 0
for member in m:
i = i + 1
lastSend = self.getMemberLastSend(member.user)
message += str(i) + '. ' + self.getName(member.user)
profile = UserProfile.objects.get(user=member.user)
lastSend = profile.didNotSendStreak
if lastSend:
profile.didNotSendStreak = self.getLastSend(int(lastSend))
lastSend = self.getLastSendStr(int(lastSend))
profile.save()
lastSend = self.getLastSendStr(lastSend,
self.getMemberLastRequiredDate(member.user))
memberHistory = self.getMemberHistory(member.user)
message += ' [ ' + lastSend + ', ' + memberHistory + ']'
else:
Expand Down Expand Up @@ -157,9 +158,6 @@ def getInvalidUpdatesReport(self, invalidUpdates):
i = 0
for member in invalidUpdates.all():
i = i + 1
profile = UserProfile.objects.get(user=member)
lastSend = profile.didNotSendStreak
profile.didNotSendStreak = self.getLastSend(int(lastSend))
message += str(i) + '. ' + self.getName(member) + '\n'
return message

Expand Down Expand Up @@ -221,11 +219,13 @@ def kickMembers(self):
bot = telegram.Bot(token=agent[0])
for member in members:
userProfile = UserProfile.objects.get(user=member)
lastSend = userProfile.didNotSendStreak
lastSend = self.getMemberLastSend(member)
if lastSend:
lastSend = self.getLastSend(lastSend,
self.getMemberLastRequiredDate(member))
try:
status = bot.getChatMember(chat_id=agent[1], user_id=userProfile.telegram_id).status
if int(lastSend) > thread.noOfDays:
if lastSend > thread.noOfDays:
kick = True
exceptions = StatusException.objects.filter(isPaused=True)
for exception in exceptions:
Expand Down
4 changes: 0 additions & 4 deletions status/logger.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
import dateutil.parser
from django.contrib.auth.models import User
from status.models import Thread, Message, DailyLog
from members.models import Profile
from pytz import timezone
from django.core.exceptions import ObjectDoesNotExist

Expand All @@ -24,9 +23,6 @@ def log(data, members, thread_id):
message=entry['message']
)
msgObj.save()
profile = Profile.objects.get(user=user)
profile.didNotSendStreak = 0
profile.save()
if msgCreated:
obj, created = DailyLog.objects.get_or_create(
date=logDate,
Expand Down
37 changes: 1 addition & 36 deletions status/schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,10 @@
from django.db.models import Count
import graphene
from graphql_jwt.decorators import login_required
from framework.api.APIException import APIException
from .models import *
from django.contrib.auth.models import User
from framework.api.user import UserBasicObj
from members.models import Group, Profile


class statusResponseObj(graphene.ObjectType):
status = graphene.String()

from members.models import Group

class MessageObj(graphene.ObjectType):
message = graphene.String()
Expand Down Expand Up @@ -122,8 +116,6 @@ class Query(graphene.ObjectType):
startDate=graphene.types.datetime.Date(required=True),
endDate=graphene.types.datetime.Date()
)
resetStatusStreak = graphene.Field(statusResponseObj)
decrementStatusStreak = graphene.Field(statusResponseObj)

@login_required
def resolve_getStatusUpdates(self, info, **kwargs):
Expand Down Expand Up @@ -158,30 +150,3 @@ def resolve_clubStatusUpdate(self, info, **kwargs):
'end': end
}
return data

@login_required
def resolve_resetStatusStreak(self, info):
if info.context.user.is_superuser:
profiles = Profile.objects.all()
for profile in profiles:
profile.didNotSendStreak = None
profile.save()

return statusResponseObj(status="Done")

else:
raise APIException('You don\'t have permission required to reset status streak', code='ACCESS_DENIED')

@login_required
def resolve_decrementStatusStreak(self, info):
if info.context.user.is_superuser:
profiles = Profile.objects.all()
for profile in profiles:
if profile.didNotSendStreak and int(profile.didNotSendStreak) > 0:
profile.didNotSendStreak = int(profile.didNotSendStreak) - 1
profile.save()

return statusResponseObj(status="Done")

else:
raise APIException('You don\'t have permission required to decrease status streak', code='ACCESS_DENIED')

0 comments on commit 8ec6edd

Please sign in to comment.