def fire_activity(sender, **kwargs): instance = kwargs.get('instance', None) created = kwargs.get('created', False) is_page = isinstance(instance, Page) is_comment = isinstance(instance, PageComment) if created and (is_page or is_comment): # Send notification. if is_comment and instance.page.slug == 'sign-up': instance.send_sign_up_notification() return else: send_content_notification(instance, is_comment) # Fire activity. activity = Activity( actor=instance.author, verb='http://activitystrea.ms/schema/1.0/post', target_object=instance, ) activity.target_project = instance.project activity.save() elif not created and is_page and instance.publish: if instance.deleted: verb = 'http://activitystrea.ms/schema/1.0/delete' else: verb = 'http://activitystrea.ms/schema/1.0/update' activity = Activity( actor=instance.author, verb=verb, target_object=instance, ) activity.target_project = instance.project activity.save()
def create_activity_entry(self, entry, sender, activity_prefix=None): """Create activity feed entries for the provided feed entry.""" object_type = None if activity_prefix: object_type = self.get_namespaced_attr(entry, activity_prefix, 'object-type') if not object_type: object_type = object_types['article'] title = getattr(entry, 'title', None) uri = getattr(entry, 'link', None) if not title: title = entry.get('title') if not uri: uris = entry.get('links') if uris: uri = uris[0].get('href') if not (title and uri): return for link in sender.link_set.all(): remote_obj = RemoteObject(link=link, title=title, uri=uri, object_type=object_type) remote_obj.save() activity = Activity(actor=link.user, verb=verbs['share'], target_object=remote_obj) if link.project: activity.scope_object = link.project activity.save()
def handle(self, *args, **options): """ This function generates dummy data for our User and Activity model. """ records = [] for _ in range(10): kwargs = { 'real_name': names.get_full_name(), 'tz': self.random_timezone(), } record = User(**kwargs) records.append(record) User.objects.bulk_create(records) total_objects = len(User.objects.all()) records = [] for _ in range(30): kwargs1 = { 'start_time': self.random_datetime(), 'end_time': self.random_datetime(), 'userid_id': random.randint(1, total_objects) } record = Activity(**kwargs1) records.append(record) Activity.objects.bulk_create(records) self.stdout.write(self.style.SUCCESS('Records saved successfully.'))
def create_activity_entry(self, entry, sender, activity_prefix=None): """Create activity feed entries for the provided feed entry.""" verb, object_type = None, None if activity_prefix: verb = self.get_namespaced_attr(entry, activity_prefix, 'verb') object_type = self.get_namespaced_attr(entry, activity_prefix, 'object-type') if not verb: verb = 'http://activitystrea.ms/schema/1.0/post' if not object_type: object_type = 'http://activitystrea.ms/schema/1.0/article' title = getattr(entry, 'title', None) uri = getattr(entry, 'link', None) if not (title and uri): self.log.warn("Received pubsub update with no title or uri") return for link in sender.link_set.all(): self.log.info("Creating activity entry for link: %d" % (link.id, )) remote_obj = RemoteObject(link=link, title=title, uri=uri, object_type=object_type) remote_obj.save() activity = Activity(actor=link.user, verb=verb, remote_object=remote_obj) if link.project: activity.target_project = link.project activity.save()
def follow_handler(sender, **kwargs): rel = kwargs.get('instance', None) created = kwargs.get('created', False) if not created or not isinstance(rel, Relationship) or rel.deleted: return activity = Activity(actor=rel.source, verb=verbs['follow'], target_object=rel) recipients = [] if rel.target_user: recipients.append(rel.target_user) else: activity.scope_object = rel.target_project for organizer in rel.target_project.organizers(): if organizer.user != rel.source: recipients.append(organizer.user) activity.save() subject_template = 'relationships/emails/new_follower_subject.txt' body_template = 'relationships/emails/new_follower.txt' context = { 'user': rel.source, 'project': rel.target_project, 'domain': Site.objects.get_current().domain } send_notifications_i18n(recipients, subject_template, body_template, context, notification_category='new-follower')
def status_creation_handler(sender, **kwargs): status = kwargs.get('instance', None) created = kwargs.get('created', False) if not created or not isinstance(status, Status): return # clean html status.status = bleach.clean( status.status, tags=settings.REDUCED_ALLOWED_TAGS, attributes=settings.REDUCED_ALLOWED_ATTRIBUTES, strip=True) status.save() # fire activity activity = Activity( actor=status.author, verb='http://activitystrea.ms/schema/1.0/post', status=status, ) if status.project: activity.target_project = status.project if status.in_reply_to: activity.parent = status.in_reply_to activity.save() # Send notifications. if status.project: status.send_wall_notification()
def test_can_crate_activity_with_complete_set_of_data(self): """ tests if activity can have sections containing exercises and sets """ start_date = time = timezone.now() activity_type = Activity.STRENGTH name = 'Test Training' new_activity = Activity( start_date=start_date, activity_type=activity_type, name=name, posted_by=self.user1, ) new_activity.save() section_data = StrengthSections(section_name='MAIN', activity=new_activity) section_data.save() exercise = Exercise(exercise_name="PUSH UP", section=section_data) exercise.save() ex_set = ExerciseSet(exercise=exercise, weights=10, reps=10, notes='Notes') ex_set.save() self.assertEqual(new_activity.get_sections().count(), 1) self.assertEqual(section_data.get_exercises().count(), 1) self.assertEqual(exercise.get_sets().count(), 1) self.assertEqual(ex_set.exercise.pk, exercise.pk)
def import_from_old_site(request): user = request.user.get_profile() if request.method == 'POST': form = project_forms.ImportProjectForm(request.POST) if form.is_valid(): course = form.cleaned_data['course'] #CS - too much logic in view project = Project(name=course['name'], kind=course['kind'], short_description=course['short_description'], long_description=course['long_description'], imported_from=course['slug']) project.save() act = Activity(actor=user, verb=verbs['post'], scope_object=project, target_object=project) act.save() participation = Participation(project=project, user=user, organizing=True) participation.save() new_rel, created = Relationship.objects.get_or_create(source=user, target_project=project) new_rel.deleted = False new_rel.save() if course['detailed_description']: detailed_description_content = course['detailed_description'] else: detailed_description_content = render_to_string( "projects/detailed_description_initial_content.html", {'project': project}) detailed_description = Page(title=_('Full Description'), slug='full-description', content=detailed_description_content, listed=False, author_id=user.id, project_id=project.id) detailed_description.save() project.detailed_description_id = detailed_description.id sign_up = Signup(between_participants=course['sign_up'], author_id=user.id, project_id=project.id) sign_up.save() project.save() for title, content in course['tasks']: new_task = Page(title=title, content=content, author=user, project=project) new_task.save() for name, url in course['links']: new_link = Link(name=name, url=url, user=user, project=project) new_link.save() project.create() messages.success(request, _('The %s has been imported.') % project.kind.lower()) return http.HttpResponseRedirect(reverse('projects_show', kwargs={ 'slug': project.slug, })) else: msg = _("Problem importing the study group, course, ...") messages.error(request, msg) else: form = project_forms.ImportProjectForm() return render_to_response('projects/project_import.html', { 'form': form, 'import_tab': True}, context_instance=RequestContext(request))
def follow_handler(sender, **kwargs): rel = kwargs.get('instance', None) if not isinstance(rel, Relationship): return user_subject = _("%(name)s is following you on Drumbeat!" % { 'name': rel.source.name, }) project_subject = _("%(name)s is following your project on Drumbeat!" % { 'name': rel.source.name, }) activity = Activity(actor=rel.source, verb='http://activitystrea.ms/schema/1.0/follow') subject = _(u"%(name)s is now following") if rel.target_user: activity.target_user = rel.target_user user = rel.target_user pref_key = 'no_email_new_follower' subject = user_subject else: activity.project = rel.target_project user = rel.target_project.created_by pref_key = 'no_email_new_project_follower' subject = project_subject activity.save() preferences = AccountPreferences.objects.filter(user=user) for pref in preferences: if pref.value and pref.key == pref_key: return body = render_to_string("relationships/emails/new_follower.txt", { 'user': rel.source, 'project': rel.target_project, }) SendUserEmail.apply_async((user, subject, body))
def create_activity_entry(self, entry, sender, activity_prefix=None): """Create activity feed entries for the provided feed entry.""" verb, object_type = None, None if activity_prefix: verb = self.get_namespaced_attr( entry, activity_prefix, 'verb') object_type = self.get_namespaced_attr( entry, activity_prefix, 'object-type') if not verb: verb = 'http://activitystrea.ms/schema/1.0/post' if not object_type: object_type = 'http://activitystrea.ms/schema/1.0/article' title = getattr(entry, 'title', None) uri = getattr(entry, 'link', None) if not title: title = entry.get('title') if not uri: uris = entry.get('links') if uris: uri = uris[0].get('href') if not (title and uri): return for link in sender.link_set.all(): remote_obj = RemoteObject( link=link, title=title, uri=uri, object_type=object_type) remote_obj.save() activity = Activity( actor=link.user, verb=verb, remote_object=remote_obj) if link.project: activity.target_project = link.project activity.save()
def setUp(self): self.activities_data = [] self.activities = [] self.students_data = [] self.students = [] # 生成三个活动 for i in range(0, 3): activity_data = get_activity_data() activity = Activity(**activity_data) activity.save() self.activities_data.append(activity_data) self.activities.append(activity) # 生成8个学生 company_data = get_company_data() company = Company(**company_data) company.save() for i in range(0, 8): # make pylint happy if i == -1: pass student_data = get_student_data() student = Student(company=company, **student_data) student.save() self.students_data.append(student_data) self.students.append(student)
def create(request, category=None): user = request.user.get_profile() if request.method == 'POST': form = project_forms.ProjectForm(category, request.POST) image_form = None if form.is_valid(): project = form.save() if category: project.category = category image_form = project_forms.ProjectImageForm(request.POST, request.FILES, instance=project) if image_form.is_valid(): image_form.save() project.set_duration(form.cleaned_data['duration'] or 0) #CS - too much logic in view act = Activity(actor=user, verb=verbs['post'], scope_object=project, target_object=project) act.save() participation = Participation(project=project, user=user, organizing=True) participation.save() new_rel, created = Relationship.objects.get_or_create(source=user, target_project=project) new_rel.deleted = False new_rel.save() detailed_description_content = render_to_string( "projects/detailed_description_initial_content.html", {'project': project}) detailed_description = Page(title=_('Full Description'), slug='full-description', content=detailed_description_content, listed=False, author_id=user.id, project_id=project.id) if project.category != Project.STUDY_GROUP: detailed_description.collaborative = False detailed_description.save() project.detailed_description_id = detailed_description.id sign_up = Signup(author_id=user.id, project_id=project.id) sign_up.save() project.create() messages.success(request, _('The %s has been created.') % project.kind.lower()) return http.HttpResponseRedirect(reverse('projects_create_tasks', kwargs={'slug': project.slug,})) else: msg = _("Problem creating the course") messages.error(request, msg) else: form = project_forms.ProjectForm(category, initial={'test':True}) image_form = project_forms.ProjectImageForm() context = { 'form': form, 'image_form': image_form, 'category': category, 'is_challenge': (category == Project.CHALLENGE), } return render_to_response('projects/project_create_overview.html', context, context_instance=RequestContext(request))
def create(request): user = request.user.get_profile() if request.method == 'POST': form = project_forms.CreateProjectForm(request.POST) if form.is_valid(): project = form.save() act = Activity(actor=user, verb=verbs['post'], scope_object=project, target_object=project) act.save() participation = Participation(project=project, user=user, organizing=True) participation.save() new_rel, created = Relationship.objects.get_or_create( source=user, target_project=project) new_rel.deleted = False new_rel.save() detailed_description_content = render_to_string( "projects/detailed_description_initial_content.html", {}) detailed_description = Page(title=_('Full Description'), slug='full-description', content=detailed_description_content, listed=False, author_id=user.id, project_id=project.id) detailed_description.save() project.detailed_description_id = detailed_description.id sign_up_content = render_to_string( "projects/sign_up_initial_content.html", {}) sign_up = Page(title=_('Sign-Up'), slug='sign-up', content=sign_up_content, listed=False, editable=False, author_id=user.id, project_id=project.id) sign_up.save() project.sign_up_id = sign_up.id project.create() messages.success( request, _('The %s has been created.') % project.kind.lower()) return http.HttpResponseRedirect( reverse('projects_show', kwargs={ 'slug': project.slug, })) else: msg = _("Problem creating the study group, course, ...") messages.error(request, msg) else: form = project_forms.CreateProjectForm() return render_to_response('projects/project_edit_summary.html', { 'form': form, 'new_tab': True, }, context_instance=RequestContext(request))
def follow_handler(sender, **kwargs): rel = kwargs.get('instance', None) created = kwargs.get('created', False) if not created or not isinstance(rel, Relationship): return activity = Activity(actor=rel.source, verb='http://activitystrea.ms/schema/1.0/follow') receipts = [] ulang = get_language() subject = {} body = {} if rel.target_user: activity.target_user = rel.target_user for l in settings.SUPPORTED_LANGUAGES: activate(l[0]) subject[l[0]] = ugettext( '%(display_name)s is following you on P2PU!') % { 'display_name': rel.source.display_name, } preferences = AccountPreferences.objects.filter(user=rel.target_user) for pref in preferences: if pref.value and pref.key == 'no_email_new_follower': break else: receipts.append(rel.target_user) else: activity.project = rel.target_project for l in settings.SUPPORTED_LANGUAGES: activate(l[0]) subject[l[0]] = ugettext( '%(display_name)s is following %(project)s on P2PU!') % { 'display_name': rel.source.display_name, 'project': rel.target_project } for organizer in rel.target_project.organizers(): if organizer.user != rel.source: preferences = AccountPreferences.objects.filter( user=organizer.user) for pref in preferences: if pref.value and pref.key == 'no_email_new_project_follower': break else: receipts.append(organizer.user) activity.save() for l in settings.SUPPORTED_LANGUAGES: activate(l[0]) body[l[0]] = render_to_string( "relationships/emails/new_follower.txt", { 'user': rel.source, 'project': rel.target_project, 'domain': Site.objects.get_current().domain, }) activate(ulang) for user in receipts: pl = user.preflang or settings.LANGUAGE_CODE SendUserEmail.apply_async((user, subject[pl], body[pl]))
def activity_manage(request): context = { 'select': 'activity_manage', } if request.method == 'GET': results = Activity.objects.all() context['results'] = results return render(request, "activity/activity_manage.html", context=context) else: if request.POST['type'] == "delete": existing_activity = Activity.objects.select_for_update().get( id=request.POST['id']) existing_activity_records = ActivityRecord.objects.select_for_update( ).filter(activity_name=existing_activity.activity_name) with transaction.atomic(): existing_activity.delete() existing_activity_records.delete() else: if request.POST['id'] is not "": existing_activity = Activity.objects.select_for_update().get( id=request.POST['id']) existing_activity_records = ActivityRecord.objects.select_for_update( ).filter(activity_name=existing_activity.activity_name) with transaction.atomic(): existing_activity.activity_name = request.POST[ 'activity_name'] existing_activity.time_length = request.POST['time_length'] existing_activity.max_person = request.POST['max_person'] existing_activity.activity_time = request.POST[ 'activity_time'] existing_activity.close_time = request.POST['close_time'] existing_activity.person_in_charge = request.POST[ 'person_in_charge'] existing_activity.content = request.POST['content'] for record in existing_activity_records: record.activity_name = request.POST['activity_name'] record.time_length = request.POST['time_length'] record.activity_time = request.POST['activity_time'] record.close_time = request.POST['close_time'] record.save() existing_activity.save() else: new_record = Activity( activity_name=request.POST['activity_name'], time_length=request.POST['time_length'], close_time=request.POST['close_time'], activity_time=request.POST['activity_time'], max_person=request.POST['max_person'], content=request.POST['content'], publisher=request.POST['publisher'], person_in_charge=request.POST['person_in_charge'], ) new_record.save() return HttpResponse("success")
def fire_activity(sender, **kwargs): instance = kwargs.get('instance', None) created = kwargs.get('created', False) is_page = isinstance(instance, Page) if created and is_page: send_email_notification(instance) # Fire activity. activity = Activity(actor=instance.author, verb=verbs['post'], target_object=instance, scope_object=instance.project) activity.save() elif (not created and is_page and not instance.minor_update \ and not instance.deleted): activity = Activity(actor=instance.author, verb=verbs['update'], target_object=instance, scope_object=instance.project) activity.save()
def sync_actions(): n = 0 for doc in db.activities.find(no_cursor_timeout=True): cid = doc.get('campaign_id') lid = doc.get('list_id') email = doc.get('email_address') campaign = Campaign.objects.get(campaign_id=cid) elist = List.objects.get(list_id=lid) customer = Customer.objects.get(list=elist, email=email) # sent event obj = Activity(campaign=campaign, customer=customer, list=elist) obj.action = ACTION_MAP['sent'] obj.timestamp = campaign.send_time save(obj) # other event activities = doc.get('activity') for elem in activities: timestamp = elem.get('timestamp') if type(timestamp) == str: # 2015-10-13T13:31:51+00:00 timestamp = parser.parse(timestamp) url = elem.get('url', None) ip = elem.get('ip', None) action = elem.get('action') obj = Activity() obj.campaign = campaign obj.customer = customer obj.list = elist obj.action = ACTION_MAP[action] obj.timestamp = timestamp obj.ip = ip obj.url = url obj.src = 'm' save(obj) n += 1 if n % 10000 == 0: print(n)
def create(request): user = request.user.get_profile() school = None if request.method == 'POST': form = project_forms.CreateProjectForm(request.POST) if form.is_valid(): project = form.save() act = Activity(actor=user, verb='http://activitystrea.ms/schema/1.0/post', project=project, target_project=project) act.save() participation = Participation(project= project, user=user, organizing=True) participation.save() new_rel = Relationship(source=user, target_project=project) try: new_rel.save() except IntegrityError: pass detailed_description_content = render_to_string( "projects/detailed_description_initial_content.html", {}) detailed_description = Page(title=_('Full Description'), slug='full-description', content=detailed_description_content, listed=False, author_id=user.id, project_id=project.id) detailed_description.save() project.detailed_description_id = detailed_description.id sign_up_content = render_to_string("projects/sign_up_initial_content.html", {}) sign_up = Page(title=_('Sign-Up'), slug='sign-up', content=sign_up_content, listed=False, editable=False, author_id=user.id, project_id=project.id) sign_up.save() project.sign_up_id = sign_up.id project.save() messages.success(request, _('The study group has been created.')) return http.HttpResponseRedirect(reverse('projects_show', kwargs={ 'slug': project.slug, })) else: messages.error(request, _("There was a problem creating the study group.")) else: if 'school' in request.GET: try: school = School.objects.get(slug=request.GET['school']) form = project_forms.CreateProjectForm(initial={'school': school}) except School.DoesNotExist: return http.HttpResponseRedirect(reverse('projects_create')) else: form = project_forms.CreateProjectForm() return render_to_response('projects/project_edit_summary.html', { 'form': form, 'new_tab': True, 'school': school, }, context_instance=RequestContext(request))
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())
def fire_activity(sender, **kwargs): instance = kwargs.get('instance', None) created = kwargs.get('created', False) is_page = isinstance(instance, Page) is_comment = isinstance(instance, PageComment) if created and (is_page or is_comment): # Send notification. if is_comment and instance.page.slug == 'sign-up': instance.send_sign_up_notification() return else: send_content_notification(instance, is_comment) # Fire activity. activity = Activity(actor=instance.author, verb=verbs['post'], target_object=instance, scope_object=instance.project) activity.save() elif (not created and is_page and not instance.minor_update \ and not instance.deleted): activity = Activity(actor=instance.author, verb=verbs['update'], target_object=instance, scope_object=instance.project) activity.save()
def fire_activity(sender, **kwargs): instance = kwargs.get('instance', None) created = kwargs.get('created', False) is_comment = isinstance(instance, PageComment) if created and is_comment: instance.send_comment_notification() if instance.page_object.comments_fire_activity(): from activity.models import Activity activity = Activity(actor=instance.author, verb=verbs['post'], target_object=instance, scope_object=instance.scope_object) activity.save()
def add_activity(request): if request.POST: act_content = request.POST.get('act_content') user_id = request.POST.get('user_id') print(act_content) try: act_obj = Activity(act_content=act_content, user_id=user_id) act_obj.save() return render(request, 'activity/add.html', {'message': '活动表添加成功'}) except: print('fail to add') return render(request, 'activity/add.html', {'message': '活动表添加失败'}) else: return render(request, 'activity/add.html')
def _test_yelp_data(self, query_type): with open('top10.json', 'r') as f: acts = json.load(f) f.close() for act in acts['businesses']: activity = Activity(name=act['name'], avg_review=act['rating'], phone_number=act['phone'], display_phone=act['display_phone'], url=act['url'], pic_url=act['image_url'], longitude=act['coordinates']['longitude'], latitude=act['coordinates']['latitude'], address1=act['location']['address1'], address2=act['location']['address2'], city=act['location']['city'], state=act['location']['state'], code=act['location']['zip_code'], origin='y') activity.save() urllib.request.urlretrieve( act['image_url'], 'activity/static/media/' + str(activity.ID) + '_pic.jpg') activity.pic_url = str(activity.ID) + '_pic.jpg' with open('activity/static/media/' + str(activity.ID) + '_pic.jpg', 'r+b') as f: with Image.open(f) as image: cover = resizeimage.resize_cover(image, [286, 197]) modal = resizeimage.resize_cover(image, [466, 197]) cover.save( 'activity/static/media/' + str(activity.ID) + '_pic.jpg', image.format) modal.save( 'activity/static/media/modal_' + str(activity.ID) + '_pic.jpg', image.format) activity.save() print('Added activity: ' + str(activity.ID)) #Check if type exists, if it does then add activity to it | else make that type and create the act type if ActivityType.objects.filter(activity_type=query_type).count(): ActivityTypeLine.objects.create( act_type=ActivityType.objects.get( activity_type=query_type), act_id=activity) else: ActivityType.objects.get_or_create(activity_type=query_type) ActivityTypeLine.objects.create( act_type=ActivityType.objects.get( activity_type=query_type), act_id=activity)
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())
def test_can_crate_basic_activity_with_no_sections(self): """ tests if activity can be crated with no additional data """ start_date = time = timezone.now() activity_type = Activity.STRENGTH name = 'Test Training' new_activity = Activity( start_date=start_date, activity_type=activity_type, name=name, posted_by=self.user1, ) new_activity.save() self.assertEqual(new_activity.name, name)
def update_activity(request, act_id): act_obj = Activity.objects.get(act_id=act_id) print(act_obj) context = dict() context['Activity'] = act_obj if request.POST: act_content = request.POST.get('act_content') user_id = request.POST.get('user_id') act_obj = Activity() Activity.objects.filter(act_id=act_id).update(act_content=act_content, user_id=user_id) print('success') return render(request, 'activity/update.html', context) else: return render(request, 'activity/update.html', context)
def status_creation_handler(sender, **kwargs): status = kwargs.get('instance', None) created = kwargs.get('created', False) if not created or not isinstance(status, Status): return # fire activity activity = Activity( actor=status.author, verb=verbs['post'], target_object=status, ) if status.project: activity.scope_object = status.project activity.save()
def fire_activity(sender, **kwargs): instance = kwargs.get('instance', None) created = kwargs.get('created', False) is_comment = isinstance(instance, PageComment) if created and is_comment: from signups.models import SignupAnswer ct = ContentType.objects.get_for_model(SignupAnswer) if instance.page_content_type != ct: statsd.Statsd.increment('comments') if instance.page_object.comments_fire_activity(): from activity.models import Activity activity = Activity(actor=instance.author, verb=verbs['post'], target_object=instance, scope_object=instance.scope_object) activity.save()
def post(self, request): try: # 请求格式错误处理 request_msg = json.loads(request.body) if not isinstance(request_msg, dict): return JsonResponse({"msg": "typeErr_dict"}) except Exception as e: request_msg = {} # 用户登录状态校验 user = checkStatus(request.COOKIES) if not isinstance(user, User): return JsonResponse({"msg": "userErr_unsignIn"}) activity = Activity() activity.activity_name = request_msg.get("activity_name", "") activity.activity_desc = request_msg.get("activity_desc", "") activity_time = request_msg.get("activity_time", "").strip() ymd, hms = activity_time.split(" ") year, month, day = list(map(int, ymd.split("-"))) hour, minute = list(map(int, hms.split(":"))) activity.activity_time = datetime(year, month, day, hour, minute, 0) activity.activity_site = request_msg.get("activity_site", "") activity.limit_num = request_msg.get("limit_num", 0) activity.owner_id = user.id # activity.limit_requirement = request_msg.get("limit_requirement", "") activity.activity_type = request_msg.get("activity_type", "") # 各字段缺失情况处理 if not all([ activity.activity_name, activity.activity_desc, activity.activity_time, activity.activity_site, activity.limit_num, activity.owner_id, activity.activity_type ]): return JsonResponse({"msg": "fieldErr_lose"}) # 数据入库 activity.save() # 创建用户和活动关系映射 uamap = UserActivityMap() uamap.user_id = user.id uamap.activity_id = activity.id uamap.save() return JsonResponse({"msg": "createActivity Successfully"})
def project_creation_handler(sender, **kwargs): project = kwargs.get('instance', None) created = kwargs.get('created', False) if not created or not isinstance(project, Project): return Relationship(source=project.created_by, target_project=project).save() try: from activity.models import Activity act = Activity(actor=project.created_by, verb='http://activitystrea.ms/schema/1.0/post', project=project, target_project=project) act.save() except ImportError: return