<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>blog.utek.pl</title>
	<atom:link href="http://blog.utek.pl/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.utek.pl</link>
	<description>Me, Myself and I</description>
	<lastBuildDate>Tue, 17 Jan 2012 10:25:56 +0000</lastBuildDate>
	<language>pl</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Tory</title>
		<link>http://blog.utek.pl/foto/tory/</link>
		<comments>http://blog.utek.pl/foto/tory/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 10:25:56 +0000</pubDate>
		<dc:creator>utek</dc:creator>
				<category><![CDATA[Fotografia]]></category>

		<guid isPermaLink="false">http://blog.utek.pl/?p=90</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://dev.utek.pl/wp-content/uploads/2012/01/IMG_2749.jpg" rel="lightbox[90]"><img src="http://dev.utek.pl/wp-content/uploads/2012/01/IMG_2749-1024x682.jpg" alt="" title="Railroads" width="550" height="366" class="aligncenter size-large wp-image-91" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.utek.pl/foto/tory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lampka &#8222;steampunkowa&#8221;</title>
		<link>http://blog.utek.pl/projects/lampka-steampunkowa/</link>
		<comments>http://blog.utek.pl/projects/lampka-steampunkowa/#comments</comments>
		<pubDate>Mon, 16 Jan 2012 11:27:46 +0000</pubDate>
		<dc:creator>utek</dc:creator>
				<category><![CDATA[DIY]]></category>
		<category><![CDATA[Projekty]]></category>

		<guid isPermaLink="false">http://utek.pl/?p=76</guid>
		<description><![CDATA['Steampunkowa' lampka.]]></description>
			<content:encoded><![CDATA[<p>'Steampunkowa' lampka.</p>
<p><a href="http://dev.utek.pl/wp-content/uploads/2012/01/2395047.jpg" rel="lightbox[76]"><img src="http://dev.utek.pl/wp-content/uploads/2012/01/2395047-300x238.jpg" alt="" title="Steampunkish Lamp" width="300" height="238" class="aligncenter size-medium wp-image-82" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.utek.pl/projects/lampka-steampunkowa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Licznik Godzin</title>
		<link>http://blog.utek.pl/tech/hour-counter/</link>
		<comments>http://blog.utek.pl/tech/hour-counter/#comments</comments>
		<pubDate>Mon, 29 Nov 2010 11:36:05 +0000</pubDate>
		<dc:creator>utek</dc:creator>
				<category><![CDATA[Techniczne]]></category>

		<guid isPermaLink="false">http://dev.utek.pl/?p=66</guid>
		<description><![CDATA[W miejscu gdzie pracuję wystąpiła potrzeba podliczania godzin spędzonych nad projektem. Do zarządzania i planowania tych godzin używamy Google Calendar. W związku z tym napisałem prosty program w C#, który umożliwia podliczanie godzin w danym kalendarzu. Źródła na BitBucket Wymagane Google Data APIs (GData) Download HourCounter]]></description>
			<content:encoded><![CDATA[<p>W miejscu gdzie pracuję wystąpiła potrzeba podliczania godzin spędzonych nad projektem. Do zarządzania i planowania tych godzin używamy <a href="http://calendar.google.com">Google Calendar</a>.</p>
<p>W związku z tym napisałem <a href="https://bitbucket.org/utek/hourcounter">prosty program</a> w C#, który umożliwia podliczanie godzin w danym kalendarzu.</p>
<p><a href="https://bitbucket.org/utek/hourcounter">Źródła na BitBucket</a></p>
<p>Wymagane <a href="http://code.google.com/p/google-gdata/">Google Data APIs (GData)</a></p>
<p><a href="https://bitbucket.org/utek/hourcounter/downloads/HourCounter.zip">Download HourCounter</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.utek.pl/tech/hour-counter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dynamiczne filtrowanie pól w formularzu Django</title>
		<link>http://blog.utek.pl/tech/dynamic-filters-in-django-forms/</link>
		<comments>http://blog.utek.pl/tech/dynamic-filters-in-django-forms/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 08:56:59 +0000</pubDate>
		<dc:creator>utek</dc:creator>
				<category><![CDATA[Techniczne]]></category>
		<category><![CDATA[django]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[filter]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://see.utek.pl/?p=45</guid>
		<description><![CDATA[Dynamiczne filtrowanie pola w formularzu django z wykorzystaniem innego pola w tym samym formularzu. Z wykorzystaniem jQuery. Model formularza: class MyModelForm(forms.ModelForm): def __init__(self, *args, **kwargs): super(self.__class__, self).__init__(*args, **kwargs) if self['fieldToFilterWith'].data: self.fields['fieldToFilter'].queryset = MyModel2.objects.filter(fieldToFilterWith__id=int(self['fieldToFilterWith'].data)) else: self.fields['fieldToFilter'].queryset = MyModel2.objects.none() class Meta: model = MyModel exclude = ("modifier", "adder", "added", "visible") class Media: js = ("js/plugins/dChoice.js",) Widok zwracający [...]]]></description>
			<content:encoded><![CDATA[<p>Dynamiczne filtrowanie pola w formularzu django z wykorzystaniem innego pola w tym samym formularzu.<br />
Z wykorzystaniem jQuery.</p>
<p>Model formularza:</p>
<pre name="code" class="python">
class MyModelForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(self.__class__, self).__init__(*args, **kwargs)
        if self['fieldToFilterWith'].data:
            self.fields['fieldToFilter'].queryset = MyModel2.objects.filter(fieldToFilterWith__id=int(self['fieldToFilterWith'].data))
        else:
            self.fields['fieldToFilter'].queryset = MyModel2.objects.none()
    class Meta:
        model = MyModel
        exclude = ("modifier", "adder", "added", "visible")
    class Media:
        js = ("js/plugins/dChoice.js",)</pre>
<p>Widok zwracający przefiltrowaną listę:</p>
<pre name="code" class="python">
def get_filtered_list(request, fieldToFilterWith_id):
    regions = MyModel2.objects.filter(fieldToFilterWith__id=fieldToFilterWith_id)
    return HttpResponse(serializers.serialize("json", regions, fields=("name",)), mimetype="application/json")</pre>
<p>urls.py dla widoku:</p>
<pre name="code" class="python">
url(r'feed/d/(\d+)/$', 'myapp.views.get_filtered_list', name='feed_get_filtered_list'),</pre>
<p>js/plugins/dChoice.js:</p>
<pre name="code" class="js">
(function($){
    $.fn.extend({
        dChoice: function(options) {
            var defaults = {
                url: '',
                field: ''
            };
            var o =  $.extend(defaults, options);
            return this.each(function(){
                var parent = this;
                $("#"+o.field).change(function(){
                    var id_c = $(this).val();
                    $.getJSON(o.url + id_c + "/", function(data){
                        $(parent).html("");
                        $(parent).append($("
<option></option>

").attr("value","").text("---------"));
                        for (elem in data){
                            $(parent).append($("
<option></option>

").attr("value",data[elem].pk).text(data[elem].fields.name));
                        }
                    });
                })
            });
        }
    });
})(jQuery);</pre>
<p>Szablon formularza z polami do filtrowania:</p>
<pre name="code" class="html">
{% block scripts %}
{{ form.media }}
<script type="application/x-javascript">
$(function(){
    $('#id_fieldToFilter').dChoice({ field : 'id_fieldToFilterWith', url: '{% url feed_get_filtered_list %}'});    
});
</script>
{% endblock %}
{% block content %}
<form method="POST" action="">
    {{ form.as_p }}
<input type="submit" name="submit" value="Submit" id="submit">
</form>

{% endblock content %}</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.utek.pl/tech/dynamic-filters-in-django-forms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.751 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-02-21 04:14:09 -->

