コード例 #1
0
ファイル: views.py プロジェクト: hohosInc/hohos
def new_post(request): #post with images and require page refresh
    user = request.user
    form = FeedForm(request.POST or None, request.FILES or None)
    if form.is_valid():
        instance = form.save(commit=False)
        instance.user = user
        is_challenge = request.POST.get('is_challenge') #need to set a post whether its a challenge post or not
        is_response = request.POST.get('is_response')  #need to set a post whether its a response post or not
        response_for_id = request.POST.get('response_for_id')  #required to generate notification for the user for whome the challnege was originally
        to_user = request.POST.get('to_user')  #comes in all response feeds and in challenges where to_user is not left blan as its optional
        
        if response_for_id:
            response_for_feed=get_object_or_404(Feed, id=response_for_id)
            response_for_user_indirect=response_for_feed.challenge_to_user
            if response_for_user_indirect:
                to_user_profile_pk_indirect=response_for_user_indirect.profile.pk
                to_user_profile_indirect=Profile.objects.get(pk=to_user_profile_pk_indirect)
        
        if to_user:
            to_user = get_object_or_404(User, username=to_user)
            to_user_profile_pk=to_user.profile.pk
            to_user_profile=Profile.objects.get(pk=to_user_profile_pk)
        
        post = request.POST['post']
        post = post.strip()  #+ str(to_user_profile_pk_indirect)
        if len(post) > 0:
            instance.post = post[:255]
            if is_response:
                instance.to_user = to_user
                instance.response_for = response_for_id
            if is_challenge:
                instance.is_challenge = is_challenge
                if to_user:
                    instance.challenge_to_user = to_user

            instance.save()  
            feed=instance
            # instance.optimize_image()
            if is_challenge == '1':
                if to_user:
                    challengedActivity=Activity(activity_type=Activity.CHALLENGED,
                                                profile=to_user_profile_pk, user=user,
                                               )
                    challengedActivity.save()
                    user.profile.notifyChallenged(to_user_profile,feed) # from user to to_user
                return redirect('challenge_feeds')
            elif is_response == '1':
                respondActivity=Activity(activity_type=Activity.RESPOND, profile=to_user_profile_pk, user=user)
                respondActivity.save()
                user.profile.notifyResponded(to_user_profile,feed)
                # if to_user_profile_pk_indirect:
                #     respondIndirectActivity=Activity(activity_type=Activity.RESPOND_INDIRECT, profile=to_user_profile_pk_indirect, user=user)
                #     respondIndirectActivity.save()
                #     user.profile.notifyRespondedIndirect(to_user_profile_indirect,feed)
                return redirect('/feeds/response/%s'%(response_for_id))
    return redirect('feeds')
コード例 #2
0
ファイル: views.py プロジェクト: vikas-dev119/taskman
    def post(self, request):
        form = self.form(request.POST)

        if form.is_valid():
            try:
                user_id = request.session.get('userauth', {}).get('user_id')
                task_name = request.POST.get('name')

                data = {
                    'name': task_name,
                    'deadline': request.POST.get('deadline_date'),
                    'user_id': user_id
                }
                task_obj = Task(**data)
                task_obj.save()

                # update activity
                activity_dict = {
                    'user_id': user_id,
                    'message': 'You created Task, {}'.format(str(task_name))
                }
                Activity(**activity_dict).save()
                messages.success(request, "Task add successfully !")
                return redirect('task-list')
            except RuntimeWarning:
                return redirect('task-list')
        
        return render(request, self.template_name, {'form': form})
コード例 #3
0
    def post(self, request):
        data = json.loads(request.body.decode())

        activityName = data['activityName']
        if activityName == '':
            return sendError(message='Tienes que agregar una actividad')

        if len(activityName) > 100:
            return sendError(message='El nombre del curso es demasiado grande')

        if 'activityDesc' in data:
            activityDesc = data['activityDesc']
        else:
            activityDesc = ''

        newActivity = Activity(name=activityName,
                               teacher=request.user.teacher,
                               description=activityDesc)

        newActivity.save()

        data = {'id': newActivity.id, 'name': newActivity.name}

        return sendResponse(data=data,
                            message='Actividad {} agregada'.format(
                                data['name']),
                            code=201)
コード例 #4
0
 def alter(self, instance, activity, **kwargs):
     # 状態が draft の場合は通知しない
     if activity and instance.pub_state == 'draft':
         return None
     if activity and activity.status == 'updated':
         if activity.previous:
             # 通知が必要な状態の変更を詳細に記録する
             previous = activity.previous.snapshot
             is_created = lambda x: (not getattr(previous, x) and getattr(
                 instance, x))
             is_updated = lambda x: (getattr(previous, x) and getattr(
                 instance, x) and getattr(previous, x) != getattr(
                     instance, x))
             is_deleted = lambda x: (getattr(previous, x) and not getattr(
                 instance, x))
             remarks = []
             attributes = (
                 'title',
                 'body',
                 'icon',
                 'status',
                 'category',
             )
             for attribute in attributes:
                 if is_created(attribute):
                     remarks.append(attribute + '_created')
                 elif is_updated(attribute):
                     remarks.append(attribute + '_updated')
                 elif is_deleted(attribute):
                     remarks.append(attribute + '_deleted')
             if not remarks:
                 # 通知が必要な変更ではないため通知しない
                 return None
             activity.remarks = "\n".join(remarks)
     elif activity is None:
         # m2m_updated
         action = kwargs.get('action')
         model = kwargs.get('model')
         if action not in ('post_add', 'post_remove'):
             # 追加/削除以外は通知しない
             return None
         if action == 'post_add' and instance.members.count() == 1:
             # models.join_administratorシグナルによりpost_save処理より以前に
             # 作成者参加が行われ project が作成される前に参加者が追加される
             # したがって参加者が一人(join_administratorにより追加された直後)
             # の場合に飛んできた m2m_signal は無視
             return None
         # 追加・削除をトラックするActivityを作成
         ct = ContentType.objects.get_for_model(instance)
         status = 'user_added' if action == 'post_add' else 'user_removed'
         activity = Activity(content_type=ct,
                             object_id=instance.pk,
                             status=status)
         # snapshot を保存
         activity.snapshot = instance
         # 追加・削除されたユーザーのIDを保存
         activity.remarks = " ".join(map(str, kwargs.get('pk_set')))
     return activity
コード例 #5
0
ファイル: views.py プロジェクト: etaehyun4/kfac
def add(request):
    name = request.POST.get('name','')
    img = request.FILES.get('image','')
    order = len(Activity.objects.all())

    img.name = name + '.' + img.name.split('.')[-1]
    activity = Activity(name=name,order=order,img=img)
    activity.save()

    return HttpResponseRedirect('/activities/edit/')
コード例 #6
0
    def test_saving_and_retrieving_activity(self):
        new_activity = Activity()
        new_activity.text = 'The new activity'
        new_activity.save()

        saved_activity = Activity.objects.all()
        self.assertEqual(saved_activity.count(), 1)

        only_activity = saved_activity[0]
        self.assertEqual(only_activity.text, 'The new activity')
コード例 #7
0
def vote(request):
    answer_id = request.POST['answer']
    answer = Answer.objects.get(pk=answer_id)
    vote = request.POST['vote']
    user = request.user
    activity = Activity.objects.filter(Q(activity_type=Activity.UP_VOTE) | Q(activity_type=Activity.DOWN_VOTE), user=user, answer=answer_id)
    if activity:
        activity.delete()
    if vote in [Activity.UP_VOTE, Activity.DOWN_VOTE]:
        activity = Activity(activity_type=vote, user=user, answer=answer_id)
        activity.save()
    return HttpResponse(answer.calculate_votes())
コード例 #8
0
ファイル: views.py プロジェクト: cangfengzhe/finder2
def like(request):
    feed_id = request.POST['feed']
    feed = Feed.objects.get(pk=feed_id)
    user = request.user
    like = Activity.objects.filter(activity_type=Activity.LIKE, feed=feed_id, user=user)
    if like:
        user.profile.unotify_liked(feed)
        like.delete()
    else:
        like = Activity(activity_type=Activity.LIKE, feed=feed_id, user=user)
        like.save()
        user.profile.notify_liked(feed)
    return HttpResponse(feed.calculate_likes())
コード例 #9
0
def favorite(request):
    question_id = request.POST['question']
    question = Question.objects.get(pk=question_id)
    user = request.user
    activity = Activity.objects.filter(activity_type=Activity.FAVORITE, user=user, question=question_id)
    if activity:
        activity.delete()
        user.profile.unotify_favorited(question)
    else:
        activity = Activity(activity_type=Activity.FAVORITE, user=user, question=question_id)
        activity.save()
        user.profile.notify_favorited(question)
    return HttpResponse(question.calculate_favorites())
コード例 #10
0
def fetchStrava(code, request):
    if request.user == '' or request.user == None:
        request.user = '******'
    access_token = getAccessToken(code)
    activites_url = "https://www.strava.com/api/v3/athlete/activities"
    header = {'Authorization': 'Bearer ' + access_token}
    print("Fill database")
    i = 1
    while True:
        param = {'per_page': 200, 'page': i}
        current_activities = Activity.objects.filter(user=request.user)
        current_ids = set([i.strava_id for i in current_activities])
        print(len(current_activities))
        print(len(current_ids))
        strava_activities = requests.get(activites_url,
                                         headers=header,
                                         params=param).json()
        print("current batch -  " + str(len(strava_activities)))
        if len(strava_activities) == 0:
            break
        i += 1
        for strava_activity in strava_activities:
            if strava_activity["id"] not in current_ids:
                activity = Activity()
                activity.strava_id = strava_activity["id"]
                activity.user = request.user
                activity.title = strava_activity["name"]
                activity.activity_type = strava_activity["type"]
                activity.date = datetime.strptime(
                    strava_activity['start_date'][2:10], '%y-%m-%d')
                activity.timestamp = datetime.timestamp(activity.date)
                if strava_activity['has_heartrate']:
                    activity.heartrate = strava_activity['average_heartrate']
                    if 'suffer_score' in strava_activity:
                        activity.suffer = strava_activity['suffer_score']
                    else:
                        activity.suffer = 0
                else:
                    activity.heartrate = 0
                    activity.suffer = 0
                activity.distance = strava_activity['distance'] / 1000
                activity.moving_time = strava_activity['elapsed_time']
                activity.elevation = strava_activity['total_elevation_gain']
                activity.speed = strava_activity['average_speed']
                if activity.activity_type == "Run" or activity.activity_type == "Ride":
                    if strava_activity['workout_type'] == None:
                        activity.workout_type = 'niks'
                    else:
                        activity.workout_type = strava_activity['workout_type']
                activity.save()
コード例 #11
0
def bulk_upload_activities(request):
    path = 'bulk_upload/activities.csv'
    with open(path, encoding="latin-1") as f:
        reader = csv.reader(f)
        for row in reader:
            activity = Activity()
            activity.name = row[0]
            activity.activity_type = row[1]
            activity.term = row[2]
            activity.location = row[3]
            activity.suburb = row[4]
            activity.postcode = row[5]
            activity.organiser = row[6]
            activity.contact_number = row[7]
            activity.description = row[8]
            activity.activity_date = row[9]
            activity.start_date = row[10]
            activity.end_date = row[11]
            activity.start_time = row[13]
            activity.end_time = row[14]
            activity.created_by = User.objects.get(username=row[15])

            # Image Upload
            if row[16] != '':
                file_dir = 'bulk_upload/images/' + row[16]
                image = open(file_dir, 'rb')
                image_file = File(image)
                activity.activity_img.save(row[16], image_file)
            # Flyer Upload
            if row[17] != '':
                file_dir = 'bulk_upload/flyers/' + row[17]
                flyer = open(file_dir, 'rb')
                flyer_file = File(flyer)
                activity.flyer.save(row[17], flyer_file)

            activity.min_age = row[18]
            activity.max_age = row[19]
            activity.background = row[20]
            activity.living_duration = row[21]
            activity.gender = row[22]
            if row[23] != '':
                activity.cost = row[23]
            if row[24] != '':
                activity.space = row[24]
            activity.cost_choice = row[25]
            activity.space_choice = row[26]
            activity.save()
        f.close()
    return HttpResponse("Success uploading activities.")
コード例 #12
0
def new_comment_signal(sender, instance=None, created=False, **kwargs):
    if created:
        post = instance.post
        user = instance.user
        post_owner = post.user

        if (post.is_paid() and user.is_vet()
                and post_owner.vet_reply_notification):
            send_notification_message(post_owner.id, vet_commenting_post)
        elif post_owner.comments_notification:
            send_notification_message(post_owner.id, commenting_post)

        activity = Activity(user=user,
                            action=Activity.COMMENT,
                            post=post,
                            comment=instance)
        activity.save()
コード例 #13
0
ファイル: views.py プロジェクト: sanjarbek16/Libercen
def post_like(request):
    post_id = request.POST['post']
    post = Post.objects.get(pk=post_id)
    user = request.user
    like = Activity.objects.filter(activity_type=Activity.LIKE,
                                   post=post_id,
                                   user=user)
    if like:
        user.profile.unotify_post_liked(post)
        like.delete()

    else:
        like = Activity(activity_type=Activity.LIKE, post=post_id, user=user)
        like.save()
        user.profile.notify_post_liked(post)

    return HttpResponse(post.calculate_likes())
コード例 #14
0
def pubsvn(github):
    u = users.objects.get(svn=github)
    if Group.objects.filter(name="Commit").exists():
        g = Group.objects.get(name="Commit")
    else:
        Group(name="Commit").save()
        g = Group.objects.get(name="Commit")
    if Entity.objects.filter(name="Commit", group=g).exists():
        en = Entity.objects.get(name="Commit")
    else:
        Entity(name="Commit", group=g).save()
        en = Entity.objects.get(name="Commit")
    r = svn.remote.RemoteClient('http://svn.apache.org/repos/asf/')
    entries = r.list()
    for filename in entries:
        r = svn.remote.RemoteClient('http://svn.apache.org/repos/asf/' + filename)
        if Project.objects.filter(name=filename).exists():
            pr = Project.objects.get(name=filename)
            #UserParticipation(user=u, project=pr).save()
        else:
            p = Project(name=filename, description=filename)
            p.save()
            pr = Project.objects.get(name=filename)
            #UserParticipation(user=u, project=pr)
        e = r.list()
        for file in e:
            if file == "trunk/":
                a = svn.remote.RemoteClient('http://svn.apache.org/repos/asf/' + filename + "trunk")
                i = 0
                for log in a.log_default():
                    if log[3] == github:
                        if Measurement.objects.filter(value=log[2]).exists():
                            continue
                        else:
                            i=i+1
                            Activity(comments="SVN commit " + str(i) + " " + str(filename) +" " + str(github), entity=en).save()
                            ac = Activity.objects.get(comments="SVN commit " + str(i) + " " + str(filename) +" " + str(github))
                            Measurement(activity=ac, type="char", name="Type", value="SVN Commit").save()
                            Measurement(activity=ac, type='char', name="User", value=github).save()
                            Measurement(activity=ac, type="char", name="Scommit_ID", value=log[2]).save()
                            if log[1]:
                                Measurement(activity=ac, type="char", name="Scommit_message", value=log[1]).save()
                            else:
                                Measurement(activity=ac, type="char", name="Scommit_message", value="Nothing").save()
    return HttpResponse("Done")
コード例 #15
0
ファイル: views.py プロジェクト: paulovictor/parsifal
def follow(request):
    try:
        user_id = request.GET['user-id']
        to_user = get_object_or_404(User, pk=user_id)
        from_user = request.user

        following = from_user.profile.get_following()

        if to_user not in following:
            activity = Activity(from_user=from_user,
                                to_user=to_user,
                                activity_type=Activity.FOLLOW)
            activity.save()
            return HttpResponse()
        else:
            return HttpResponseBadRequest()
    except:
        return HttpResponseBadRequest()
コード例 #16
0
def like(request):  #创建点赞和撤销点赞
    article_id = request.POST['article']
    article = Article.objects.get(pk=article_id)
    user = request.user
    like = Activity.objects.filter(activity_type=Activity.LIKE,
                                   article=article_id,
                                   user=user)  #查询该用户是否点过赞
    if like:  #点过赞的撤销
        user.profile.unotify_liked(article)
        like.delete()
    else:  #没有点过赞的点赞
        like = Activity(activity_type=Activity.LIKE,
                        article=article_id,
                        user=user)
        like.save()
        user.profile.notify_liked(article)
    return HttpResponse(str(
        article.calculate_likes()))  #返回赞数,ajax用httpresponse,返回数据
コード例 #17
0
ファイル: views.py プロジェクト: vikas-dev119/taskman
    def get(self, request, task_id):
        user_id = request.session.get('userauth', {}).get('user_id')
        try:
            task_obj = Task.objects.get(id=task_id, user_id=user_id)
            task_name = task_obj.name
            task_obj.delete()
            messages.success(request, "Task Deleted successfully !")

            # update activity
            activity_dict = {
                'user_id': user_id,
                'message': 'You deleted Task, {}'.format(str(task_name))
            }
            Activity(**activity_dict).save()
        except Exception as e:
            print(e)

        return redirect ('task-list')
コード例 #18
0
def index(request):
    results = {}
    today = timezone.now()
    if request.user.is_staff:
        yesterday = today - datetime.timedelta(days=1)
        results['yesterday'] = Activity.objects.filter(
            activity_date=yesterday.date())
        results['today'] = Activity.objects.filter(activity_date=today)
        context = {'results': results, 'yesterday': yesterday, 'today': today}
        return render(request, 'activities/admin_dashboard.html', context)
    else:
        results['all'] = Activity.objects.filter(
            author__username=request.user.username)
        results['today'] = [
            item for item in results['all']
            if item.activity_date == today.date()
        ]
        results['last_seven_days'] = [item for item in results['all'] \
                                          if (item.activity_date + datetime.timedelta(days=7) > today.date() \
                                              and item.activity_date < today.date())]
        if request.method == "POST":
            form = ActivityForm(request.POST)
            if form.is_valid():
                activity = Activity(
                    author=request.user,
                    description=form.cleaned_data["description"],
                    activity_date=form.cleaned_data["activity_date"],
                    activity_type=form.cleaned_data["activity_type"],
                    ticket_number=form.cleaned_data["ticket_number"],
                    hours_worked=form.cleaned_data["hours_worked"],
                    comment=form.cleaned_data["comment"])
                activity.save()
                messages.add_message(request, messages.SUCCESS,
                                     "Activity added successfully!")
                return redirect(reverse('index'))
        else:
            form = ActivityForm()
        context = {
            'name': request.user.username,
            'results': results,
            'form': form,
            'today': today.date()
        }
        return render(request, "activities/dashboard.html", context)
コード例 #19
0
def review_like(request):
    review_id = request.POST['review']
    review = Review.objects.get(pk=review_id)
    user = request.user
    like = Activity.objects.filter(activity_type=Activity.LIKE,
                                   review=review_id,
                                   user=user)
    if like:
        user.profile.unotify_review_liked(review)
        like.delete()

    else:
        like = Activity(activity_type=Activity.LIKE,
                        review=review_id,
                        user=user)
        like.save()
        user.profile.notify_review_liked(review)

    return HttpResponse(review.calculate_likes())
コード例 #20
0
ファイル: views.py プロジェクト: Ghost8Recon/Social_Net
def question_vote(request):
    question_id = request.POST['question']
    question = Question.objects.get(pk=question_id)
    vote = request.POST['vote']
    user = request.user
    activity = Activity.objects.filter(
        Q(activity_type=Activity.UP_VOTE)
        | Q(activity_type=Activity.DOWN_VOTE),  # noqa: E501
        user=user,
        question=question_id)
    if activity:
        activity.delete()

    if vote in [Activity.UP_VOTE, Activity.DOWN_VOTE]:
        activity = Activity(activity_type=vote,
                            user=user,
                            question=question_id)
        activity.save()

    return HttpResponse(question.calculate_votes())
コード例 #21
0
ファイル: views.py プロジェクト: hohosInc/hohos
def post(request):   #feeds on profiles
    to_user = request.POST.get('to_user')
    # profile_pk = request.POST.get('profile_pk')
    # last_feed = request.POST.get('last_feed')
    to_user = get_object_or_404(User, username=to_user)
    to_user_profile_pk = to_user.profile.pk
    user = request.user
    csrf_token = (csrf(request)['csrf_token'])
    feed = Feed()
    feed.user = user
    feed.to_user = to_user
    feed.profile_pk = to_user_profile_pk
    # if not to_user:
    #     feed.profile_pk = profile_pk
    # else:
    #     feed.profile_pk = to_user.profile.pk
    #     profile_pk = to_user.profile.pk
    post = request.POST['post']
    post = post.strip()
    if len(post) > 0 and to_user:
        feed.post = post[:255]
        feed.save()
        profile = Profile.objects.get(pk=to_user_profile_pk) # to_user_profile
        # wrote_on_profile = Activity.objects.filter(activity_type=Activity.WROTE_ON_PROFILE, profile=profile_pk,
        #                            user=user)

        wrote_on_profile = Activity(activity_type=Activity.WROTE_ON_PROFILE, profile=to_user_profile_pk, user=user)
        wrote_on_profile.save()
        user.profile.notify_wrote_on_profile(profile,feed)
        
        html = ''
        html = '{0}{1}'.format(html,
                               render_to_string('feeds/partial_feed_profile.html',
                                                {
                                                    'feed': feed,
                                                    'user': request.user,
                                                    'csrf_token': csrf_token,
                                                    }))
    else:
        html = ''
    return HttpResponse(html)
コード例 #22
0
def svna(github,urls):
    u = users.objects.get(svn=github)
    if Group.objects.filter(name="Commit").exists():
        g = Group.objects.get(name="Commit")
    else:
        Group(name="Commit").save()
        g = Group.objects.get(name="Commit")
    if Entity.objects.filter(name="Commit", group=g).exists():
        en = Entity.objects.get(name="Commit")
    else:
        Entity(name="Commit", group=g).save()
        en = Entity.objects.get(name="Commit")
    for url in urls.split(','):
        r = svn.remote.RemoteClient(url)
        info=r.info()
        if Project.objects.filter(name=info['entry_path']).exists():
            pr = Project.objects.get(name=info['entry_path'])
            #UserParticipation(user=u, project=pr).save()
        else:
            p = Project(name=info['entry_path'], description=info['entry_path'])
            p.save()
            pr = Project.objects.get(name=info['entry_path'])
            #UserParticipation(user=u, project=pr)
        i=0
        for log in r.log_default():
            if log[3] == github:
                if Measurement.objects.filter(value=log[1]).exists():
                    continue
                else:
                    i = i + 1
                    Activity(comments="SVN commit " + str(i) + " " + str(info['entry_path']) +" " + str(github), entity=en).save()
                    ac = Activity.objects.get(comments="SVN commit " + str(i) + " " + str(info['entry_path']) +" " + str(github))
                    Measurement(activity=ac, type="char", name="Type", value="SVN Commit").save()
                    Measurement(activity=ac, type='char', name="User", value=github).save()
                    Measurement(activity=ac, type="char", name="Scommit_ID", value=log[2]).save()
                    if log[1]:
                        Measurement(activity=ac, type="char", name="Scommit_message", value=log[1]).save()
                    else:
                        Measurement(activity=ac, type="char", name="Scommit_message", value="Nothing").save()
    return HttpResponse("Done")
コード例 #23
0
	def post(self, request, *args, **kwargs):
		user = request.user
		form = self.get_form()
		if form.is_valid():
			vehicle_id = request.POST['vehicle']
			form.save()
			vehicle = Vehicle.objects.get(pk=vehicle_id)
			
			activity = Activity.objects.filter(activity_type=Activity.BOOK,
                                       user=user, vehicle=vehicle_id)
			if activity:
				activity.delete()
				user.profile.unotify_booked(vehicle)
			else:
				activity = Activity(activity_type=Activity.BOOK, user=user,
                            vehicle=vehicle_id)
				activity.save()
				user.profile.notify_booked(vehicle)

			return self.form_valid(form)
		else:
			return self.form_invalid(form)
コード例 #24
0
ファイル: views.py プロジェクト: bmatheus91/sgpp
def project_add_activity(request, pk):

    project = get_object_or_404(models.Project, pk=pk)
    activity = Activity(project=project)

    if in_list(project.status, '6,7,8'):
        messages.error(request,
                       'Projeto já Em Andamento / Encerrado / Cancelado.')
        return redirect(reverse('project:detail', kwargs={'pk': project.pk}))

    if not has_group(request.user,
                     'project_leader') or project.leader != request.user:
        messages.error(
            request,
            'Apenas o Lider do Projeto pode adicionar ima atividade ao projeto.'
        )
        return redirect(reverse('project:detail', kwargs={'pk': project.pk}))

    if request.method == 'POST':
        form = forms.NewProjectActivityForm(request.POST, instance=activity)

        if form.is_valid():
            form.save()
            project.status = 1
            project.save()

            messages.success(request, 'Atividade cadastrada com sucesso.')
        else:
            messages.error(request,
                           'Falha ao cadastrar a atividade do projeto.')
            return render(request, 'projects/project_add_activity.html',
                          {'form': form})

        return redirect(reverse('project:detail', kwargs={'pk': project.pk}))
    else:
        form = forms.NewProjectActivityForm(instance=activity)
        return render(request, 'projects/project_add_activity.html',
                      {'form': form})
コード例 #25
0
def create_view(request):
    if not request.user.can_create_vote:
        return redirect('/activities/list/')

    if request.POST:
        activity = Activity()
        activity.title = request.POST.get('title', '')
        activity.vote_num_per_user = request.POST.get('vote_num_per_user', 8)
        activity.sponsor = request.user
        activity.end_datetime = request.POST.get('end_datetime', None)
        activity.save()

        images = request.FILES.getlist('option_image', [])
        contents = request.POST.getlist('option_content', [])
        for image, content in zip(images, contents):
            option = Option()
            option.image = image
            option.content = content
            option.activity = activity
            option.save()

        return redirect('/activities/detail/%s/' % activity.id)
    else:
        return render(request, 'activities/create.html')
コード例 #26
0
ファイル: views.py プロジェクト: hohosInc/hohos
def profile_like(request):
    profile_pk = request.POST['profile_pk']
    profile = Profile.objects.get(pk=profile_pk)
    user = request.user
    like = Activity.objects.filter(activity_type=Activity.LIKE_PROFILE, profile=profile_pk,
                                   user=user)
    if like:
        user.profile.unotify_liked_profile(profile)
        print('request user: %s had already liked this user so \
            you are gonna be removed from the liker list of this user\
            and It should appear Like text on button'
            %(request.user.username))
        like.delete()

    else:
        like = Activity(activity_type=Activity.LIKE_PROFILE, profile=profile_pk, user=user)
        print('request user: %s had not liked this user so \
            you are gonna be added in liker list of this user\
            and It should appear UnLike on button'
            %(request.user.username))        
        like.save()
        user.profile.notify_liked_profile(profile)   # from user to => profile wala_user

    return HttpResponse(profile.calculate_likes())
コード例 #27
0
def booking(request):
	user = request.user
	form = BookingForm(request.POST or None)
	if request.method == 'POST':
		if form.is_valid():
			form.save()
			
			vehicle = Vehicle.objects.get(pk=2)
			
			activity = Activity.objects.filter(activity_type=Activity.BOOK,
                                       user=user, vehicle=2)
			if activity:
				activity.delete()
				user.profile.unotify_booked(vehicle)
			else:
				activity = Activity(activity_type=Activity.BOOK, user=user,
                            vehicle=2)
				activity.save()
				user.profile.notify_booked(vehicle)

			return redirect('/')
		else:
			return HttpResponse('Error')
	return render(request, 'booking_form.html', {'form':form} )
コード例 #28
0
    def create(self, validated_data):
        print('Create activity')
        age = validated_data.pop('age')
        level = validated_data.pop('level')
        time = validated_data.pop('time')
        group = validated_data.pop('group')
        supervised = validated_data.pop('supervised')
        cost = validated_data.pop('cost')
        location = validated_data.pop('location')
        skills = validated_data.pop('skills')
        learning = validated_data.pop('learning')
        translations = validated_data.pop('translations')
        authors = validated_data.pop('authors')

        activity = Activity(**validated_data)

        if time:
            activity.time = MetadataOption.objects.get_or_create(**time)[0]

        if group:
            activity.group = MetadataOption.objects.get_or_create(**group)[0]

        if supervised:
            activity.supervised = MetadataOption.objects.get_or_create(
                **supervised)[0]

        if cost:
            activity.cost = MetadataOption.objects.get_or_create(**cost)[0]

        if location:
            activity.location = MetadataOption.objects.get_or_create(
                **location)[0]

        if learning:
            activity.learning = MetadataOption.objects.get_or_create(
                **learning)[0]

        activity.save()

        for age_item in age:
            activity.age.add(
                MetadataOption.objects.get_or_create(**age_item)[0])

        for level_item in level:
            activity.level.add(
                MetadataOption.objects.get_or_create(**level_item)[0])

        for skills_item in skills:
            activity.skills.add(
                MetadataOption.objects.get_or_create(**skills_item)[0])

        for author in authors:
            author.update(activity=activity)
            activity.authors.add(
                AuthorInstitution.objects.get_or_create(**author)[0])

        activity.save()

        for translation in translations:
            translation.update(master=activity)
            t = ActivityTranslation(**translation)
            t.save()

        return activity
コード例 #29
0
def git(github):
    u = users.objects.get(githubid=github)
    root = tkinter.Tk()
    root.withdraw()
    access = simpledialog.askstring("Accesstoken", "Accesstoken")
    if Group.objects.filter(name="Commit").exists():
        g = Group.objects.get(name="Commit")
    else:
        Group(name="Commit").save()
        g = Group.objects.get(name="Commit")
    if Group.objects.filter(name="Issue").exists():
        gi = Group.objects.get(name="Issue")
    else:
        Group(name="Issue").save()
        gi = Group.objects.get(name="Issue")
    if Entity.objects.filter(name="Commit", group=g).exists():
        e = Entity.objects.get(name="Commit")
    else:
        Entity(name="Commit", group=g).save()
        e = Entity.objects.get(name="Commit")

    if Entity.objects.filter(name="Issue", group=gi).exists():
        ei = Entity.objects.get(name="Issue")
    else:
        Entity(name="Issue", group=gi).save()
        ei = Entity.objects.get(name="Issue")

    for repo in count_user_commits(access):
        if Project.objects.filter(name=repo['name']).exists():
            pr = Project.objects.get(name=repo['name'])
            #UserParticipation(user=u, project=pr).save()
        else:
            p = Project(name=repo['name'], description=repo['name'])
            p.save()
            pr = Project.objects.get(name=repo['name'])
            #UserParticipation(user=u, project=pr)
        r = json.loads(requests.get(repo['commits_url'][:-6]+'?access_token=%s' % access).content)
        r1 = json.loads(requests.get(repo['issue_comment_url'][:-9]+'?access_token=%s' % access).content)
        for k in range(0, len(r1)):
            if Measurement.objects.filter(value=r[i]['id']).exists():
                continue
            else:
                Activity(comments="Git Issue " + str(k) + " " + str(repo['name']), entity=ei).save()
                a = Activity.objects.get(comments="Git Issue " + str(i) + " " + str(repo['name']))
                Measurement(activity=a, type="char", name="Type", value="Git Issue").save()
                Measurement(activity=a, type="char", name="GIssue_ID", value=r[i]['id']).save()
                Measurement(activity=a, type="char", name="GIssue_ID", value=r[i]['body']).save()
        for i in range(0, len(r)):
            if Measurement.objects.filter(value=r[i]['sha']).exists():
                continue
            else:
                Activity(comments="Git commit " + str(i) + " " + str(repo['name']) + " " + str(github), entity=e).save()
                a = Activity.objects.get(comments="Git commit " + str(i) + " " + str(repo['name']) +" " + str(github))
                rr = requests.get(r[i]['url']+'?access_token=%s' % access)
                rr = json.loads(rr.content)
                d = rr['stats']['deletions']
                l = rr['stats']['additions']
                no = len(rr['files'])
                date = rr['commit']['committer']['date'].split("T")[0]
                t = rr['commit']['committer']['date'].split("T")[1][:-1]
                day = datetime.datetime.strptime(date, '%Y-%m-%d').strftime('%A')
                if 6 <= int(t.split(":")[0]) and int(t.split(":")[0]) < 12:
                    time = 1
                elif 12 <= int(t.split(":")[0]) and int(t.split(":")[0]) < 18:
                    time = 2
                elif 18 <= int(t.split(":")[0]) and int(t.split(":")[0]) < 24:
                    time = 3
                elif 0 <= int(t.split(":")[0]) and int(t.split(":")[0]) < 6:
                    time = 4
                da = Day(day)
                Measurement(activity=a, type="char", name="Type", value="Git Commit").save()
                Measurement(activity=a, type='char', name="User", value=github).save()
                Measurement(activity=a, type="char", name="Gcommit_ID", value=r[i]['sha']).save()
                Measurement(activity=a, type="char", name="Gcommit_deletions", value=d).save()
                Measurement(activity=a, type="char", name="Gcommit_addition", value=l).save()
                Measurement(activity=a, type="char", name="Gcommit_nooffiles", value=no).save()
                Measurement(activity=a, type="char", name="Gcommit_timelabel", value=time).save()
                Measurement(activity=a, type="char", name="Gcommit_daylabel", value=da).save()
                Measurement(activity=a, type="char", name="Gcommit_message",
                            value=re.sub('\n', ' ', r[i]['commit']['message']).encode('utf-8', 'ignore')).save()
    return HttpResponse("Done")
コード例 #30
0
def bit(github):
    root = tkinter.Tk()
    root.withdraw()
    bitpassword = simpledialog.askstring("Password", "Enter Password", show='*')
    headers = {'Content-Type': 'application/json'}
    A = bitbuckted_project(github,bitpassword)
    u = users.objects.get(bitbucket=github)
    if Group.objects.filter(name="Commit").exists():
        g = Group.objects.get(name="Commit")
    else:
        Group(name="Commit").save()
        g = Group.objects.get(name="Commit")

    if Group.objects.filter(name="Issue").exists():
        g1 = Group.objects.get(name="Issue")
    else:
        Group(name="Issue").save()
        g1 = Group.objects.get(name="Issue")

    if Entity.objects.filter(name="Commit", group=g).exists():
        e = Entity.objects.get(name="Commit")
    else:
        Entity(name="Commit", group=g).save()
        e = Entity.objects.get(name="Commit")

    if Entity.objects.filter(name="Issue", group=g1).exists():
        e1 = Entity.objects.get(name="Issue")
    else:
        Entity(name="Issue", group=g1).save()
        e1 = Entity.objects.get(name="Issue")

    if Activity.objects.filter(comments="BitBucketCommit").exists():
        a = Activity.objects.get(comments="BitBucketCommit")
    else:
        Activity(comments="BitBucketCommit", entity=e).save()
        a = Activity.objects.get(comments="BitBucketCommit")

    if Activity.objects.filter(comments="BitBucketissue").exists():
        a1 = Activity.objects.get(comments="BitBucketissue")
    else:
        Activity(comments="BitBucketissue", entity=e1).save()
        a1 = Activity.objects.get(comments="BitBucketissue")
    message = []
    count = 0
    for i in A:
        if Project.objects.filter(name=i).exists():
            pr = Project.objects.get(name=i)
            #UserParticipation(user=u, project=pr).save()
        else:
            p = Project(name=i, description=i)
            p.save()
            pr = Project.objects.get(name=i)
            #UserParticipation(user=u, project=pr)
    comm, mess, date, br = bitbuckted_commit(github,bitpassword)
    r = requests.get("https://api.bitbucket.org/2.0/repositories/%s" % github, auth=(github, bitpassword), headers=headers)
    repos = json.loads(r.content)
    for m in repos['values']:
        r = requests.get("https://api.bitbucket.org/2.0/repositories/" + github + "/" + m['name'],auth=(github, bitpassword), headers=headers )
        r = json.loads(r.content)
        if r['has_issues']:
            r = json.loads(requests.get(r['links']['issues']['href'],auth=(github, bitpassword), headers=headers).content)
            for i in r['values']:
                if Measurement.objects.filter(value=i['id']).exists():
                    continue
                else:
                    Measurement(activity=a, type="char", name="BitBucketCommit_ID", value=i['id']).save()
                    Measurement(activity=a, type="char", name="BitBucketCommit_kind", value=i['kind']).save()
                    Measurement(activity=a, type="char", name="BitBucketCommit_name", value=i['repository']['name']).save()
                    Measurement(activity=a, type="char", name="BitBucketCommit_priority", value=i['priority']).save()
                    Measurement(activity=a, type="char", name="BitBucketCommit_title", value=i['title']).save()
    for i in range(len(comm)):
        if Measurement.objects.filter(value=comm[i]).exists():
            continue
        else:
            da = date[i].split("T")[0]
            t = date[i].split("T")[1].split('+')[0]
            da = datetime.datetime.strptime(da, '%Y-%m-%d').strftime('%A')
            if 6 <= int(t.split(":")[0]) and int(t.split(":")[0]) < 12:
                time = 1
            elif 12 <= int(t.split(":")[0]) and int(t.split(":")[0]) < 18:
                time = 2
            elif 18 <= int(t.split(":")[0]) and int(t.split(":")[0]) < 24:
                time = 3
            elif 0 <= int(t.split(":")[0]) and int(t.split(":")[0]) < 6:
                time = 4
            da = Day(da)
            Measurement(activity=a, type="char", name="BitBucketCommit_ID", value=comm[i]).save()
            Measurement(activity=a, type="char", name="BitBucketCommit_Day", value=da).save()
            Measurement(activity=a, type="char", name="BitBucketCommit_Time", value=t).save()
            Measurement(activity=a, type="char", name="BitBucketCommit_branch", value=br[i]).save()
            Measurement(activity=a, type="char", name="BitBucketCommit_message", value=mess[i]).save()
    return HttpResponse(str("Done"))