django-social-auth with custom user model and overridden save() method
I'm using django-social-auth, and I'm really impressed by its simplicity,
however I use a custom user model and I overrided the save() method in
order to set a default computed value for a field I need, the problem is
that save() is not called by socialauth! How can this be possible? Is
there another way of setting a computed field value at creation-time?
Saturday, 31 August 2013
jqgrid and ajaxfileupload plugin again
jqgrid and ajaxfileupload plugin again
I broke my head and need help ...
I am using the ajaxfileupload plugin, very old but small, modified as
explained here.
jQuery.extend({
createUploadIframe: function(id, uri)
{
//create frame
var frameId = 'jUploadFrame' + id;
var iframeHtml = '';
jQuery(iframeHtml).appendTo(document.body);
return jQuery('#' + frameId).get(0);
},
createUploadForm: function(id, fileElementId, data)
{
//create form
var formId = 'jUploadForm' + id;
var fileId = 'jUploadFile' + id;
var form = jQuery('');
if(data)
{
for(var i in data)
{
jQuery('').appendTo(form);
}
}
var oldElement = jQuery('#' + fileElementId);
var newElement = jQuery(oldElement).clone();
jQuery(oldElement).attr('id', fileId);
jQuery(oldElement).before(newElement);
jQuery(oldElement).appendTo(form);
//set attributes
jQuery(form).css('position', 'absolute');
jQuery(form).css('top', '-1200px');
jQuery(form).css('left', '-1200px');
jQuery(form).appendTo('body');
return form;
},
ajaxFileUpload: function(s) {
// TODO introduce global settings, allowing the client to modify
them for all requests, not only timeout
s = jQuery.extend({}, jQuery.ajaxSettings, s);
var id = new Date().getTime()
var form = jQuery.createUploadForm(id, s.fileElementId,
(typeof(s.data)=='undefined'?false:s.data));
var io = jQuery.createUploadIframe(id, s.secureuri);
var frameId = 'jUploadFrame' + id;
var formId = 'jUploadForm' + id;
// Watch for a new set of requests
if ( s.global && ! jQuery.active++ )
{
jQuery.event.trigger( "ajaxStart" );
}
var requestDone = false;
// Create the request object
var xml = {}
if ( s.global )
jQuery.event.trigger("ajaxSend", [xml, s]);
// Wait for a response to come back
var uploadCallback = function(isTimeout)
{
var io = document.getElementById(frameId);
try
{
if(io.contentWindow)
{
xml.responseText =
io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null;
xml.responseXML =
io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;
}else if(io.contentDocument)
{
xml.responseText =
io.contentDocument.document.body?io.contentDocument.document.body.innerHTML:null;
xml.responseXML =
io.contentDocument.document.XMLDocument?io.contentDocument.document.XMLDocument:io.contentDocument.document;
}
}catch(e)
{
jQuery.my_handleError(s, xml, null, e);
}
if ( xml || isTimeout == "timeout")
{
requestDone = true;
var status;
try {
status = isTimeout != "timeout" ? "success" : "error";
// Make sure that the request was successful or
notmodified
if ( status != "error" )
{
// process the data (runs the xml through httpData
regardless of callback)
var data = jQuery.uploadHttpData( xml, s.dataType );
// If a local callback was specified, fire it and
pass it the data
if ( s.success )
s.success( data, status );
// Fire the global callback
if( s.global )
jQuery.event.trigger( "ajaxSuccess", [xml, s] );
} else
jQuery.my_handleError(s, xml, status);
} catch(e)
{
status = "error";
jQuery.my_handleError(s, xml, status, e);
}
// The request was completed
if( s.global )
jQuery.event.trigger( "ajaxComplete", [xml, s] );
// Handle the global AJAX counter
if ( s.global && ! --jQuery.active )
jQuery.event.trigger( "ajaxStop" );
// Process result
if ( s.complete )
s.complete(xml, status);
jQuery(io).unbind()
setTimeout(function()
{ try
{
jQuery(io).remove();
jQuery(form).remove();
} catch(e)
{
jQuery.my_handleError(s, xml, null, e);
}
}, 100)
xml = null
}
}
// Timeout checker
if ( s.timeout > 0 )
{
setTimeout(function(){
// Check to see if the request is still happening
if( !requestDone ) uploadCallback( "timeout" );
}, s.timeout);
}
try
{
var form = jQuery('#' + formId);
jQuery(form).attr('action', s.url);
jQuery(form).attr('method', 'POST');
jQuery(form).attr('target', frameId);
if(form.encoding)
{
jQuery(form).attr('encoding', 'multipart/form-data');
}
else
{
jQuery(form).attr('enctype', 'multipart/form-data');
}
jQuery(form).submit();
} catch(e)
{
jQuery.my_handleError(s, xml, null, e);
}
jQuery('#' + frameId).load(uploadCallback );
return {abort: function () {}};
},
uploadHttpData: function( r, type ) {
var data = !type;
data = type == "xml" || data ? r.responseXML : r.responseText;
// If the type is "script", eval it in global context
if ( type == "script" )
jQuery.globalEval( data );
// Get the JavaScript object, if JSON is used.
if ( type == "json" )
eval( "data = " + data );
// evaluate scripts within html
if ( type == "html" )
jQuery("").html(data).evalScripts();
//alert($('param',
data).each(function(){alert($(this).attr('value'));}));
return data;
},
/* jQuery 1.2 function substitution: */
my_handleError: function( s, xhr, status, e ) {
// If a local callback was specified, fire it
if ( s.error ) s.error( xhr, status, e );
// Fire the global callback
/* INCOMPATIBLE!!! Modern jQuery 1.5+ expects xhr to be an
jqXHR object.
if ( s.global )
jQuery.event.trigger( "ajaxError", [xhr, s, e] );
*/
}
})
The environment is jquery-1.9.1, jqgrid 4.5.2
I uses it like this in the .navgrid add part:
width:350,
resize:false,
reloadAfterSubmit:true,
url: 'url_1.php',
closeAfterAdd:true,
recreateForm:true,
onInitializeForm: function (formid)
{
$(formid).attr('method','POST');
$(formid).attr('enctype','multipart/form-data');
$(formid).attr('action','');
},
afterSubmit: function (reponse,postdata)
{
if (reponse.responseText == "ok")
{
erreur='';
if ($("#photo").val() != "")
{
$.ajaxFileUpload({
url:'url_2.php',
secureuri:false,
fileElementId:'photo',
dataType:'json',
beforeSend:function()
{
$("#loading").show();
},
complete:function()
{
$("#loading").hide();
},
success: function (data, status) {
if (typeof data.error != 'undefined')
{
if(data.error != '') {
alert(data.error);
erreur = 'success';
} else {
alert(data.msg);
erreur = 'failed';
}
}
},
error: function (data, status, e) {
erreur = data.responseText;
}
});
if (erreur == 'success')
{
return [true,''];
}
else
{
return [false,erreur];
}
}
else
{ //nothing to do
return [true,''];
}
}
else
{
return [false,reponse.responseText,''];
}
}
url_1.php is correctly called and executed. Return 'ok', afterSubmit fired.
url_2.php is called with the photo as parameter. Return 'ok'.
With firebug I noted that ajaxfileupload didn't exit by success or by
error !!??
Therefore I dont know how to manage the exit of the afterSubmit event. I
mean the errors of url_2.php and the errors of ajaxfileupload.
I suppose that afterSubmit doesn't "wait" the exit of ajaxfileupload
because the process is asynchroneous.
I broke my head and need help ...
I am using the ajaxfileupload plugin, very old but small, modified as
explained here.
jQuery.extend({
createUploadIframe: function(id, uri)
{
//create frame
var frameId = 'jUploadFrame' + id;
var iframeHtml = '';
jQuery(iframeHtml).appendTo(document.body);
return jQuery('#' + frameId).get(0);
},
createUploadForm: function(id, fileElementId, data)
{
//create form
var formId = 'jUploadForm' + id;
var fileId = 'jUploadFile' + id;
var form = jQuery('');
if(data)
{
for(var i in data)
{
jQuery('').appendTo(form);
}
}
var oldElement = jQuery('#' + fileElementId);
var newElement = jQuery(oldElement).clone();
jQuery(oldElement).attr('id', fileId);
jQuery(oldElement).before(newElement);
jQuery(oldElement).appendTo(form);
//set attributes
jQuery(form).css('position', 'absolute');
jQuery(form).css('top', '-1200px');
jQuery(form).css('left', '-1200px');
jQuery(form).appendTo('body');
return form;
},
ajaxFileUpload: function(s) {
// TODO introduce global settings, allowing the client to modify
them for all requests, not only timeout
s = jQuery.extend({}, jQuery.ajaxSettings, s);
var id = new Date().getTime()
var form = jQuery.createUploadForm(id, s.fileElementId,
(typeof(s.data)=='undefined'?false:s.data));
var io = jQuery.createUploadIframe(id, s.secureuri);
var frameId = 'jUploadFrame' + id;
var formId = 'jUploadForm' + id;
// Watch for a new set of requests
if ( s.global && ! jQuery.active++ )
{
jQuery.event.trigger( "ajaxStart" );
}
var requestDone = false;
// Create the request object
var xml = {}
if ( s.global )
jQuery.event.trigger("ajaxSend", [xml, s]);
// Wait for a response to come back
var uploadCallback = function(isTimeout)
{
var io = document.getElementById(frameId);
try
{
if(io.contentWindow)
{
xml.responseText =
io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null;
xml.responseXML =
io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;
}else if(io.contentDocument)
{
xml.responseText =
io.contentDocument.document.body?io.contentDocument.document.body.innerHTML:null;
xml.responseXML =
io.contentDocument.document.XMLDocument?io.contentDocument.document.XMLDocument:io.contentDocument.document;
}
}catch(e)
{
jQuery.my_handleError(s, xml, null, e);
}
if ( xml || isTimeout == "timeout")
{
requestDone = true;
var status;
try {
status = isTimeout != "timeout" ? "success" : "error";
// Make sure that the request was successful or
notmodified
if ( status != "error" )
{
// process the data (runs the xml through httpData
regardless of callback)
var data = jQuery.uploadHttpData( xml, s.dataType );
// If a local callback was specified, fire it and
pass it the data
if ( s.success )
s.success( data, status );
// Fire the global callback
if( s.global )
jQuery.event.trigger( "ajaxSuccess", [xml, s] );
} else
jQuery.my_handleError(s, xml, status);
} catch(e)
{
status = "error";
jQuery.my_handleError(s, xml, status, e);
}
// The request was completed
if( s.global )
jQuery.event.trigger( "ajaxComplete", [xml, s] );
// Handle the global AJAX counter
if ( s.global && ! --jQuery.active )
jQuery.event.trigger( "ajaxStop" );
// Process result
if ( s.complete )
s.complete(xml, status);
jQuery(io).unbind()
setTimeout(function()
{ try
{
jQuery(io).remove();
jQuery(form).remove();
} catch(e)
{
jQuery.my_handleError(s, xml, null, e);
}
}, 100)
xml = null
}
}
// Timeout checker
if ( s.timeout > 0 )
{
setTimeout(function(){
// Check to see if the request is still happening
if( !requestDone ) uploadCallback( "timeout" );
}, s.timeout);
}
try
{
var form = jQuery('#' + formId);
jQuery(form).attr('action', s.url);
jQuery(form).attr('method', 'POST');
jQuery(form).attr('target', frameId);
if(form.encoding)
{
jQuery(form).attr('encoding', 'multipart/form-data');
}
else
{
jQuery(form).attr('enctype', 'multipart/form-data');
}
jQuery(form).submit();
} catch(e)
{
jQuery.my_handleError(s, xml, null, e);
}
jQuery('#' + frameId).load(uploadCallback );
return {abort: function () {}};
},
uploadHttpData: function( r, type ) {
var data = !type;
data = type == "xml" || data ? r.responseXML : r.responseText;
// If the type is "script", eval it in global context
if ( type == "script" )
jQuery.globalEval( data );
// Get the JavaScript object, if JSON is used.
if ( type == "json" )
eval( "data = " + data );
// evaluate scripts within html
if ( type == "html" )
jQuery("").html(data).evalScripts();
//alert($('param',
data).each(function(){alert($(this).attr('value'));}));
return data;
},
/* jQuery 1.2 function substitution: */
my_handleError: function( s, xhr, status, e ) {
// If a local callback was specified, fire it
if ( s.error ) s.error( xhr, status, e );
// Fire the global callback
/* INCOMPATIBLE!!! Modern jQuery 1.5+ expects xhr to be an
jqXHR object.
if ( s.global )
jQuery.event.trigger( "ajaxError", [xhr, s, e] );
*/
}
})
The environment is jquery-1.9.1, jqgrid 4.5.2
I uses it like this in the .navgrid add part:
width:350,
resize:false,
reloadAfterSubmit:true,
url: 'url_1.php',
closeAfterAdd:true,
recreateForm:true,
onInitializeForm: function (formid)
{
$(formid).attr('method','POST');
$(formid).attr('enctype','multipart/form-data');
$(formid).attr('action','');
},
afterSubmit: function (reponse,postdata)
{
if (reponse.responseText == "ok")
{
erreur='';
if ($("#photo").val() != "")
{
$.ajaxFileUpload({
url:'url_2.php',
secureuri:false,
fileElementId:'photo',
dataType:'json',
beforeSend:function()
{
$("#loading").show();
},
complete:function()
{
$("#loading").hide();
},
success: function (data, status) {
if (typeof data.error != 'undefined')
{
if(data.error != '') {
alert(data.error);
erreur = 'success';
} else {
alert(data.msg);
erreur = 'failed';
}
}
},
error: function (data, status, e) {
erreur = data.responseText;
}
});
if (erreur == 'success')
{
return [true,''];
}
else
{
return [false,erreur];
}
}
else
{ //nothing to do
return [true,''];
}
}
else
{
return [false,reponse.responseText,''];
}
}
url_1.php is correctly called and executed. Return 'ok', afterSubmit fired.
url_2.php is called with the photo as parameter. Return 'ok'.
With firebug I noted that ajaxfileupload didn't exit by success or by
error !!??
Therefore I dont know how to manage the exit of the afterSubmit event. I
mean the errors of url_2.php and the errors of ajaxfileupload.
I suppose that afterSubmit doesn't "wait" the exit of ajaxfileupload
because the process is asynchroneous.
DatabaseMetaData.getColumns returning an empty ResultSet for synonyms
DatabaseMetaData.getColumns returning an empty ResultSet for synonyms
The method getColumns on the metadata is returning an empty ResultSet for
Synonyms (for tables and views it's returning the list of columns).
This happens on Oracle 11g Express and using the latest Oracle jdbc driver
(11.2.3).
Does this happens for other SQL servers ?
Any help/ideas to solve this issue is welcomed.
The method getColumns on the metadata is returning an empty ResultSet for
Synonyms (for tables and views it's returning the list of columns).
This happens on Oracle 11g Express and using the latest Oracle jdbc driver
(11.2.3).
Does this happens for other SQL servers ?
Any help/ideas to solve this issue is welcomed.
Friday, 30 August 2013
How to record voice using Flash and save to PHP
How to record voice using Flash and save to PHP
The following are done work
Get WAV file => OK
private function renderWav(src, convertToMp3 = false) {
WaveFile.writeBytesToWavFile(myWavFile, myWavData, 44100, 2, 16)
}
Convert to MP3 => OK
private function makeIntoMp3(wav) {
mp3Encoder = new ShineMP3Encoder(wav);
mp3Encoder.start();
}
save MP3 file to Client => OK
private function onWavClick(e:MouseEvent) {
new FileReference().save(mp3Encoder.mp3Data, "MyAudio.mp3");
}
Above, I can get a MP3 file in client side but on my problem that save to
Server side(PHP)
Save to server side => Fail
public function makeMP3File() {
var urlVariables:URLVariables = new URLVariables;
urlVariables.mp3Data = mp3Encoder.mp3Data;
var req:URLRequest = new URLRequest('upload.php');
req.data = urlVariables;
req.method = URLRequestMethod.POST;
var loader:URLLoader = new URLLoader();
loader.load(req);
}
My PHP Code
function strean2audio($audioStream, $filename)
{
$file = fopen($filename . '.mp3', "wb");
fwrite($file, $audioStream);
fclose($file);
}
I was a ActionScript rookie, don't know which part error, thanks for your
help!
The following are done work
Get WAV file => OK
private function renderWav(src, convertToMp3 = false) {
WaveFile.writeBytesToWavFile(myWavFile, myWavData, 44100, 2, 16)
}
Convert to MP3 => OK
private function makeIntoMp3(wav) {
mp3Encoder = new ShineMP3Encoder(wav);
mp3Encoder.start();
}
save MP3 file to Client => OK
private function onWavClick(e:MouseEvent) {
new FileReference().save(mp3Encoder.mp3Data, "MyAudio.mp3");
}
Above, I can get a MP3 file in client side but on my problem that save to
Server side(PHP)
Save to server side => Fail
public function makeMP3File() {
var urlVariables:URLVariables = new URLVariables;
urlVariables.mp3Data = mp3Encoder.mp3Data;
var req:URLRequest = new URLRequest('upload.php');
req.data = urlVariables;
req.method = URLRequestMethod.POST;
var loader:URLLoader = new URLLoader();
loader.load(req);
}
My PHP Code
function strean2audio($audioStream, $filename)
{
$file = fopen($filename . '.mp3', "wb");
fwrite($file, $audioStream);
fclose($file);
}
I was a ActionScript rookie, don't know which part error, thanks for your
help!
Thursday, 29 August 2013
django : Nested modelforms
django : Nested modelforms
I have two models
class Branch(models.Model):
name = ...
repository = ...
... other fields ...
class Branch_Comparison(models.Model):
name = ...
branch_from = models.ForeignKey(Branch, related_name='+')
branch_to = models.ForeignKey(Branch, related_name='+')
I would like to create a modelform for entering a new branch comparison
object.
from models import Branch_Comparison, Branch
class Branch_ComparisonForm(ModelForm):
class Meta:
model = Branch_Comparison
from django.forms.models import inlineformset_factory
InlineFormSet = inlineformset_factory(Branch_Comparison, Branch,
form=Branch_ComparisonForm)
This doesn't work.
What I am trying to achieve is the built of an input form where
branch_from and branch_to would have their own inner "ModelForm" which
would have each single Branch model parameter available.
Is that possible ?
I have two models
class Branch(models.Model):
name = ...
repository = ...
... other fields ...
class Branch_Comparison(models.Model):
name = ...
branch_from = models.ForeignKey(Branch, related_name='+')
branch_to = models.ForeignKey(Branch, related_name='+')
I would like to create a modelform for entering a new branch comparison
object.
from models import Branch_Comparison, Branch
class Branch_ComparisonForm(ModelForm):
class Meta:
model = Branch_Comparison
from django.forms.models import inlineformset_factory
InlineFormSet = inlineformset_factory(Branch_Comparison, Branch,
form=Branch_ComparisonForm)
This doesn't work.
What I am trying to achieve is the built of an input form where
branch_from and branch_to would have their own inner "ModelForm" which
would have each single Branch model parameter available.
Is that possible ?
error in sql from php
error in sql from php
i am not seeing it... When i echo the output everything is shown correct.
But when i write it to the database i get an error...
mysql_query("INSERT INTO features (titel_alias, titel, platform, uitgever,
ontwikkelaar, engine, gamesoort, genre, multiplayer, coop, spelers,
speelduur, release, metacritic, leeftijd) VALUES ('$titel_alias',
'$titel', '$platform', '$uitgever', '$ontwikkelaar', '$engine',
'$gamesoort', '$genre', '$multiplayer', '$coop', '$spelers', '$speelduur',
'$release', '$metacritic', '$leeftijd')") or die("Error:
".mysql_error());
Error: You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near
'release, metacritic, leeftijd) VALUES
And it tells me this over and over at the release part
The echo below works... i am really not seeing it...
echo $titel . "<br/>";
echo $titel_alias . "<br/>";
echo $ontwikkelaar . "<br/>";
echo $uitgever . "<br/>";
echo $engine . "<br/>";
echo $platform . "<br/>";
echo $gamesoort . "<br/>";
echo $genre . "<br/>";
echo $multiplayer . "<br/>";
echo $coop . "<br/>";
echo $spelers . "<br/>";
echo $speelduur . "<br/>";
echo $leeftijd . "<br/>";
echo $metacritic . "<br/>";
echo $release . "<br/>";
i am not seeing it... When i echo the output everything is shown correct.
But when i write it to the database i get an error...
mysql_query("INSERT INTO features (titel_alias, titel, platform, uitgever,
ontwikkelaar, engine, gamesoort, genre, multiplayer, coop, spelers,
speelduur, release, metacritic, leeftijd) VALUES ('$titel_alias',
'$titel', '$platform', '$uitgever', '$ontwikkelaar', '$engine',
'$gamesoort', '$genre', '$multiplayer', '$coop', '$spelers', '$speelduur',
'$release', '$metacritic', '$leeftijd')") or die("Error:
".mysql_error());
Error: You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near
'release, metacritic, leeftijd) VALUES
And it tells me this over and over at the release part
The echo below works... i am really not seeing it...
echo $titel . "<br/>";
echo $titel_alias . "<br/>";
echo $ontwikkelaar . "<br/>";
echo $uitgever . "<br/>";
echo $engine . "<br/>";
echo $platform . "<br/>";
echo $gamesoort . "<br/>";
echo $genre . "<br/>";
echo $multiplayer . "<br/>";
echo $coop . "<br/>";
echo $spelers . "<br/>";
echo $speelduur . "<br/>";
echo $leeftijd . "<br/>";
echo $metacritic . "<br/>";
echo $release . "<br/>";
remove text from multiple spans having same id
remove text from multiple spans having same id
I have multiple spans
<span id ="myId">data1</span>
<span id ="myId">data2</span>
<span id ="myId">data3</span>
<span id ="myId">data4</span>
<span id ="myId">data5</span>
I want to delete text inside all span on single button click.
I tried this on button click in javascript
document.getElementById("myId").innerHTML = "";
but it is removing text from only 1st span
I have multiple spans
<span id ="myId">data1</span>
<span id ="myId">data2</span>
<span id ="myId">data3</span>
<span id ="myId">data4</span>
<span id ="myId">data5</span>
I want to delete text inside all span on single button click.
I tried this on button click in javascript
document.getElementById("myId").innerHTML = "";
but it is removing text from only 1st span
Subscribe to:
Posts (Atom)