def themeitem_add_desktopscreenshot(request): if request.method == "POST": form = DesktopScreenShotForm(request.POST.copy(), request.FILES) flood, timeout = flood_control(request) if form.is_valid() and not flood: item = form.save(commit=False) item.author = request.user item.submit = item.update = datetime.datetime.now() slug = slugify(replace_turkish(item.title)) item.save() for tag in form.cleaned_data["tags"]: t = Tag.objects.get(name=tag) item.tags.add(t) item.slug = str(item.id) + "-" + slug item.save() #create thumbnail thumbnail = Image.open(item.image.path) thumbnail.thumbnail((150, 200), Image.ANTIALIAS) file = ContentFile("") item.thumbnail.save(item.image.path, file, save=True) thumbnail.save(item.thumbnail.path) #TODO: Send e-mail to admins return render_response(request, "tema/themeitem_add_complete.html", locals()) else: tags = [t.pk for t in Tag.objects.filter(name="masaüstü")] form = DesktopScreenShotForm(initial={"tags": tags}) return render_response(request, "tema/themeitem_add_desktopscreenshot.html", locals())
def themeitem_add_desktopscreenshot(request): if request.method == "POST": form = DesktopScreenShotForm(request.POST.copy(), request.FILES) flood, timeout = flood_control(request) if form.is_valid() and not flood: item = form.save(commit=False) item.author = request.user item.submit = item.update = datetime.datetime.now() slug = slugify(replace_turkish(item.title)) item.save() for tag in form.cleaned_data["tags"]: t=Tag.objects.get(name=tag) item.tags.add(t) item.slug = str(item.id) + "-" + slug item.save() #create thumbnail thumbnail = Image.open(item.image.path) thumbnail.thumbnail((150,200), Image.ANTIALIAS) file = ContentFile("") item.thumbnail.save(item.image.path, file, save=True) thumbnail.save(item.thumbnail.path) #TODO: Send e-mail to admins return render_response(request, "tema/themeitem_add_complete.html", locals()) else: tags = [t.pk for t in Tag.objects.filter(name="masaüstü")] form = DesktopScreenShotForm(initial={"tags":tags}) return render_response(request, "tema/themeitem_add_desktopscreenshot.html", locals())
def add_bug(request): if request.method == "POST": form = BugForm(request.POST.copy()) flood, timeout = flood_control(request) if form.is_valid() and not flood: bug = Bug( title=form.cleaned_data["title"], submitter=request.user, description=form.cleaned_data["description"], priority=form.cleaned_data["priority"], assigned_to=BUG_USER, ) bug.save() email_dict = { "bugId": bug.id, "bugTitle": bug.title, "link": bug.get_full_url(), "title": bug.title, "priority": bug.get_priority_display(), "submitter": "%s %s <%s>" % (bug.submitter.first_name, bug.submitter.last_name, bug.submitter.email), "assigned_to": "%s %s <%s>" % (bug.assigned_to.first_name, bug.assigned_to.last_name, bug.assigned_to.email), "description": bug.description, } email_subject = u"[Hata %(bugId)s] Yeni: %(bugTitle)s" email_body = u"""%(link)s Başlık: %(title)s Öncelik: %(priority)s Bildiren: %(submitter)s Atanan: %(assigned_to)s %(description)s """ mail_set = set() mail_set.add(BUG_MAILLIST) mail_set.add(bug.submitter.email) mail_set.add(bug.assigned_to.email) # send mails seperately for subscriber in mail_set: send_mail(email_subject % email_dict, email_body % email_dict, BUG_FROM_EMAIL, [subscriber], fail_silently=True) return HttpResponseRedirect(bug.get_absolute_url()) else: form = BugForm(auto_id=True) return render_response(request, 'bug/bug_add.html', locals())
def themeitem_add_font(request): if request.method == "POST": form = FontForm(request.POST.copy(), request.FILES) flood, timeout = flood_control(request) if form.is_valid() and not flood: item = form.save(commit=False) item.author = request.user item.submit = item.update = datetime.datetime.now() slug = slugify(replace_turkish(item.title)) item.save() for tag in form.cleaned_data["tags"]: t = Tag.objects.get(name=tag) item.tags.add(t) item.slug = str(item.id) + "-" + slug item.save() #create thumbnail twidth = 150 theight = 100 thumbnail = Image.new("RGBA", (twidth, theight)) draw = ImageDraw.Draw(thumbnail) bigfont = ImageFont.truetype(item.font.path, 22) smallfont = ImageFont.truetype(item.font.path, 14) fill = (112, 112, 112) draw.text((5, 5), "Aa Ee Rr", font=bigfont, fill=fill) text_list = ( (30, "Dag basini", u"Dağ başını"), (45, "duman almis,", u"duman almış,"), (60, "Gumus dere", u"Gümüş dere"), (75, "durmaz akar.", u"durmaz akar."), ) for text in text_list: s = draw.textsize(text[1], font=smallfont) x = twidth - s[0] - 5 if item.is_turkish: draw.text((x, text[0]), text[2], font=smallfont, fill=fill) else: draw.text((x, text[0]), text[1], font=smallfont, fill=fill) file = ContentFile("") item.thumbnail.save(item.font.path[:item.font.path.rfind(".")] + ".png", file, save=True) thumbnail.save(item.thumbnail.path) #TODO: Send e-mail to admins return render_response(request, "tema/themeitem_add_complete.html", locals()) else: tags = [t.pk for t in Tag.objects.filter(name="yazıtipi")] form = FontForm(initial={"tags": tags}) return render_response(request, "tema/themeitem_add_font.html", locals())
def detail(request, id): bug = Bug.objects.get(id=id) default_data = { "title": bug.title, "assigned_to": bug.assigned_to.id, "description": bug.description, "status": bug.status, "priority": bug.priority, } bugform = FullBugForm(default_data) if request.method == "POST" and request.user.is_authenticated(): form = CommentForm(request.POST.copy()) flood, timeout = flood_control(request) if form.is_valid() and not flood: comment = Comment( bug = bug, author = request.user, text = form.cleaned_data["text"], ) comment.save() comments = bug.comment_set.all() email_dict = { "bugId": bug.id, "bugTitle": bug.title, "link": bug.get_full_url(), "comment_count": comments.count(), "author": "%s %s <%s>" % (comment.author.first_name, comment.author.last_name, comment.author.email), "date": comment.date, "comment": comment.text, } email_subject = u"[Hata %(bugId)s] %(bugTitle)s" email_body = u"""%(link)s -- Yorum #%(comment_count)s yazan %(author)s %(date)s -- %(comment)s """ mail_set = set() mail_set.add(BUG_MAILLIST) mail_set.add(bug.submitter.email) mail_set.add(bug.assigned_to.email) for comment in comments: mail_set.add(comment.author.email) # send mails seperately for subscriber in mail_set: send_mail(email_subject % email_dict, email_body % email_dict, BUG_FROM_EMAIL, [subscriber], fail_silently=True) else: form = CommentForm() return render_response(request, 'bug/bug_detail.html', locals())
def themeitem_change_desktopscreenshot(request, item_id): object = get_object_or_404(DesktopScreenshot, pk=item_id) if request.user == object.author or request.user.has_perm("can_change_themeitem"): if request.method == "POST": form = DesktopScreenShotForm(request.POST.copy(), request.FILES) flood, timeout = flood_control(request) if flood: render_response(request, "tema/message.html", {"type": "error", "message": "Lütfen %s saniye sonra tekrar deneyiniz." % timeout }) if form.is_valid(): object.title = form.cleaned_data["title"] object.license = form.cleaned_data["license"] object.text = form.cleaned_data["text"] object.origin_url = form.cleaned_data["origin_url"] object.update = datetime.datetime.now() object.image = form.cleaned_data["image"] #change slug slug = slugify(replace_turkish(object.title)) object.slug = str(object.id) + "-" + slug object.save() #create thumbnail thumbnail = Image.open(object.image.path) thumbnail.thumbnail((150,200), Image.ANTIALIAS) file = ContentFile("") object.thumbnail.save(object.image.path, file, save=True) thumbnail.save(object.thumbnail.path) return HttpResponseRedirect(object.get_absolute_url()) else: return render_response(request, "tema/themeitem_change.html", locals()) else: default_data = {"title": object.title, "license": object.license, "text": object.text, "tags": object.tags.all(), "origin_url": object.origin_url, "image": object.image, } form = DesktopScreenShotForm(initial=default_data) return render_response(request, "tema/themeitem_change.html", locals()) else: return render_response(request, "tema/message.html", {"type": "error", "message": "Bu işlemi yapmak için yetkiniz yok."})
def themeitem_add_font(request): if request.method == "POST": form = FontForm(request.POST.copy(), request.FILES) flood, timeout = flood_control(request) if form.is_valid() and not flood: item = form.save(commit=False) item.author = request.user item.submit = item.update = datetime.datetime.now() slug = slugify(replace_turkish(item.title)) item.save() for tag in form.cleaned_data["tags"]: t=Tag.objects.get(name=tag) item.tags.add(t) item.slug = str(item.id) + "-" + slug item.save() #create thumbnail twidth = 150 theight = 100 thumbnail = Image.new("RGBA", (twidth, theight)) draw = ImageDraw.Draw(thumbnail) bigfont = ImageFont.truetype(item.font.path, 22) smallfont = ImageFont.truetype(item.font.path, 14) fill = (112,112,112) draw.text((5, 5), "Aa Ee Rr", font=bigfont, fill=fill) text_list = ( (30, "Dag basini", u"Dağ başını"), (45, "duman almis,", u"duman almış,"), (60, "Gumus dere", u"Gümüş dere"), (75, "durmaz akar.", u"durmaz akar."), ) for text in text_list: s = draw.textsize(text[1], font=smallfont) x = twidth - s[0] - 5 if item.is_turkish: draw.text((x, text[0]), text[2], font=smallfont, fill=fill) else: draw.text((x, text[0]), text[1], font=smallfont, fill=fill) file = ContentFile("") item.thumbnail.save(item.font.path[:item.font.path.rfind(".")]+".png", file, save=True) thumbnail.save(item.thumbnail.path) #TODO: Send e-mail to admins return render_response(request, "tema/themeitem_add_complete.html", locals()) else: tags = [t.pk for t in Tag.objects.filter(name="yazıtipi")] form = FontForm(initial={"tags":tags}) return render_response(request, "tema/themeitem_add_font.html", locals())
def themeitem_add_packagescreenshot(request): if request.method == "POST": form = PackageScreenshotForm(request.POST.copy(), request.FILES) flood, timeout = flood_control(request) if form.is_valid() and not flood: item = form.save(commit=False) item.author = request.user item.submit = item.update = datetime.datetime.now() slug = slugify(replace_turkish(item.title)) #change image file name path, extension = '/'.join(item.image.name.split('/') [:-1]), item.image.name.split('.')[-1] item.image.name = "%s/%s.%s" % (path, item.title, extension) item.save() for tag in form.cleaned_data["tags"]: t = Tag.objects.get(name=tag) item.tags.add(t) item.slug = str(item.id) + "-" + slug item.save() #create thumbnail thumbnail = Image.open(item.image.path) thumbnail.thumbnail((150, 200), Image.ANTIALIAS) file = ContentFile("") item.thumbnail.save(item.image.path, file, save=True) thumbnail.save(item.thumbnail.path) #create thumbnail for package manager s_image = Image.open(item.image.path) s_image.thumbnail((270, 190), Image.ANTIALIAS) file = ContentFile("") item.s_image.save(item.image.path, file, save=True) s_image.save(item.s_image.path) #TODO: Send e-mail to admins return render_response(request, "tema/themeitem_add_complete.html", locals()) else: tags = [t.pk for t in Tag.objects.filter(name="paket görüntüsü")] form = PackageScreenshotForm(initial={"tags": tags}) return render_response(request, "tema/themeitem_add_packagescreenshot.html", locals())
def themeitem_add_wallpaper(request): #TODO: add SVG support WallpaperFileFormSet = formset_factory(WallpaperFileForm) if request.method == "POST": form = WallpaperForm(request.POST.copy()) fileforms = WallpaperFileFormSet(request.POST.copy(), request.FILES) flood, timeout = flood_control(request) if form.is_valid() and fileforms.is_valid() and not flood: item = form.save(commit=False) item.author = request.user item.submit = item.update = datetime.datetime.now() slug = slugify(replace_turkish(item.title)) item.save() for tag in form.cleaned_data["tags"]: t = Tag.objects.get(name=tag) item.tags.add(t) item.slug = str(item.id) + "-" + slug item.save() for form in fileforms.forms: paper = form.save(commit=False) paper.title = "%dx%d" % (paper.image.width, paper.image.height) paper.save() item.title = item.title.replace(paper.title, "") item.save() if form.cleaned_data["create_smaller_wallpapers"]: item.create_smaller_wallpapers(paper) item.papers.add(paper) #create thumbnail from first paper firstpaper = item.papers.all()[0] thumbnail = Image.open(firstpaper.image.path) thumbnail.thumbnail((150, 200), Image.ANTIALIAS) file = ContentFile("") item.thumbnail.save(firstpaper.image.path, file, save=True) thumbnail.save(item.thumbnail.path) #TODO: Send e-mail to admins return render_response(request, "tema/themeitem_add_complete.html", locals()) else: tags = [t.pk for t in Tag.objects.filter(name="duvar kağıdı")] form = WallpaperForm(initial={"tags": tags}) fileforms = WallpaperFileFormSet() return render_response(request, "tema/themeitem_add_wallpaper.html", locals())
def add_bug(request): if request.method == "POST": form = BugForm(request.POST.copy()) flood, timeout = flood_control(request) if form.is_valid() and not flood: bug = Bug( title = form.cleaned_data["title"], submitter = request.user, description = form.cleaned_data["description"], priority = form.cleaned_data["priority"], assigned_to = BUG_USER, ) bug.save() email_dict = { "bugId": bug.id, "bugTitle": bug.title, "link": bug.get_full_url(), "title": bug.title, "priority": bug.get_priority_display(), "submitter": "%s %s <%s>" % (bug.submitter.first_name, bug.submitter.last_name, bug.submitter.email), "assigned_to": "%s %s <%s>" % (bug.assigned_to.first_name, bug.assigned_to.last_name, bug.assigned_to.email), "description": bug.description, } email_subject = u"[Hata %(bugId)s] Yeni: %(bugTitle)s" email_body = u"""%(link)s Başlık: %(title)s Öncelik: %(priority)s Bildiren: %(submitter)s Atanan: %(assigned_to)s %(description)s """ mail_set = set() mail_set.add(BUG_MAILLIST) mail_set.add(bug.submitter.email) mail_set.add(bug.assigned_to.email) # send mails seperately for subscriber in mail_set: send_mail(email_subject % email_dict, email_body % email_dict, BUG_FROM_EMAIL, [subscriber], fail_silently=True) return HttpResponseRedirect(bug.get_absolute_url()) else: form = BugForm(auto_id=True) return render_response(request, 'bug/bug_add.html', locals())
def themeitem_add_packagescreenshot(request): if request.method == "POST": form = PackageScreenshotForm(request.POST.copy(), request.FILES) flood, timeout = flood_control(request) if form.is_valid() and not flood: item = form.save(commit=False) item.author = request.user item.submit = item.update = datetime.datetime.now() slug = slugify(replace_turkish(item.title)) #change image file name path, extension = '/'.join(item.image.name.split('/')[:-1]), item.image.name.split('.')[-1] item.image.name = "%s/%s.%s" % (path, item.title, extension) item.save() for tag in form.cleaned_data["tags"]: t=Tag.objects.get(name=tag) item.tags.add(t) item.slug = str(item.id) + "-" + slug item.save() #create thumbnail thumbnail = Image.open(item.image.path) thumbnail.thumbnail((150, 200), Image.ANTIALIAS) file = ContentFile("") item.thumbnail.save(item.image.path, file, save=True) thumbnail.save(item.thumbnail.path) #create thumbnail for package manager s_image = Image.open(item.image.path) s_image.thumbnail((270, 190), Image.ANTIALIAS) file = ContentFile("") item.s_image.save(item.image.path, file, save=True) s_image.save(item.s_image.path) #TODO: Send e-mail to admins return render_response(request, "tema/themeitem_add_complete.html", locals()) else: tags = [t.pk for t in Tag.objects.filter(name="paket görüntüsü")] form = PackageScreenshotForm(initial={"tags":tags}) return render_response(request, "tema/themeitem_add_packagescreenshot.html", locals())
def themeitem_add_wallpaper(request): #TODO: add SVG support WallpaperFileFormSet = formset_factory(WallpaperFileForm) if request.method == "POST": form = WallpaperForm(request.POST.copy()) fileforms = WallpaperFileFormSet(request.POST.copy(), request.FILES) flood, timeout = flood_control(request) if form.is_valid() and fileforms.is_valid() and not flood: item = form.save(commit=False) item.author = request.user item.submit = item.update = datetime.datetime.now() slug = slugify(replace_turkish(item.title)) item.save() for tag in form.cleaned_data["tags"]: t=Tag.objects.get(name=tag) item.tags.add(t) item.slug = str(item.id) + "-" + slug item.save() for form in fileforms.forms: paper = form.save(commit=False) paper.title = "%dx%d" % (paper.image.width, paper.image.height) paper.save() item.title = item.title.replace(paper.title, "") item.save() if form.cleaned_data["create_smaller_wallpapers"]: item.create_smaller_wallpapers(paper) item.papers.add(paper) #create thumbnail from first paper firstpaper = item.papers.all()[0] thumbnail = Image.open(firstpaper.image.path) thumbnail.thumbnail((150,200), Image.ANTIALIAS) file = ContentFile("") item.thumbnail.save(firstpaper.image.path, file, save=True) thumbnail.save(item.thumbnail.path) #TODO: Send e-mail to admins return render_response(request, "tema/themeitem_add_complete.html", locals()) else: tags = [t.pk for t in Tag.objects.filter(name="duvar kağıdı")] form = WallpaperForm(initial={"tags":tags}) fileforms = WallpaperFileFormSet() return render_response(request, "tema/themeitem_add_wallpaper.html", locals())
def create_cdclient(request): if request.method == "POST": form = CdClientForm(request.POST.copy()) flood, timeout = flood_control(request) if form.is_valid() and not flood: cdClient = form.save() message = loader.get_template("shipit/confirm_email.html").render(Context({"cdClient":cdClient})) mail = EmailMessage("Pardus DVD isteğiniz", message, "Özgürlükiçin <%s>" % DEFAULT_FROM_EMAIL, ["%s <%s>" % (cdClient.get_full_name(), cdClient.email)]) mail.content_subtype = "html" mail.send(fail_silently=True) return render_response(request, "shipit/sent.html", locals()) else: initial = {} if request.user.is_authenticated(): initial["first_name"] = request.user.first_name initial["last_name"] = request.user.last_name initial["email"] = request.user.email initial["city"] = request.user.get_profile().city form = CdClientForm(initial=initial) return render_response(request, "shipit/create_cdclient.html", locals())
def create_cdclient(request): if request.method == "POST": form = CdClientForm(request.POST.copy()) flood, timeout = flood_control(request) if form.is_valid() and not flood: cdClient = form.save() message = loader.get_template("shipit/confirm_email.html").render( Context({"cdClient": cdClient})) mail = EmailMessage( "Pardus DVD isteğiniz", message, "Özgürlükiçin <%s>" % DEFAULT_FROM_EMAIL, ["%s <%s>" % (cdClient.get_full_name(), cdClient.email)]) mail.content_subtype = "html" mail.send(fail_silently=True) return render_response(request, "shipit/sent.html", locals()) else: initial = {} if request.user.is_authenticated(): initial["first_name"] = request.user.first_name initial["last_name"] = request.user.last_name initial["email"] = request.user.email initial["city"] = request.user.get_profile().city form = CdClientForm(initial=initial) return render_response(request, "shipit/create_cdclient.html", locals())
def themeitem_change_wallpaper(request, item_id): object = get_object_or_404(Wallpaper, pk=item_id) WallpaperFileFormSet = formset_factory(WallpaperFileForm) if request.user == object.author or request.user.has_perm("can_change_themeitem"): if request.method == "POST": form = WallpaperForm(request.POST.copy()) fileforms = WallpaperFileFormSet(request.POST.copy(), request.FILES) flood, timeout = flood_control(request) if flood: render_response(request, "tema/message.html", {"type": "error", "message": "Lütfen %s saniye sonra tekrar deneyiniz." % timeout }) if form.is_valid() and fileforms.is_valid(): object.title = form.cleaned_data["title"] object.category = form.cleaned_data["category"] object.license = form.cleaned_data["license"] object.text = form.cleaned_data["text"] object.update = datetime.datetime.now() object.papers = [] #change slug slug = slugify(replace_turkish(object.title)) object.slug = str(object.id) + "-" + slug object.save() for fileform in fileforms.forms: paper = fileform.save(commit=False) paper.title = "%dx%d" % (paper.image.width, paper.image.height) paper.save() object.title = object.title.replace(paper.title, "") object.save() if fileform.cleaned_data["create_smaller_wallpapers"]: object.create_smaller_wallpapers(paper) object.papers.add(paper) #create thumbnail from first paper firstpaper = object.papers.all()[0] thumbnail = Image.open(firstpaper.image.path) thumbnail.thumbnail((150,200), Image.ANTIALIAS) file = ContentFile("") object.thumbnail.save(firstpaper.image.path, file, save=True) thumbnail.save(object.thumbnail.path) return HttpResponseRedirect(object.get_absolute_url()) else: return render_response(request, "tema/themeitem_change.html", locals()) else: default_data = {"title": object.title, "license": object.license, "text": object.text, "version": object.version, "tags": object.tags.all(), "origin_url": object.origin_url, "category": object.category } form = WallpaperForm(initial=default_data) fileforms = WallpaperFileFormSet() return render_response(request, "tema/themeitem_change.html", locals()) else: return render_response(request, "tema/message.html", {"type": "error", "message": "Bu işlemi yapmak için yetkiniz yok."})
def detail(request, id): bug = Bug.objects.get(id=id) default_data = { "title": bug.title, "assigned_to": bug.assigned_to.id, "description": bug.description, "status": bug.status, "priority": bug.priority, } bugform = FullBugForm(default_data) if request.method == "POST" and request.user.is_authenticated(): form = CommentForm(request.POST.copy()) flood, timeout = flood_control(request) if form.is_valid() and not flood: comment = Comment( bug=bug, author=request.user, text=form.cleaned_data["text"], ) comment.save() comments = bug.comment_set.all() email_dict = { "bugId": bug.id, "bugTitle": bug.title, "link": bug.get_full_url(), "comment_count": comments.count(), "author": "%s %s <%s>" % (comment.author.first_name, comment.author.last_name, comment.author.email), "date": comment.date, "comment": comment.text, } email_subject = u"[Hata %(bugId)s] %(bugTitle)s" email_body = u"""%(link)s -- Yorum #%(comment_count)s yazan %(author)s %(date)s -- %(comment)s """ mail_set = set() mail_set.add(BUG_MAILLIST) mail_set.add(bug.submitter.email) mail_set.add(bug.assigned_to.email) for comment in comments: mail_set.add(comment.author.email) # send mails seperately for subscriber in mail_set: send_mail(email_subject % email_dict, email_body % email_dict, BUG_FROM_EMAIL, [subscriber], fail_silently=True) else: form = CommentForm() return render_response(request, 'bug/bug_detail.html', locals())
def themeitem_change_openofficetheme(request, item_id): object = get_object_or_404(OpenOfficeTheme, pk=item_id) if request.user == object.author or request.user.has_perm( "can_change_themeitem"): if request.method == "POST": form = OpenOfficeThemeForm(request.POST.copy(), request.FILES) flood, timeout = flood_control(request) if flood: render_response( request, "tema/message.html", { "type": "error", "message": "Lütfen %s saniye sonra tekrar deneyiniz." % timeout }) if form.is_valid(): object.title = form.cleaned_data["title"] object.category = form.cleaned_data["category"] object.license = form.cleaned_data["license"] object.text = form.cleaned_data["text"] old_version = object.version object.version = form.cleaned_data["version"] object.file = form.cleaned_data["file"] screenshot = form.cleaned_data["screenshot"] object.update = datetime.datetime.now() if screenshot != None: object.screenshot = screenshot #change slug slug = slugify(replace_turkish(object.title)) object.slug = str(object.id) + "-" + slug object.save() #create thumbnail thumbnail = Image.open(object.screenshot.path) thumbnail.thumbnail((150, 200), Image.ANTIALIAS) file = ContentFile("") object.thumbnail.save(object.screenshot.path, file, save=True) thumbnail.save(object.thumbnail.path) #post changes if object.version != old_version: text = "%s %s sürümlü %s OpenOffice.org öğesini %s sürümüne güncelledi." % ( request.user, old_version, object.title, object.version) post = Post( topic=object.topic, author=request.user, text=text, ) post.save() return HttpResponseRedirect(object.get_absolute_url()) else: return render_response( request, "tema/themeitem_add_openofficetheme.html", locals()) else: default_data = { "title": object.title, "category": object.category, "license": object.license, "text": object.text, "version": object.version, "tags": object.tags.all(), "origin_url": object.origin_url, "file": object.file, "screenshot": object.screenshot, } form = OpenOfficeThemeForm(initial=default_data) return render_response(request, "tema/themeitem_change.html", locals()) else: return render_response(request, "tema/message.html", { "type": "error", "message": "Bu işlemi yapmak için yetkiniz yok." })
def themeitem_change_font(request, item_id): object = get_object_or_404(Font, pk=item_id) if request.user == object.author or request.user.has_perm( "can_change_themeitem"): if request.method == "POST": form = FontForm(request.POST.copy(), request.FILES) flood, timeout = flood_control(request) if flood: render_response( request, "tema/message.html", { "type": "error", "message": "Lütfen %s saniye sonra tekrar deneyiniz." % timeout }) if form.is_valid(): object.title = form.cleaned_data["title"] object.license = form.cleaned_data["license"] object.text = form.cleaned_data["text"] old_version = object.version object.version = form.cleaned_data["version"] object.font = form.cleaned_data["font"] object.is_turkish = form.cleaned_data["is_turkish"] object.update = datetime.datetime.now() #change slug slug = slugify(replace_turkish(object.title)) object.slug = str(object.id) + "-" + slug object.save() #create thumbnail twidth = 150 theight = 100 thumbnail = Image.new("RGBA", (twidth, theight)) draw = ImageDraw.Draw(thumbnail) bigfont = ImageFont.truetype(object.font.path, 22) smallfont = ImageFont.truetype(object.font.path, 14) fill = (112, 112, 112) draw.text((5, 5), "Aa Ee Rr", font=bigfont, fill=fill) text_list = ( (30, "Dag basini", u"Dağ başını"), (45, "duman almis,", u"duman almış,"), (60, "Gumus dere", u"Gümüş dere"), (75, "durmaz akar.", u"durmaz akar."), ) for text in text_list: s = draw.textsize(text[1], font=smallfont) x = twidth - s[0] - 5 if object.is_turkish: draw.text((x, text[0]), text[2], font=smallfont, fill=fill) else: draw.text((x, text[0]), text[1], font=smallfont, fill=fill) file = ContentFile("") object.thumbnail.save( object.font.path[:object.font.path.rfind(".")] + ".png", file, save=True) thumbnail.save(object.thumbnail.path) #post changes if object.version != old_version: text = "%s %s sürümlü %s yazitipini %s sürümüne güncelledi." % ( request.user, old_version, object.title, object.version) post = Post( topic=object.topic, author=request.user, text=text, ) post.save() return HttpResponseRedirect(object.get_absolute_url()) else: return render_response(request, "tema/themeitem_change.html", locals()) else: default_data = { "title": object.title, "license": object.license, "text": object.text, "version": object.version, "changelog": object.changelog, "tags": object.tags.all(), "origin_url": object.origin_url, "font": object.font, "is_turkish": object.is_turkish, } form = FontForm(initial=default_data) return render_response(request, "tema/themeitem_change.html", locals()) else: return render_response(request, "tema/message.html", { "type": "error", "message": "Bu işlemi yapmak için yetkiniz yok." })
def themeitem_change_packagescreenshot(request, item_id): object = get_object_or_404(PackageScreenshot, pk=item_id) if request.user == object.author or request.user.has_perm( "can_change_themeitem"): if request.method == "POST": form = PackageScreenshotForm(request.POST.copy(), request.FILES) flood, timeout = flood_control(request) if flood: render_response( request, "tema/message.html", { "type": "error", "message": "Lütfen %s saniye sonra tekrar deneyiniz." % timeout }) if form.is_valid(): object.title = form.cleaned_data["title"] object.license = form.cleaned_data["license"] object.text = form.cleaned_data["text"] old_version = object.version object.version = form.cleaned_data["version"] object.update = datetime.datetime.now() object.image = form.cleaned_data["image"] #change slug slug = slugify(replace_turkish(object.title)) object.slug = str(object.id) + "-" + slug #change image file name path, extension = '/'.join(object.image.name.split( '/')[:-1]), object.image.name.split('.')[-1] object.image.name = "%s/%s.%s" % (path, object.title, extension) object.save() #create thumbnail thumbnail = Image.open(object.image.path) thumbnail.thumbnail((150, 200), Image.ANTIALIAS) file = ContentFile("") object.thumbnail.save(object.image.path, file, save=True) thumbnail.save(object.thumbnail.path) #create thumbnail for package manager s_image = Image.open(object.image.path) s_image.thumbnail((270, 190), Image.ANTIALIAS) file = ContentFile("") object.s_image.save(object.image.path, file, save=True) s_image.save(object.s_image.path) #post changes if object.version != old_version: text = "%s %s uygulamasının %s sürümüne ait paket görüntüsünü %s sürümüne güncelledi." % ( request.user, object.title, old_version, object.version) post = Post( topic=object.topic, author=request.user, text=text, ) post.save() return HttpResponseRedirect(object.get_absolute_url()) else: return render_response(request, "tema/themeitem_change.html", locals()) else: default_data = { "title": object.title, "license": object.license, "text": object.text, "version": object.version, "tags": object.tags.all(), "origin_url": object.origin_url, "image": object.image, } form = PackageScreenshotForm(initial=default_data) return render_response(request, "tema/themeitem_change.html", locals()) else: return render_response(request, "tema/message.html", { "type": "error", "message": "Bu işlemi yapmak için yetkiniz yok." })
def themeitem_change_desktopscreenshot(request, item_id): object = get_object_or_404(DesktopScreenshot, pk=item_id) if request.user == object.author or request.user.has_perm( "can_change_themeitem"): if request.method == "POST": form = DesktopScreenShotForm(request.POST.copy(), request.FILES) flood, timeout = flood_control(request) if flood: render_response( request, "tema/message.html", { "type": "error", "message": "Lütfen %s saniye sonra tekrar deneyiniz." % timeout }) if form.is_valid(): object.title = form.cleaned_data["title"] object.license = form.cleaned_data["license"] object.text = form.cleaned_data["text"] object.origin_url = form.cleaned_data["origin_url"] object.update = datetime.datetime.now() object.image = form.cleaned_data["image"] #change slug slug = slugify(replace_turkish(object.title)) object.slug = str(object.id) + "-" + slug object.save() #create thumbnail thumbnail = Image.open(object.image.path) thumbnail.thumbnail((150, 200), Image.ANTIALIAS) file = ContentFile("") object.thumbnail.save(object.image.path, file, save=True) thumbnail.save(object.thumbnail.path) return HttpResponseRedirect(object.get_absolute_url()) else: return render_response(request, "tema/themeitem_change.html", locals()) else: default_data = { "title": object.title, "license": object.license, "text": object.text, "tags": object.tags.all(), "origin_url": object.origin_url, "image": object.image, } form = DesktopScreenShotForm(initial=default_data) return render_response(request, "tema/themeitem_change.html", locals()) else: return render_response(request, "tema/message.html", { "type": "error", "message": "Bu işlemi yapmak için yetkiniz yok." })
def themeitem_change_wallpaper(request, item_id): object = get_object_or_404(Wallpaper, pk=item_id) WallpaperFileFormSet = formset_factory(WallpaperFileForm) if request.user == object.author or request.user.has_perm( "can_change_themeitem"): if request.method == "POST": form = WallpaperForm(request.POST.copy()) fileforms = WallpaperFileFormSet(request.POST.copy(), request.FILES) flood, timeout = flood_control(request) if flood: render_response( request, "tema/message.html", { "type": "error", "message": "Lütfen %s saniye sonra tekrar deneyiniz." % timeout }) if form.is_valid() and fileforms.is_valid(): object.title = form.cleaned_data["title"] object.category = form.cleaned_data["category"] object.license = form.cleaned_data["license"] object.text = form.cleaned_data["text"] object.update = datetime.datetime.now() object.papers = [] #change slug slug = slugify(replace_turkish(object.title)) object.slug = str(object.id) + "-" + slug object.save() for fileform in fileforms.forms: paper = fileform.save(commit=False) paper.title = "%dx%d" % (paper.image.width, paper.image.height) paper.save() object.title = object.title.replace(paper.title, "") object.save() if fileform.cleaned_data["create_smaller_wallpapers"]: object.create_smaller_wallpapers(paper) object.papers.add(paper) #create thumbnail from first paper firstpaper = object.papers.all()[0] thumbnail = Image.open(firstpaper.image.path) thumbnail.thumbnail((150, 200), Image.ANTIALIAS) file = ContentFile("") object.thumbnail.save(firstpaper.image.path, file, save=True) thumbnail.save(object.thumbnail.path) return HttpResponseRedirect(object.get_absolute_url()) else: return render_response(request, "tema/themeitem_change.html", locals()) else: default_data = { "title": object.title, "license": object.license, "text": object.text, "version": object.version, "tags": object.tags.all(), "origin_url": object.origin_url, "category": object.category } form = WallpaperForm(initial=default_data) fileforms = WallpaperFileFormSet() return render_response(request, "tema/themeitem_change.html", locals()) else: return render_response(request, "tema/message.html", { "type": "error", "message": "Bu işlemi yapmak için yetkiniz yok." })
def themeitem_change_packagescreenshot(request, item_id): object = get_object_or_404(PackageScreenshot, pk=item_id) if request.user == object.author or request.user.has_perm("can_change_themeitem"): if request.method == "POST": form = PackageScreenshotForm(request.POST.copy(), request.FILES) flood, timeout = flood_control(request) if flood: render_response(request, "tema/message.html", {"type": "error", "message": "Lütfen %s saniye sonra tekrar deneyiniz." % timeout }) if form.is_valid(): object.title = form.cleaned_data["title"] object.license = form.cleaned_data["license"] object.text = form.cleaned_data["text"] old_version = object.version object.version = form.cleaned_data["version"] object.update = datetime.datetime.now() object.image = form.cleaned_data["image"] #change slug slug = slugify(replace_turkish(object.title)) object.slug = str(object.id) + "-" + slug #change image file name path, extension = '/'.join(object.image.name.split('/')[:-1]), object.image.name.split('.')[-1] object.image.name = "%s/%s.%s" % (path, object.title, extension) object.save() #create thumbnail thumbnail = Image.open(object.image.path) thumbnail.thumbnail((150,200), Image.ANTIALIAS) file = ContentFile("") object.thumbnail.save(object.image.path, file, save=True) thumbnail.save(object.thumbnail.path) #create thumbnail for package manager s_image = Image.open(object.image.path) s_image.thumbnail((270,190), Image.ANTIALIAS) file = ContentFile("") object.s_image.save(object.image.path, file, save=True) s_image.save(object.s_image.path) #post changes if object.version != old_version: text="%s %s uygulamasının %s sürümüne ait paket görüntüsünü %s sürümüne güncelledi." % (request.user, object.title, old_version, object.version) post = Post(topic=object.topic, author=request.user, text=text, ) post.save() return HttpResponseRedirect(object.get_absolute_url()) else: return render_response(request, "tema/themeitem_change.html", locals()) else: default_data = {"title": object.title, "license": object.license, "text": object.text, "version": object.version, "tags": object.tags.all(), "origin_url": object.origin_url, "image": object.image, } form = PackageScreenshotForm(initial=default_data) return render_response(request, "tema/themeitem_change.html", locals()) else: return render_response(request, "tema/message.html", {"type": "error", "message": "Bu işlemi yapmak için yetkiniz yok."})
def themeitem_change_font(request, item_id): object = get_object_or_404(Font, pk=item_id) if request.user == object.author or request.user.has_perm("can_change_themeitem"): if request.method == "POST": form = FontForm(request.POST.copy(), request.FILES) flood, timeout = flood_control(request) if flood: render_response(request, "tema/message.html", {"type": "error", "message": "Lütfen %s saniye sonra tekrar deneyiniz." % timeout }) if form.is_valid(): object.title = form.cleaned_data["title"] object.license = form.cleaned_data["license"] object.text = form.cleaned_data["text"] old_version = object.version object.version = form.cleaned_data["version"] object.font = form.cleaned_data["font"] object.is_turkish = form.cleaned_data["is_turkish"] object.update = datetime.datetime.now() #change slug slug = slugify(replace_turkish(object.title)) object.slug = str(object.id) + "-" + slug object.save() #create thumbnail twidth = 150 theight = 100 thumbnail = Image.new("RGBA", (twidth, theight)) draw = ImageDraw.Draw(thumbnail) bigfont = ImageFont.truetype(object.font.path, 22) smallfont = ImageFont.truetype(object.font.path, 14) fill = (112,112,112) draw.text((5, 5), "Aa Ee Rr", font=bigfont, fill=fill) text_list = ( (30, "Dag basini", u"Dağ başını"), (45, "duman almis,", u"duman almış,"), (60, "Gumus dere", u"Gümüş dere"), (75, "durmaz akar.", u"durmaz akar."), ) for text in text_list: s = draw.textsize(text[1], font=smallfont) x = twidth - s[0] - 5 if object.is_turkish: draw.text((x, text[0]), text[2], font=smallfont, fill=fill) else: draw.text((x, text[0]), text[1], font=smallfont, fill=fill) file = ContentFile("") object.thumbnail.save(object.font.path[:object.font.path.rfind(".")]+".png", file, save=True) thumbnail.save(object.thumbnail.path) #post changes if object.version != old_version: text = "%s %s sürümlü %s yazitipini %s sürümüne güncelledi." % (request.user, old_version, object.title, object.version) post = Post(topic=object.topic, author=request.user, text=text, ) post.save() return HttpResponseRedirect(object.get_absolute_url()) else: return render_response(request, "tema/themeitem_change.html", locals()) else: default_data = {"title": object.title, "license": object.license, "text": object.text, "version": object.version, "changelog": object.changelog, "tags": object.tags.all(), "origin_url": object.origin_url, "font": object.font, "is_turkish": object.is_turkish, } form = FontForm(initial=default_data) return render_response(request, "tema/themeitem_change.html", locals()) else: return render_response(request, "tema/message.html", {"type": "error", "message": "Bu işlemi yapmak için yetkiniz yok."})
def themeitem_change_openofficetheme(request, item_id): object = get_object_or_404(OpenOfficeTheme, pk=item_id) if request.user == object.author or request.user.has_perm("can_change_themeitem"): if request.method == "POST": form = OpenOfficeThemeForm(request.POST.copy(), request.FILES) flood, timeout = flood_control(request) if flood: render_response(request, "tema/message.html", {"type": "error", "message": "Lütfen %s saniye sonra tekrar deneyiniz." % timeout }) if form.is_valid(): object.title = form.cleaned_data["title"] object.category = form.cleaned_data["category"] object.license = form.cleaned_data["license"] object.text = form.cleaned_data["text"] old_version = object.version object.version = form.cleaned_data["version"] object.file = form.cleaned_data["file"] screenshot = form.cleaned_data["screenshot"] object.update = datetime.datetime.now() if screenshot != None: object.screenshot = screenshot #change slug slug = slugify(replace_turkish(object.title)) object.slug = str(object.id) + "-" + slug object.save() #create thumbnail thumbnail = Image.open(object.screenshot.path) thumbnail.thumbnail((150,200), Image.ANTIALIAS) file = ContentFile("") object.thumbnail.save(object.screenshot.path, file, save=True) thumbnail.save(object.thumbnail.path) #post changes if object.version != old_version: text = "%s %s sürümlü %s OpenOffice.org öğesini %s sürümüne güncelledi." % (request.user, old_version, object.title, object.version) post = Post(topic=object.topic, author=request.user, text=text, ) post.save() return HttpResponseRedirect(object.get_absolute_url()) else: return render_response(request, "tema/themeitem_add_openofficetheme.html", locals()) else: default_data = {"title": object.title, "category": object.category, "license": object.license, "text": object.text, "version": object.version, "tags": object.tags.all(), "origin_url": object.origin_url, "file": object.file, "screenshot": object.screenshot, } form = OpenOfficeThemeForm(initial=default_data) return render_response(request, "tema/themeitem_change.html", locals()) else: return render_response(request, "tema/message.html", {"type": "error", "message": "Bu işlemi yapmak için yetkiniz yok."})