diff --git a/assopy/models.py b/assopy/models.py index ad02248de..329891be0 100644 --- a/assopy/models.py +++ b/assopy/models.py @@ -145,10 +145,10 @@ def _create_user( user.assopy_id = assopy_id user.save() - user_created.send( - sender=user, - profile_complete=(password is not None) or (token is not None), - ) + # user_created.send( + # sender=user, + # profile_complete=(password is not None) or (token is not None), + # ) return user diff --git a/conference/accounts.py b/conference/accounts.py index feedd91d5..17ebf5933 100644 --- a/conference/accounts.py +++ b/conference/accounts.py @@ -154,6 +154,7 @@ def get_or_create_attendee_profile_for_new_user(user): attendee.uuid = shortuuid.ShortUUID().random(length=7) attendee.save() attendee.setBio('bio') + attendee.save() return attendee diff --git a/conference/cfp.py b/conference/cfp.py index 3ed4a4725..7d82970df 100644 --- a/conference/cfp.py +++ b/conference/cfp.py @@ -27,6 +27,10 @@ ) +# TODO: this should have a better location +ADD_CO_SPEAKER = 'add_co_speaker' + + @login_required def submit_proposal_step1_talk_info(request): """ @@ -144,10 +148,28 @@ def preview_proposal(request, talk_slug): talk = get_object_or_404(Talk, slug=talk_slug) talk_as_dict = dump_relevant_talk_information_to_dict(talk) conf = Conference.objects.current() + + # This might not be best place to do it... + if request.method == 'POST': + if ADD_CO_SPEAKER in request.POST: + speaker, _ = Speaker.objects.get_or_create(user=request.user) + add_speaker_to_talk(speaker, talk) + messages.success(request, "Succesfully added as co-speaker") + + print("Nope", request.POST) + return redirect('.') + + current_user_is_speaker = ( + request.user.id + in talk.speakers.all().values_list('user_id', flat=True) + ) + return TemplateResponse(request, "ep19/bs/cfp/preview.html", { "talk": talk, "talk_as_dict": talk_as_dict, "cfp_is_open": conf.cfp(), + "ADD_CO_SPEAKER": ADD_CO_SPEAKER, + "current_user_is_speaker": current_user_is_speaker, }) diff --git a/conference/management/commands/create_initial_data_for_dev.py b/conference/management/commands/create_initial_data_for_dev.py index d29bf1aa6..6d8e69a1e 100644 --- a/conference/management/commands/create_initial_data_for_dev.py +++ b/conference/management/commands/create_initial_data_for_dev.py @@ -67,6 +67,10 @@ def handle(self, *args, **options): active=True, ) + print("setting user_profiles") + for user in alice, bob, cesar: + get_or_create_attendee_profile_for_new_user(user.user) + print("Making some talk proposals") for user in alice, bob, cesar: speaker, _ = Speaker.objects.get_or_create(user=user.user) @@ -75,7 +79,6 @@ def handle(self, *args, **options): talk.created_by = user.user talk.save() add_speaker_to_talk(speaker, talk) - get_or_create_attendee_profile_for_new_user(user.user) def new_page(rev_id, title, **kwargs): try: diff --git a/templates/ep19/bs/cfp/preview.html b/templates/ep19/bs/cfp/preview.html index 701d4026b..d3a6d9721 100644 --- a/templates/ep19/bs/cfp/preview.html +++ b/templates/ep19/bs/cfp/preview.html @@ -42,7 +42,16 @@