def get(self, request, *args, **kwargs): # Redirects user to tracking home page if he doesn't get here from new # charter or event forms try: referer = request.META["HTTP_REFERER"] except KeyError: return redirect("tracking:project_list") allowed_urls = [ re.compile(r"^{}$".format(urlReverse("tracking:charter_add"))), re.compile(r"^{}$".format( urlReverse("tracking:charter_update", kwargs={'pk': kwargs["pk"]}))), re.compile(r"^{}$".format(urlReverse("tracking:event_add"))), re.compile(r"^{}$".format( urlReverse("tracking:event_add_specific", kwargs={'pk': kwargs["pk"]}))), re.compile(r"^{}$".format( urlReverse("tracking:event_update", kwargs={'pk': kwargs["pk"]}))), ] path = urlparse.urlparse(referer).path if any(url.match(path) for url in allowed_urls): return super(SuccessView, self).get(self, *args, **kwargs) else: return redirect("tracking:project_list")
def __init__(self, *args, **kwargs): super(CharterForm, self).__init__(*args, **kwargs) # Alphabetize selections self.fields["countries"].queryset = Country.objects.order_by("name") self.fields["lead_dept"].queryset = Department.objects.order_by("name") # Add custom class and range of selection year = datetime.datetime.now().year self.fields["start_date"] = forms.DateField(widget=SelectDateWidget( years=range(year - 2, year + 10), attrs={"class": "date-input"})) self.fields["end_date"] = forms.DateField(widget=MySelectDateWidget( years=range(year - 2, year + 10), attrs={"class": "date-input"})) # Prep for jQuery select2 transformation self.fields["language"] = forms.CharField(widget=forms.TextInput( attrs={ "class": "language-selector", "data-source-url": urlReverse("names_autocomplete") }), required=True) # Fill out the necessary attribute to display the selected language info # if the form already has it. if self.instance.pk: lang = self.instance.language if lang: fill_search_language(self, "language", lang) elif self.data.get("language", None): try: lang = Language.objects.get(pk=self.data["language"]) fill_search_language(self, "language", lang) except: pass
def __init__(self, *args, **kwargs): super(CharterForm, self).__init__(*args, **kwargs) # Alphabetize selections self.fields["countries"].queryset = Country.objects.order_by("name") self.fields["lead_dept"].queryset = Department.objects.order_by("name") # Add custom class and range of selection year = datetime.datetime.now().year self.fields["start_date"] = forms.DateField( widget=SelectDateWidget(years=range(year - 2, year + 10), attrs={"class": "date-input"}) ) self.fields["end_date"] = forms.DateField( widget=MySelectDateWidget(years=range(year - 2, year + 10), attrs={"class": "date-input"}) ) # Prep for jQuery select2 transformation self.fields["language"] = forms.CharField( widget=forms.TextInput( attrs={"class": "language-selector", "data-source-url": urlReverse("names_autocomplete")} ), required=True, ) # Fill out the necessary attribute to display the selected language info # if the form already has it. if self.instance.pk: lang = self.instance.language if lang: fill_search_language(self, "language", lang) elif self.data.get("language", None): try: lang = Language.objects.get(pk=self.data["language"]) fill_search_language(self, "language", lang) except: pass
def get_form(self, step=None, data=None, files=None): if step is None: step = self.steps.current if step == "0" and self.request.POST: # Create array container for field names charter_fields = [] # Iterate through post data... for key in sorted(data): # ... to look for our language fields and add them to the array if key.startswith("0-language"): charter_fields.append(key) # Create a a dictionary of the field name and field definition for every language fields we have attrs = dict((field, forms.CharField( label="Charter", max_length=200, widget=forms.TextInput( attrs={ "class": "language-selector-marked form-control", "data-source-url": urlReverse("tracking:charters_autocomplete"), "value": data[field], } ), required=True, )) for field in charter_fields) # Dynamically create a new Form object with the field definitions NewForm = type("NewForm", (MultiCharterEventForm1,), attrs) # Bind modified posted data to the new form form = NewForm(data) else: # Otherwise, returns a form that would have been returned form = super(MultiCharterEventView, self).get_form(step, data, files) return form
def loginView(request): if request.method == 'GET': return render(request, 'user/login.html', { 'page_title': '»Login', }) user = authenticate(username=request.POST['username'], password=request.POST['password']) if user is not None: # the password verified for the user if user.is_active: baseUrl = urlReverse('base-view') nextUrl = request.GET.get('next', baseUrl) login(request, user) print('---- login user: '******' redirect to ' + nextUrl) Log.log_action(request, "ورود به سامانه") return HttpResponseRedirect(nextUrl) else: # print("The password is valid, but the account has been disabled!") return render(request, 'user/login.html', { 'page_title': 'Login', 'invalidLogin': True, 'errorMessage': 'Account has been deactivated.' }) else: # the authentication system was unable to verify the username and password return render(request, 'user/login.html', { 'page_title': 'Login', 'invalidLogin': True, 'errorMessage': 'Invalid username or password.' })
def rateKnowledgeAJ(request, knowledge_id): user = users.models.getKnowledgeUser(request.user) kn = get_object_or_404(knowledge.models.Knowledge, pk=knowledge_id) if user.privilege < kn.access: return HttpResponseForbidden('access denied.') vote = request.GET['vote'] kn.rate(user, (vote == 'up')) # try: # rate = knowledge.models.Rate.objects.get(knowledge=kn, voter=user) # except: # rate = knowledge.models.Rate() # rate.knowledge = kn # rate.voter = user # # rate.up = # rate.save() # # print('rate:') # print(rate) Log.log_action(request, 'به دانش ' + kn.subject + ' رتبه داده شد.') return HttpResponseRedirect( urlReverse('show-knowledge', kwargs={'knowledge_id': kn.id}))
def showSpecialprivilageRequest(request): success = False if request.method == 'GET': form = SpecialPrivilegeForm() if request.method == 'POST': form = SpecialPrivilegeForm(request.POST) print('---- validating form') if form.is_valid(): print('---- valid form') mod = form.save(commit=False) kuser = users.models.getKnowledgeUser(request.user) mod.user = kuser mod.url = urlReverse('show-user-profile', kwargs={'user_id': kuser.id}) mod.save() success = True Log.log_action(request,'درخواست دسترسی ویژه ثبت شد.') else : print('---- invalid form') return render(request, 'user/show-special-privilage-request.html', addUserInfoContext(request, { 'page_title': 'Special privilege request', 'form': form, 'success': success }))
def __init__(self, pk="-1", *args, **kwargs): super(EventForm, self).__init__(*args, **kwargs) # Alphabetize items in selection self.fields = determine_widget( self.fields, ["departments", "hardware", "software", "translation_methods", "output_target", "publication"], 9, ) self.fields["departments"].queryset = Department.objects.order_by("name") self.fields["hardware"].queryset = Hardware.objects.order_by("name") self.fields["software"].queryset = Software.objects.order_by("name") self.fields["translation_methods"].queryset = TranslationMethod.objects.order_by("name") self.fields["output_target"].queryset = Output.objects.order_by("name") self.fields["publication"].queryset = Publication.objects.order_by("name") # Add custom class and determine the range of selection year = datetime.datetime.now().year self.fields["start_date"] = forms.DateField( widget=SelectDateWidget(years=range(year - 2, year + 10), attrs={"class": "date-input"}) ) self.fields["end_date"] = forms.DateField( widget=MySelectDateWidget(years=range(year - 2, year + 10), attrs={"class": "date-input"}) ) # Prep charter field for jQuery select2 transformation # Preserve the "pk" arg in the element's data attr if there's any self.fields["charter"] = forms.CharField( widget=forms.TextInput( attrs={ "class": "language-selector", "data-source-url": urlReverse("tracking:charters_autocomplete"), "data-charter-pk": pk if pk != "-1" else "", } ), required=True, ) # Fill out the charter selection with necessary info if ... # ... the form is bound to a model ??? if self.instance.pk: charter = self.instance.charter if charter: fill_search_charter(self, "charter", charter) # ... the form is posted back ... elif self.data.get("charter"): # Prioritize getting the charter "pk" from widget attribute pk = self.fields["charter"].widget.attrs["data-charter-pk"] if pk == "": pk = self.data.get("charter") try: charter = Charter.objects.get(pk=int(pk)) fill_search_charter(self, "charter", charter) except Charter.DoesNotExist: # If there's no charter, there's nothing to do pass # ... the URL provides a "pk" arg. elif int(pk) >= 0: try: charter = Charter.objects.get(id=pk) fill_search_charter(self, "charter", charter) except Charter.DoesNotExist: # If there's no charter, there's nothing to do pass
def rateKnowledgeAJ(request, knowledge_id): user = users.models.getKnowledgeUser(request.user) kn = get_object_or_404(knowledge.models.Knowledge, pk=knowledge_id) if user.privilege < kn.access: return HttpResponseForbidden('access denied.') vote = request.GET['vote'] kn.rate(user, (vote == 'up')) # try: # rate = knowledge.models.Rate.objects.get(knowledge=kn, voter=user) # except: # rate = knowledge.models.Rate() # rate.knowledge = kn # rate.voter = user # # rate.up = # rate.save() # # print('rate:') # print(rate) Log.log_action(request, 'به دانش ' + kn.subject + ' رتبه داده شد.') return HttpResponseRedirect(urlReverse('show-knowledge', kwargs={'knowledge_id': kn.id}))
def __init__(self, pk="-1", *args, **kwargs): super(EventForm, self).__init__(*args, **kwargs) # Alphabetize items in selection self.fields = determine_widget(self.fields, [ "departments", "hardware", "software", "translation_methods", "output_target", "publication" ], 9) self.fields["departments"].queryset = Department.objects.order_by( "name") self.fields["hardware"].queryset = Hardware.objects.order_by("name") self.fields["software"].queryset = Software.objects.order_by("name") self.fields[ "translation_methods"].queryset = TranslationMethod.objects.order_by( "name") self.fields["output_target"].queryset = Output.objects.order_by("name") self.fields["publication"].queryset = Publication.objects.order_by( "name") # Add custom class and determine the range of selection year = datetime.datetime.now().year self.fields["start_date"] = forms.DateField(widget=SelectDateWidget( years=range(year - 2, year + 10), attrs={"class": "date-input"})) self.fields["end_date"] = forms.DateField(widget=MySelectDateWidget( years=range(year - 2, year + 10), attrs={"class": "date-input"})) # Prep charter field for jQuery select2 transformation # Preserve the "pk" arg in the element's data attr if there's any self.fields["charter"] = forms.CharField(widget=forms.TextInput( attrs={ "class": "language-selector", "data-source-url": urlReverse( "tracking:charters_autocomplete"), "data-charter-pk": pk if pk != "-1" else "" }), required=True) # Fill out the charter selection with necessary info if ... # ... the form is bound to a model ??? if self.instance.pk: charter = self.instance.charter if charter: fill_search_charter(self, "charter", charter) # ... the form is posted back ... elif self.data.get("charter"): # Prioritize getting the charter "pk" from widget attribute pk = self.fields["charter"].widget.attrs["data-charter-pk"] if pk == "": pk = self.data.get("charter") try: charter = Charter.objects.get(pk=int(pk)) fill_search_charter(self, "charter", charter) except Charter.DoesNotExist: # If there's no charter, there's nothing to do pass # ... the URL provides a "pk" arg. elif int(pk) >= 0: try: charter = Charter.objects.get(id=pk) fill_search_charter(self, "charter", charter) except Charter.DoesNotExist: # If there's no charter, there's nothing to do pass
def downloadPDF(request, file_name): if request.user.is_authenticated(): file = open('static/dist/files/{}'.format(file_name), 'rb') response = HttpResponse(file, content_type="application/pdf") response["Content-Disposition"] = "attachment; filename={}".format(file_name) return response else: return HttpResponseRedirect(urlReverse("tracking:project_list"))
def __init__(self, *args, **kwargs): super(MultiCharterForm, self).__init__(*args, **kwargs) # self.fields["language"] = forms.CharField(widget=forms.TextInput( attrs={ "class": "language-selector-marked", "data-source-url": urlReverse("names_autocomplete") }), required=True)
def __init__(self, *args, **kwargs): super(MultiCharterForm, self).__init__(*args, **kwargs) # self.fields["language"] = forms.CharField( widget=forms.TextInput( attrs={"class": "language-selector-marked", "data-source-url": urlReverse("names_autocomplete")} ), required=True, )
def form_valid(self, form): self.create_new_item(self.request.session.get("new_item_info"), self.request.POST) send_mail( 'tD New Item', 'Some new items needs to be added to the event.' + str(self.request.POST), self.request.user.email, ['*****@*****.**'], fail_silently=False ) messages.success(self.request, "Yes! Your submission info has been updated. If there's any problem with your submission, you'll be contacted via email by the admin.") return HttpResponseRedirect(urlReverse("tracking:project_list"))
def get(self, request, *args, **kwargs): # Redirects user to tracking home page if he doesn't get here from new # charter or event forms try: referer = request.META["HTTP_REFERER"] except KeyError: return redirect("tracking:project_list") allowed_urls = [ re.compile(r"^{}$".format(urlReverse("tracking:charter_add"))), re.compile(r"^{}$".format(urlReverse("tracking:charter_update", kwargs={'pk': kwargs["pk"]}))), re.compile(r"^{}$".format(urlReverse("tracking:event_add"))), re.compile(r"^{}$".format(urlReverse("tracking:event_add_specific", kwargs={'pk': kwargs["pk"]}))), re.compile(r"^{}$".format(urlReverse("tracking:event_update", kwargs={'pk': kwargs["pk"]}))), ] path = urlparse.urlparse(referer).path if any(url.match(path) for url in allowed_urls): return super(SuccessView, self).get(self, *args, **kwargs) else: return redirect("tracking:project_list")
def form_valid(self, form): self.create_new_item(self.request.session.get("new_item_info"), self.request.POST) send_mail('tD New Item', 'Some new items needs to be added to the event.' + str(self.request.POST), self.request.user.email, ['*****@*****.**'], fail_silently=False) messages.success( self.request, "Yes! Your submission info has been updated. If there's any problem with your submission, you'll be contacted via email by the admin." ) return HttpResponseRedirect(urlReverse("tracking:project_list"))
def __init__(self, *args, **kwargs): super(MultiCharterStarter, self).__init__(*args, **kwargs) # Add initial language field. This field's HTML name will be prefixed with "0-" # by FormWizard and will be overriden by a new form in the MultiCharterEventView. self.fields["language_0"] = forms.CharField( label="Charter", max_length=200, widget=forms.TextInput( attrs={ "class": "language-selector-marked form-control", "data-source-url": urlReverse("tracking:charters_autocomplete"), } ), required=True, )
def __init__(self, *args, **kwargs): super(MultiCharterStarter, self).__init__(*args, **kwargs) # Add initial language field. This field's HTML name will be prefixed with "0-" # by FormWizard and will be overriden by a new form in the MultiCharterEventView. self.fields["language_0"] = forms.CharField( label="Charter", max_length=200, widget=forms.TextInput( attrs={ "class": "language-selector-marked form-control", "data-source-url": urlReverse("tracking:charters_autocomplete"), }), required=True, )
def __init__(self, *args, **kwargs): super(CharterForm, self).__init__(*args, **kwargs) self.fields["lead_dept"].queryset = Department.objects.order_by("name") self.fields["partner"].queryset = Partner.objects.order_by("name") self.fields["start_date"] = BSDateField() self.fields["end_date"] = BSDateField() self.fields["language"] = LanguageCharField(urlReverse("names_autocomplete")) # Fill out the necessary attribute to display the selected language info # if the form already has it. try: lang = None if self.instance.pk: lang = self.instance.language elif self.data.get("language", None): lang = Language.objects.get(pk=self.data["language"]) elif kwargs.get("initial") is not None and kwargs["initial"].get("language") is not None: lang = Language.objects.get(pk=kwargs["initial"]["language"]) fill_search_language(self, "language", lang) except Language.DoesNotExist: pass
def get_form(self, step=None, data=None, files=None): if step is None: step = self.steps.current if step == "0" and self.request.POST: # Create array container for field names charter_fields = [] # Iterate through post data... for key in sorted(data): # ... to look for our language fields and add them to the array if key.startswith("0-language"): charter_fields.append(key) # Create a a dictionary of the field name and field definition for every language fields we have attrs = dict( (field, forms.CharField( label="Charter", max_length=200, widget=forms.TextInput( attrs={ "class": "language-selector-marked form-control", "data-source-url": urlReverse("tracking:charters_autocomplete"), "value": data[field], }), required=True, )) for field in charter_fields) # Dynamically create a new Form object with the field definitions NewForm = type("NewForm", (MultiCharterEventForm1, ), attrs) # Bind modified posted data to the new form form = NewForm(data) else: # Otherwise, returns a form that would have been returned form = super(MultiCharterEventView, self).get_form(step, data, files) return form
def logoutAj(request): print('logout user') logout(request) return HttpResponseRedirect(urlReverse('login'))
def __init__(self, *args, **kwargs): super(MultiCharterForm, self).__init__(*args, **kwargs) self.fields["language"] = LanguageCharField(urlReverse("names_autocomplete"), "language-selector-marked")